2

これは私が以前に持っていたのと同じ質問ですが、今はバットファイルにある必要があります.

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 に答える