我正在尝试编写一个每周晚上复制文件夹的脚本。我希望它每晚在目标目录中创建一个文件夹。
所以我正在尝试制作一个复制的脚本 “C:\ logs”改为“I:\ logs \ today's date”
所以目标文件夹应该如下所示
“I:\日志\ Monday_1272014” 然后第二天晚上它应该是这样的 “I:\日志\ Tuesday_1282014”
等每个工作日。我不确定我是否有意义,但任何帮助都会受到赞赏。
到目前为止,我为Robocopy脚本提供了这个: robocopy“E:\ Batch Files”“I:\ Backups \ Monday”/ MIR
但那只会创建一个名为Monday的文件夹。任何帮助将不胜感激。此外,它不一定是robocopy。我只是用它,因为它是我所知道的唯一一个。我不介意学习如何将其作为批处理文件或VB脚本。
谢谢!
答案 0 :(得分:4)
此代码的前四行将为您提供XP Pro及更高版本中可靠的YY DD MM YYYY HH Min Sec变量。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%"
更改%yyyy%
和%mm%
以及%dd%
的顺序以适合您,然后您可以将变量添加到Robocopy:
robocopy "E:\Batch Files" "I:\Backups\%datestamp%" /MIR
答案 1 :(得分:0)
@ECHO OFF &SETLOCAL enableDelayedExpansion
FOR %%a IN (Monday Tuesday Wednesday Thursday Friday Saturday Sunday) DO SET /a cnt+=1&SET "DOW!cnt!=%%a"
FOR /f "tokens=1-4" %%a in ('wmic path win32_currenttime get Day^,Month^,Year^,DayOfWeek^|findstr /v "^$"') DO (
IF %%a LEQ 9 (SET "Day=0%%a") ELSE SET "Day=%%a"
IF %%c LEQ 9 (SET "Month=0%%c") ELSE SET "Month=%%c"
SET "Year=%%d"
SET "DayOfWeek=%%b"
)
ECHO(ROBOCOPY "E:\Batch Files" "I:\logs\!DOW%DayOfWeek%!_%Day%%Month%%Year%" /MIR
这在XP Home中不起作用。