我需要一些帮助。我正在尝试创建批处理文件以将文件从一个文件夹移动到另一个文件夹。文件名将具有可变的yyyy-mm格式以及日期之前或之后的其他数据。批处理需要将文件移动到具有相同mmmm-yy文件夹名称的服务器目录。
我已经提出了下面的代码,但它并不常用。
我的代码:
@echo off
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
SET /A MONTH=%%D
SET /A YEAR=%%F
)
:: Set month to last month
set /a MONTH=%MONTH%-1
:: If month equals zero, reset to 12
if %MONTH%==0 set MONTH=12
:: If month < 10, fill with zero
if %MONTH% LSS 10 set MONTH=0%MONTH%
:: If month = 12, subtract one year
if %MONTH%==12 set /a YEAR=%YEAR%-1
SET FILEDATE=%YEAR%-%MONTH%
SET FOLDER2=E:\ARCHIVE\%FILEDATE%
MKDIR %FOLDER2%
:: trying to recreate the format MOVE C:\FOLDER1\\*2013-07*.* E:\FOLDER2\2013-07 which does work
MOVE C:\FOLDER1\\*%FILEDATE%*.* %FOLDER2%
:END
EXIT
编辑:下面的两位回应者都非常有帮助。我试图投票,但我猜我的名声并不好。母亲是对的 - 保护你的回报!它会让你走得更远。 :)
答案 0 :(得分:3)
您最好使用%date%
,而不是wmic
,但您可以尝试:
for /f "skip=1 delims=" %%a in ('WMIC Path Win32_LocalTime Get Month^,Year /Format:table') do for /f "tokens=1,2" %%b in ("%%a") DO SET "month=%%b" &SET "year=%%c"
答案 1 :(得分:1)
只是一个小编辑 - 它看起来应该有效 - 正如你的解释所说文件夹创建得很好。
MOVE "C:\FOLDER1\*%FILEDATE%*" "%FOLDER2%"