0

I've got input folders in date format Year_Month_Day. Every folder contains lots of files:

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

I need to sort all files from input folders to output folders according to Year and Month:

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

I wrote script:

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%\
)

and

echo %h%

returns "string".

Why?

1 Answers1

0

Declare the variable h at start of the code and reassign the variable in for loop

sreekanth
  • 18
  • 3