我有日期格式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”。
为什么?
答案 0 :(得分:0)
在代码的开头声明变量h并在for循环中重新分配变量