2

这是我之前遇到的相同问题,但现在它必须在 bat 文件中。

1)我想删除“file.rollback3”

2)然后我想将所有文件增加 1 file.rollback1 --> file.rollback 2 file.rollback2 --> file.rollback 3

3)将file.data从不同目录复制到回滚目录

这是我目前所拥有的......

    @echo off
set path=c:\temp3
cd %path%
set fileCount=0
for /f "tokens=1*" %%a in ('dir /a * /b /s') do (
       call set /a fileCount=%%fileCount%%+1)
echo %fileCount%
set /a delFile=(%fileCount%-1)
echo %delFile%
del *.rollback%delFile%
pause
set counter=%delFile%
:incrementLoop
IF "%counter%" geq "0"
(
    ren \.rollback%counter% \.rollback
    set /a %counter% = %counter%-1
    goto incrementLoop
)
goto incrementLoop
pause
4

2 回答 2

1
@echo off
setlocal EnableDelayedExpansion
cd C:\temp3
for %%f in (*.rollback?) do set delFile=%%f
echo del %delFile%
pause
set lastFile=%delFile:~-1%
set /A lastButOne=lastFile-1
for /L %%i in (%lastButOne%,-1,1) do (
   echo ren *.rollback%%i *.rollback!lastFile!
   set lastFile=%%i
)
echo copy C:\different\directory\file.data file.rollback1
pause
于 2012-04-28T00:30:57.177 回答
0
@ECHO OFF
SET "rollbackdir=..."
SET "differentdir=..."
SET "filename=..."
SET "numcopies=3"
FOR /L %%i IN (%numcopies%,-1,1) DO (
  IF %%i == %numcopies% (
    DEL "%rollbackdir%\%filename%.rollback%%i" 2>NUL
  ) ELSE (
    SETLOCAL EnableDelayedExpansion
    RENAME "%rollbackdir%\%filename%.rollback%%i" "%filename%.rollback!next!" 2>NUL
    ENDLOCAL
  )
  SET next=%%i
)
COPY "%differentdir%\%filename%.data" "%rollbackdir%"
于 2012-04-28T18:55:50.780 回答