我有多个文件夹,每个文件夹都包含一个配置文件夹。在config文件夹中有一个.cfg文件和一个备份文件夹。我想将.cfg文件复制到具有日期扩展名的备份文件夹 这是我的文件夹结构:
\Folder1\config
folder1.cfg
\backup
\Folder2\config
folder2.cfg
\backup
\Folder3\config
folder3.cfg
\backup
上述每个文件夹都有一个配置文件夹。在每个配置文件夹中都有一个.cfg文件和一个备份文件夹。如何逐步浏览每个Folder * \ config目录并将文件夹* .cfg文件复制到备份文件夹并将其重命名为folder3.cfg.yyyymmdd?我实际上在Windows服务器上有大约40个文件夹。任何帮助将不胜感激。
答案 0 :(得分:1)
REM
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
for /f "delims=." %%a in ('wmic OS Get localdatetime ^| find "."') do set "wmicdt=%%a"
SET "wmicdt=%wmicdt:~0,8%"
FOR /f "delims=" %%a IN ('dir /b /ad "%sourcedir%" ' ) DO (
IF EXIST "%sourcedir%\%%a\config\%%a.cfg" (
MD "%sourcedir%\%%a\config\backup" 2>NUL
COPY /b "%sourcedir%\%%a\config\%%a.cfg" "%sourcedir%\%%a\config\backup\%%a.cfg.%wmicdt%" >nul
)
)
GOTO :EOF
您需要更改sourcedir
的设置以适应。
SET "wmicdt=%wmicdt:~0,8%"
行选择wmicdt
中日期/时间字符串的前8个字符,即yyyymmdd。如果你也想要时间,只需省略这一行。
答案 1 :(得分:0)
这是你的答案。
@echo off
:loop
for /l %%g in (1,1,3) do (
copy "Folders\Folder%%g\config\Folder%%g.cfg" "Folders\Folder%%%g\config\Backup\"
rename "Folders\Folder%%g\config\Backup\Folder%%g.cfg" "Folder %date%.cfg"
timeout>nul 1
)
:end
cls
echo.
echo ========
echo = Done =
echo ========
echo.
pause>nul
我试图制作一个带有修改日期的文件作为名称,但我遇到了一些时间问题(22-03-2012 12:22)。
这12 ==>:< == 22让我感到麻烦。我不知道怎么摆脱这个。因此,您将当前日期作为文件名。
抱歉我的英文。
Here is file with that batch and folders, so you can see how it works