2011年4月29日 星期五

利用批次檔更改資料夾名稱

起因是因為家裡的某些檔案經常在更新,而放檔案的資料夾名稱也都會跟檔案一起變更,因此我就想出如果用批次檔控制的話應該會方便不少,這個批次檔就花了我一天的時間研究,我果然還是新手阿鬼魂
直接看範例吧

這是目錄的樣子,批次檔必須跟要更改的資料夾放在同一層。
image
這裡是test1資料夾裡面的檔案,之後要把test1資料夾改名為修改日期最新的檔案名稱,也就是test1 –> 110102。
image
執行name.cmd之後的結果,資料夾名稱都修改成最新修改日期的檔案名稱。
image

使用批次檔的注意事項

  1. 批次檔必須要跟要修改的資料夾放在同一層才有作用
  2. 資料夾裡面的檔案副檔名不可以小於三碼或是大於四碼,像是*.rm就會有問題(你也可以把*.rm改成*.rmvb),這樣就沒問題了。
  3. 如果有資料夾不想要被修改名稱,可是又非得放在同一層不可,可以把資料夾隱藏起來,用 dir 這個指令預設隱藏檔是不會顯示出來的。
@echo off
setlocal EnableDelayedExpansion
for /F "TOKENS=*" %%I in ( 'dir /b /ad' ) do (
  set pat=%%I
  cd !pat!
  call :second
  ren "!pat!" "!newdata:~0,-4!"
)
:second
for /F "TOKENS=*" %%J in ( 'dir /b /o-d' ) do (
  set newdata=%%J
  cd..
  goto :eof
)

沒有留言:

張貼留言