• 4

問個骨灰級的DOS批次指令(感謝各位鼎力相助解決燃眉之急!!)

FOR /F "delims==" %%i IN ('dir /B') DO @ren %%i xYz_%%i

for %i in (*.*) do ren %i A%i
這樣大概可以吧...?

原來的檔案
D:\temp>dir
磁碟區 D 中的磁碟是
磁碟區序號: 0000-0000

D:\temp 的目錄

2007/12/30 上午 02:14 <DIR> .
2007/12/30 上午 02:14 <DIR> ..
2007/12/30 上午 01:33 3 A1.txt
2007/12/30 上午 01:34 0 A100.txt
2007/12/30 上午 01:34 0 A2.txt
2007/12/30 上午 01:34 0 A3.txt
2007/12/30 上午 01:34 0 A4.txt
5 個檔案 3 位元組
2 個目錄 5位元組可用

在每個檔名前加上B
D:\temp>for %i in (*.*) do ren %i B%i



改過後的檔案
D:\temp>dir
磁碟區 D 中的磁碟是
磁碟區序號: 0000-0000

D:\temp 的目錄

2007/12/30 上午 02:20 <DIR> .
2007/12/30 上午 02:20 <DIR> ..
2007/12/30 上午 01:33 3 BA1.txt
2007/12/30 上午 01:34 0 BA100.txt
2007/12/30 上午 01:34 0 BA2.txt
2007/12/30 上午 01:34 0 BA3.txt
2007/12/30 上午 01:34 0 BA4.txt
5 個檔案 3 位元組
2 個目錄 5位元組可用
10多年前花4000千元去學過dos~
現在忘光光嚕~
angwo wrote:
實在是太久沒用DOS...(恕刪)


我要大批改檔名都用 Acdsee ,沒錯!就是 Acdsee
他的批次改檔名的功能不只改圖的格式,連改各種檔案的檔名及副檔名都非常的好用
你要的這個前面加字但不影響後面原來的檔名的功能我試過了,在 Acdsee 下是很容易做的
自從發現 Acdsee 的批次改檔名這麼好用後就再也沒用過其他的軟體了,
且我到目前還沒有發現比他更好用的批次改名軟體
没錯 , DOS的檔案名稱好像只有最多8個字元
所以就會變成 A2345678.TXT
angwo wrote:
實在是太久沒用DOS...(恕刪)


答案是無解,DOS不支援長檔名...
長檔名會變成" ~ "...
人間五十年、下天のうちを比ぶれば夢幻の如
C:\t\1>dir
磁碟區 C 中的磁碟是 Master
磁碟區序號: 4C1E-AEC7

C:\t\1 的目錄

2007/12/30 上午 09:52 <DIR> .
2007/12/30 上午 09:52 <DIR> ..
2007/12/30 上午 09:51 6 132.txt
2007/12/30 上午 09:51 6 23222.txt
2007/12/30 上午 09:52 7 3354345.txt
3 個檔案 19 位元組
2 個目錄 83,053,051,904 位元組可用

C:\t\1>ren ???*.* a???*.*

C:\t\1>dir
磁碟區 C 中的磁碟是 Master
磁碟區序號: 4C1E-AEC7

C:\t\1 的目錄

2007/12/30 上午 09:52 <DIR> .
2007/12/30 上午 09:52 <DIR> ..
2007/12/30 上午 09:51 6 a32.txt
2007/12/30 上午 09:51 6 a3222.txt
2007/12/30 上午 09:52 7 a354345.txt
3 個檔案 19 位元組
2 個目錄 83,053,051,904 位元組可用

C:\t\1>

是要這種效果嗎???
有 ? 指令可以用.....











C:\t\1>dir
磁碟區 C 中的磁碟是 Master
磁碟區序號: 4C1E-AEC7

C:\t\1 的目錄

2007/12/30 上午 09:52 <DIR> .
2007/12/30 上午 09:52 <DIR> ..
2007/12/30 上午 09:51 6 132.txt
2007/12/30 上午 09:51 6 23222.txt
2007/12/30 上午 09:52 7 3354345.txt
3 個檔案 19 位元組
2 個目錄 83,053,051,904 位元組可用

C:\t\1>ren ???*.* a???*.*

C:\t\1>dir
磁碟區 C 中的磁碟是 Master
磁碟區序號: 4C1E-AEC7

C:\t\1 的目錄

2007/12/30 上午 09:52 <DIR> .
2007/12/30 上午 09:52 <DIR> ..
2007/12/30 上午 09:51 6 a32.txt
2007/12/30 上午 09:51 6 a3222.txt
2007/12/30 上午 09:52 7 a354345.txt
3 個檔案 19 位元組
2 個目錄 83,053,051,904 位元組可用

C:\t\1>

是要這種效果嗎???
有 ? 指令可以用.....











我猜應該是在windows下作業吧 是有支援長檔名
只是想要有batch 的做法改大量的檔名所以到 dos box吧
如果有支援長檔名 想要使用powerful的shell 做些管理工作
那就用cygwin下的shell
或者用linux開機 mount 起來後 用shell程式去改就好了
早期DOS系統的檔名是只支援到八字元,
但若您是在windows上執行cmd模擬DOS應不會有此限制,
剛試了一下,用 ren *.txt A*.txt 的確在*的最前字元會被替代,
就算檔名只有三位元也一樣會被替代,
用前幾位大大所說的 for %i in (*.*) do ren %i A%i 是可行,
在Windows就算超過八位元一樣可更改,如下..

未改前:

F:\test>dir
磁碟區 F 中的磁碟是 ST-2 IV
磁碟區序號: 6048-9EFD

F:\test 的目錄

2007/12/30 上午 10:06 <DIR> .
2007/12/30 上午 10:06 <DIR> ..
2007/12/30 上午 10:05 0 0123456789.txt
2007/12/30 上午 10:04 0 123.txt
2007/12/30 上午 09:58 0 123456789.txt
2007/12/30 上午 10:04 0 234567890.txt
2007/12/30 上午 10:04 0 456.txt
5 個檔案 0 位元組
2 個目錄 24,651,128,832 位元組可用

F:\test>



執行 for %i in (*.*) do ren %i A%i:

F:\test>for %i in (*.*) do ren %i A%i

F:\test>ren 0123456789.txt A0123456789.txt

F:\test>ren 123.txt A123.txt

F:\test>ren 123456789.txt A123456789.txt

F:\test>ren 234567890.txt A234567890.txt

F:\test>ren 456.txt A456.txt

F:\test>



結果:

F:\test>dir
磁碟區 F 中的磁碟是 ST-2 IV
磁碟區序號: 6048-9EFD

F:\test 的目錄

2007/12/30 上午 10:15 <DIR> .
2007/12/30 上午 10:15 <DIR> ..
2007/12/30 上午 10:05 0 A0123456789.txt
2007/12/30 上午 10:04 0 A123.txt
2007/12/30 上午 09:58 0 A123456789.txt
2007/12/30 上午 10:04 0 A234567890.txt
2007/12/30 上午 10:04 0 A456.txt
5 個檔案 0 位元組
2 個目錄 24,651,128,832 位元組可用

F:\test>



若想要換別的字元就把 for %i in (*.*) do ren %i A%i
A改成所需即可,試試嘍~
  • 4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?