作者LPH66 ((short)(-15074))
看板Programming
标题Re: 懂撰写简单电脑程式bat档exe档的人麻烦^^
时间Fri Jul 17 23:23:39 2009
※ 引述《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
1F:→ TonyQ:没错~ 114.137.13.99 07/18 10:24