for %%a IN (*.mp3) do (
call c:\PROGRA~1\mp3splt\mp3splt -t 5.0 -o output\@[email protected][email protected] "%%a"
)
別人在說什麼這裏引用變量無疑是正確的。這需要它正常工作。但它也只是解決方案的一半。
你這裏的問題是,dir /b
吐出行文字,每一個都包含一個文件名,例如:在另一方面
foo bar.mp3
baz gak.mp3
track01.mp3
...
for /f
被用於讀取文件或其他東西造(將dir
輸出在這種情況下)逐行... 但它也做標記。這意味着它將可配置位置的字符串分割成單獨的標記。
默認情況下,/ F通過從每個 文件的每一行的第一個空白 分離令牌。空白行被跳過。您可以通過指定可選的 「選項」參數來覆蓋默認解析 行爲。這是一個引用的 字符串,其中包含一個或多個 關鍵字以指定不同的解析 選項。 - help for
所以你只能得到文件名的第一個空格之前的部分。您可以通過使用
for /f "delims=" in ...
指定標記化應無定界符來完成,每次基本上是給你的整條生產線的工作解決這一問題。但更好的方法實際上是我在開始時概述的使用常規for
迭代文件。文件名中沒有空格,這實際上使你的意圖更加清晰。
我經常感到驚訝,爲什麼人們傾向於選擇一個簡單,明確,正確的解決方案和錯誤的解決方案。
這還不夠:-) – Joey 2009-11-17 23:08:57