我想掃描一個文件夾,其路徑由用戶輸入&定義,最後應用ffmpeg將所有媒體文件信息存儲到文本文件中。下面的代碼不起作用將文件夾路徑作爲變量cmd傳遞
@echo off
setLocal EnableDelayedExpansion
set /P "path=Enter folder path: "
dir %path% /B /O:N | findstr ".wmv$ .mpg$ .mkv$ .mpeg$ .mp4$ .avi$" >filename.txt
echo. >info.txt
for /f "tokens=* delims= " %%a in ('type filename.txt') do (
set in=%in%%%a
ffprobe "%path%!in!" 2>>info.txt
)
pause
但是,如果我刪除用戶輸入如下代碼確實工作?
@echo off
setLocal EnableDelayedExpansion
::set /P "path=Enter folder path: "
dir d:\Trainers\out\outt\ /B /O:N | findstr ".wmv$ .mpg$ .mkv$ .mpeg$ .mp4$ .avi$" >filename.txt
echo. >info.txt
for /f "tokens=* delims= " %%a in ('type filename.txt') do (
set in=%in%%%a
ffprobe "d:\Trainers\out\outt\!in!" 2>>info.txt
)
pause
以上腳本被置於含有ffprobe.exe &它成功地在同一個目錄 注意創建兩個txt文件的文件夾中d:\Trainers\out\outt\
是掃描媒體文件&是從哪裏這隻蝙蝠的目錄的目錄文件被執行 ffprobe的基本語法是
ffprobe "videofile"
Windows環境變量不區分大小寫。不要使用%path%。除此之外,你確定變量正在獲得你期望的價值? – Wug