将文件放在具有类似名称cmd的文件夹中

时间:2015-02-09 11:31:52

标签: windows scripting cmd

我有日期格式Year_Month_Day的输入文件夹。每个文件夹都包含大量文件:

archive
|
+2014-Apr-01
|
+2014-Apr-02
|
+2014-Apr-03
|
+2014-Apr-04

我需要根据年份和月份对输入文件夹中的所有文件进行排序:

2014
|
+2014-Apr
|
+2014-May
|
+2014-Mar

我写了剧本:

chcp 1251
setlocal enabledelayedexpansion
set input=d:\arch
set output=d:\test
set h="string"
mkdir %output%\2014
mkdir %output%\2014\2014-Jan
mkdir %output%\2014\2014-Feb
mkdir %output%\2014\2014-Mar
mkdir %output%\2014\2014-Apr
mkdir %output%\2014\2014-May
mkdir %output%\2014\2014-Jun
mkdir %output%\2014\2014-Jul
mkdir %output%\2014\2014-Aug
mkdir %output%\2014\2014-Sep
mkdir %output%\2014\2014-Oct
mkdir %output%\2014\2014-Nov
mkdir %output%\2014\2014-Dec
for /f %%i in ('dir /b %input%\') do (
set h=%%i
echo %h%
move %input%\%%i\#msgs\* %output%\2014\%h:~0,8%\
)

echo %h%

返回“string”。

为什么?

1 个答案:

答案 0 :(得分:0)

在代码的开头声明变量h并在for循环中重新分配变量