
[已解決]批處理怎么查詢全盤內的mp3文件呢詳情內詢最后由 慕夜藍化 于 -12-27 10:27之前寫的使用dir查詢全盤內的文件代碼如下:code1
>_< 可是這個真的很慢 .然后就想 因為 for /r 比較快嘛那就用for /r 來代替dir吧于是:code2nclick="copycode($('code0'));">復制代碼
- @echo off
- set num=0
- set str=c d e f g h i j k l m n o p q r s t u v w x y z
- for %%i in (%str%) do (
- if exist %%i: for /f delims= %%a in ('dir /s/b/l/aa-s-h-r/on %%i:*mp3') do (
- set /a num=num+1
- )
- )
- echo 全盤mp3總數量為:%num%
- pause
= =窗口一閃就沒了。。。然后改:code3nclick="copycode($('code1'));">復制代碼
- @echo off
- set n=0
- set dri=c d e f g h i j k l m n o p q r s t u v w x y z
- for %%i in (%dri%) do (
- if exist %%i: for /r %%i: %%a in (*mp3) do (
- set /a n=n+1
- )
- )
- echo全盤mp3總數量為:%n%
- pause
echo %%~xa 檢驗是否通過、 還是不行啊 .然后就找問題,組合代碼的都分開來,用echo 來顯示是否通過。最后發現問題 出在了 for /r 那里便截取for /r 那段代碼單獨實驗 = =可以用啊。。。加上變量也能用啊nclick="copycode($('code2'));">復制代碼
- @echo off
- setlocal enabledelayedexpansion
- set n=0
- set dri=c d e f g h i j k l m n o p q r s t u v w x y z
- for %%i in (%dri%) do (
- set sri=%%i:
- if exist !sri! for /r !sri! %%a in (*mp3) do (
- set /a n=n+1
- echo %%~xa
- )
- )
- echo !n!
- pause
。。。到這時候 已經考慮到了 是不是 for /r 后面的 !sri! 出了問題然后 干脆拿掉 !sri! 好了= =最起碼找到了問題最后 又把 !sri! 替換為指定的盤符。結果也如實根據卷的多少以及當前卷下文件的數量顯示了相應的數字。現在只想快些知道,到底哪里出現了問題,為什么for /r 后面的變量沒有被引用?應該怎么改呢?還有第二段代碼又出現了什么問題?求解!拜托了。nclick="copycode($('code3'));">復制代碼
- @echo off
- set n=0
- set dri=d:
- for /r %dri% %%i in (*mp3) do set /a n+=1
- echo %n%
- pause

