→ TonyQ:沒錯~ 114.137.13.99 07/18 10:24
※ 引述《wowtiger (小虎)》之銘言:
: ※ 引述《LIMITED》之銘言:
: : 例如現在我有一個檔案叫做 01_BBS_PTT_CC.mp3
: : 有辦法把底線取代空格變成 01 BBS PTT CC.mp3
: : 請問有會寫基本程式的可以教我嗎^^
: 如果是三個底線
: dir /b *.mp3 > list
: for /f "tokens=1,1-3* delims=_" %i in (list) do ren "%i_%j_%k" "%i %j %k"
: 四個就
: dir /b *.mp3 > list
: for /f "tokens=1,1-4* delims=_" %i in (list) do ren "%i_%j_%k_%l" "%i %j %k %l"
要一個指令嘛?
for /f "tokens=1,1-3* delims-_" %i in ('dir /b *.mp3') do (
ren "%i_%j_%k" "%i %j %k"
)
for /f 裡是可以把指令結果拿去做分析的
格式有兩套:
/f之後的 "" 選項裡沒有 usebackq 則 '' 括起來的當指令
選項裡若有 usebackq 則 `` 括起來的當指令
(其實另外有 (無usebackq)""/(有usebackq)'' 當直接分析的字串
不過相對來說用處比較沒那麼大)
例如以下是 for /? 裡的例子
for /f "delim==" %i in ('set') do @echo %i
可以列出已設定的全部環境變數的名字
---
另外 第二組括號是用來把要執行的指令括起來的
在命令列下輸入 ( 的話會和在Unix類似的系統中打個 \ 一樣的效果
跳到下一行要你繼續輸入 只是Windows這邊是看到對應的 ) 才會結束
而Windows這邊在這裡也可以分行輸入多個指令而不需以 & 連接
---
其實我個人覺得現在的 windows batch 指令已經把 for if set 做強化了
用這些其實已經可以兜出一些複雜一點的東西
尤其 for /f 更是不錯用的指令之一
(雖然有時 set 和環境變數取用的邏輯頗難懂的就是)
--
'Oh, Harry, dont't you see?' Hermione breathed. 'If she could have done
one thing to make absolutely sure that every single person in this school
will read your interview, it was banning it!'
---'Harry Potter and the order of the phoenix', P513
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.254.23.234