2011-12-01 39 views
0

我已經寫了這個腳本,如果我可以讓它做像Y的刪除和N沒有刪除的文件,但我不知道如何去補充說。在批處理腳本中添加一個是或否的刪除選項

@ECHO OFF 
SETLOCAL EnableDelayedExpansion 

REM Set variables 
SET SOURCE=C:\My Recordings 
SET DEST=\\XXXXXXXX\c$\VideoArchive 
SET 7ZIP=C:\Program Files\7-Zip\7z.exe 

REM Compress local files with 7zip 
ECHO --------------------------------------------------------- 
ECHO BEGINNING VIDEO COMPRESSION OPERATIONS 
ECHO --------------------------------------------------------- 
CD /D "%SOURCE%" 
FOR %%f in ("*.wrf") DO (
    SET FILENAME=%%~nf 
    ECHO Compressing !FILENAME! 
    "!7ZIP!" a -t7z -aoa "!FILENAME!.7z" "%%f" 
) 

REM Copy compressed files 
ECHO --------------------------------------------------------- 
ECHO COMPRESSION COMPLETE - BEGINNING COPY OPERATIONS 
ECHO --------------------------------------------------------- 
for /F "usebackq delims=" %%a in (`dir /b "%SOURCE%\*.7z"`) do (
    SET CURRENT_FILE=%%a 
    SET CURRENT_FILE_NO_EXTENSION=%%~na 

    REM Extract the month. 
    for /F "usebackq tokens=3 delims=-" %%i in ('!CURRENT_FILE!') do (
     SET CURRENT_FILE_DATE=%%i 
     SET FILE_MONTH=!CURRENT_FILE_DATE:~5,2! 
     SET MONTH_DEST=!DEST!\!FILE_MONTH! 
    ) 

    XCOPY "%SOURCE%\!CURRENT_FILE!" "!MONTH_DEST!\" /Y /V /I /R 

    REM Confirm successful copy, then delete original 
    IF !ERRORLEVEL! EQU 0 (
     ECHO Copy Operation Successful. Removing Original... 
     DEL /Q "%SOURCE%\!CURRENT_FILE_NO_EXTENSION!.wrf" 
     DEL /Q "%SOURCE%\!CURRENT_FILE!" 
    )ELSE (
     ECHO Error while copying "%SOURCE%\!CURRENT_FILE!. 
    ) 
) 

這是我的代碼,如果任何人都可以幫助,這將是偉大的。

回答

0
set /p DELETE=Delete [y/n]? 
if !DELETE! == y (
    ... 
) 
+0

我只是在底部添加正確的? – Alex

+0

@Alex:無論你想要什麼。 –

4

使用choice,並對響應起作用。

向用戶提供選項「刪除文件YN?」,使用

choice /c yn /n /m "Delete files?" 

ERRORLEVEL將包含所選值的指數(例如,在上面的例子中,1如果Y被按下,2N'). Your batch file can then check ERRORLEVEL`和反應相應。

雖然其他的答案提/y參數delchoice是通用的,並且可以與以任何理由任何批處理文件中使用。

相關問題