Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理文件重命名文件_Batch File - Fatal编程技术网

Batch file 使用批处理文件重命名文件

Batch file 使用批处理文件重命名文件,batch-file,Batch File,我想使用批处理文件根据日期重命名文件。现在我的挑战是,如果文件名存在,它应该附加一个(1)。。(2).. (3) 在每个文件的末尾 ren c:\LogFiles\*.log BackupLog-%date:~-4,4%%date:~-7,2%%date:~-10,2%.log 我也想知道是否有可能 按照前一个日期重命名文件,即当前日期的-1(如果我今天执行批处理文件,它将按照昨天的日期重命名) 根据创建的日期重命名文件 如果无法使用批处理文件,请使用power shell协助解决问题:

我想使用批处理文件根据日期重命名文件。现在我的挑战是,如果文件名存在,它应该附加一个(1)。。(2).. (3) 在每个文件的末尾

ren c:\LogFiles\*.log BackupLog-%date:~-4,4%%date:~-7,2%%date:~-10,2%.log
我也想知道是否有可能

  • 按照前一个日期重命名文件,即当前日期的-1(如果我今天执行批处理文件,它将按照昨天的日期重命名)
  • 根据创建的日期重命名文件

如果无法使用批处理文件,请使用power shell协助解决问题:

@echo off &setlocal
set "logpath=c:\LogFiles"
for /f "delims=" %%a in ('dir /b /a-d /od "%logpath%\*.log"') do call:doit "%logpath%\%%~a"
goto:eof

:doit
setlocal
set "npre=BackupLog-%date:~-4,4%%date:~-7,2%%date:~-10,2%"
:loop
if defined fcnt (set "nname=%npre% (%fcnt%)%~x1") else set "nname=%npre%%~x1"
set /a cnt+=1
set "fcnt=00%cnt%"
set "fcnt=%fcnt:~-3%"
if exist "%logpath%\%nname%" goto:loop
echo ren "%~1" "%nname%"
ren "%~1" "%nname%"
endlocal
exit /b

如果您还有更多问题,请提问。

请尝试以下问题:

@echo off &setlocal
set "logpath=c:\LogFiles"
for /f "delims=" %%a in ('dir /b /a-d /od "%logpath%\*.log"') do call:doit "%logpath%\%%~a"
goto:eof

:doit
setlocal
set "npre=BackupLog-%date:~-4,4%%date:~-7,2%%date:~-10,2%"
:loop
if defined fcnt (set "nname=%npre% (%fcnt%)%~x1") else set "nname=%npre%%~x1"
set /a cnt+=1
set "fcnt=00%cnt%"
set "fcnt=%fcnt:~-3%"
if exist "%logpath%\%nname%" goto:loop
echo ren "%~1" "%nname%"
ren "%~1" "%nname%"
endlocal
exit /b

如果您还有更多问题,请提问。

谢谢男士们会尝试,谢谢男士们会尝试