在系統中的現存目錄要做交叉更名!例,存在目錄&目錄e要變更,目錄=>目錄c 目錄e=>目錄,隨後存在目錄c&目錄要變更,目錄=>目錄e 目錄c=>為目錄!該如何編寫bat(批次)檔案讓他不但能夠順利遵循原則變更,又不會破壞到各目錄名稱!
@echo off echo 是否要執行這個命令! echo. echo 確定請鍵入 yes 取消請按 Enter 鍵 set /P Ans= if not "%Ans%"=="yes" goto bye set sec=10 set TIMER=%time::=% reg query HKCU\SOFTWARE /v check >nul 2>nul IF %ERRORLEVEL% == 1 REG ADD HKCU\SOFTWARE /v CHECK /d 00000 /f >nul&echo 已修正登錄檔請重新執行 &EXIT /B reg query HKCU\SOFTWARE /v check | find "check" >temp FOR /F "tokens=3,3" %%i in (temp) do set CHECK=%%i&DEL temp set CHECK=%check::=% SET /A TOTOL=TIMER-CHECK IF /I %TOTOL% LSS %sec% ( GOTO EOL ) ELSE ( IF /I %TOTOL% GTR %sec% GOTO GO ELSE GOTO EOL) :GO REG ADD HKCU\SOFTWARE /v CHECK /d %timer% /f >nul ECHO 以下輸入更名的語法 REM REN DirectoryA DirectoryB REM REN DirectoryC DirectoryA REM REN DirectoryA DirectoryB REM REN DirectoryA DirectoryB EXIT /B :EOL ECHO 無法在指定間時內重覆操作 :bye
如果要判斷目錄存不存在的話可以這樣:
if exist dir1\nul goto dir1
ren .....
goto end
:dir1
echo dir1存在...
goto end
:end
blacktung提到:
目錄&目錄e要變更,目錄=>目錄c 目錄e=>目錄,隨後存在目錄c&目錄要變更,目錄=>目錄e 目錄c=>為目錄
看起來好複雜 .... 簡化一下
有兩個目錄 Dir01, Dir05, 要做以下更名動作 ~
1.『Dir01 ==> Dir03』2.『Dir05 ==> Dir01』
3.『Dir01 ==> Dir05』4.『Dir03 ==> Dir01』
是以上這樣的動作嗎?那分成兩支批次就好了, 第一隻寫 1 ~ 2 的的作, 第二隻寫 3 ~ 4 的動作.
第一隻 Ren Dir01 Dir03 & Ren Dir05 Dir01
第二隻 Ren Dir01 Dir05 & Ren Dir03 Dir01
這...這...這...這是在繞口令嗎....
Let 目錄=A
Let 目錄e=E
Let 目錄c=C
ren A C
ren E A
ren A E
ren C A