iT邦幫忙

0

目錄更名的批次檔

在系統中的現存目錄要做交叉更名!例,存在目錄&目錄e要變更,目錄=>目錄c 目錄e=>目錄,隨後存在目錄c&目錄要變更,目錄=>目錄e 目錄c=>為目錄!該如何編寫bat(批次)檔案讓他不但能夠順利遵循原則變更,又不會破壞到各目錄名稱!

為何人們用我熟悉的文字
說著我聽不懂的話...

20點!
shunyuan大大
這題就看你表現了..
蟹老闆 iT邦大師 1 級 ‧ 2010-04-01 21:34:24 檢舉
提供驗證的方法,批次檔內容有二個驗證方法可以擇一使用
@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
4
jasonc2000
iT邦新手 4 級 ‧ 2010-04-01 13:15:52
最佳解答

如果要判斷目錄存不存在的話可以這樣:
if exist dir1\nul goto dir1
ren .....

goto end

:dir1
echo dir1存在...
goto end

:end

4
sailsolitary
iT邦研究生 2 級 ‧ 2010-03-31 10:13:35

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

blacktung iT邦新手 5 級 ‧ 2010-03-31 10:35:46 檢舉

感謝回應!分兩隻的寫法我懂!現在就是要讓它更聰明一點!

marshuang iT邦新手 1 級 ‧ 2010-03-31 15:42:05 檢舉

意思就是...有點笨是吧XD

4
tombo
iT邦研究生 1 級 ‧ 2010-03-31 10:27:37

這...這...這...這是在繞口令嗎....

Let 目錄=A
Let 目錄e=E
Let 目錄c=C

ren A C
ren E A
ren A E
ren C A

blacktung iT邦新手 5 級 ‧ 2010-03-31 10:38:03 檢舉

大概是這樣!但我要能更變別已存在目錄的問題!
我現在的兩個檔案是會產生誤操作的可能!
就是當它由A>C&E>A之後!萬一我又按了相同的檔案!
他會把A搬到c之下!而不能夠正確擺在同層!

tombo iT邦研究生 1 級 ‧ 2010-04-02 11:33:41 檢舉

您可以用 if exist 指令來判斷檔案或目錄是否存在。

我要發表回答

立即登入回答