,無論我插入爲docopy,程序總是將文件從源文件複製到目標文件。 有誰知道如何解決它?我想在插入'y'後複製文件,如果插入'n'則跳過它。當然,我試過如果其他語句,但它也沒有正常工作。畢竟,程序應該詢問要重命名的文件的哪一部分。 我敢肯定,這很容易讓你:)如果批量編號爲
set source="C:\Users\Desktop\Basic"
set destination="C:\Users\Desktop\CopyofBasic"
set renfiles="C:\Users\Desktop\CopyofBasic"
setlocal EnableDelayedExpansion
set /p docopy="Do You want to copy files? [Y/N]: "
if /i %%docopy%% == "%y%" (
goto :makecopy
)
if /i %%docopy%% == "%n%" (
goto :nagative
)
:makecopy
xcopy /s /v /h /k /z %source% %destination%
goto :renfiles
:negative
echo None files are copied.
goto :renfiles
:renfiles
cd %renfiles%
set /p var1="Insert part of filename to replace it: "
set /p var2="Insert new part of filename: "
set /p var3="Insert files fomrat: "
for /r %%G in (%var3%) do (
set "filename=%%~nxG"
ren "%%G" "!filename:%var1%=%var2%!"
)
echo Filenames have been already changed.
pause
不,「if/i %% docopy %% ==」%y%「'評估爲」if/i%docopy%==「」'; '%% docopy %%'由於雙'%'-signs而變成了字符串'%docopy%',並且''%y%'''變成了'「」'作爲變量'y'未定義。 ..一般情況下,我建議總是使用'「」'爲了避免像'&','^','<', '>','''... – aschipfl
這樣的特殊字符出現問題你是對的@aschipfl,謝謝你發現它。我從錯誤的程序運行中複製/粘貼評估字符串(在我對自己做了一些更改之後的中間狀態)。 – CristiFati