我无法解决这个问题,但这是整个场景:
我有一堆FLV文件,其中包含元信息。我有一个小程序(flvmeta.exe),它从命令行工作,将元数据转换为文本,我可以将该数据导出到文本文件。
我需要弄清楚如何实现这一点: 用户将输入目录的路径,批处理文件应该CD进入该目录。
set /p PATH= Enter Path:
CD /D %PATH%
然后我需要一种方法来列出没有标题信息的文件名,例如:
dir /b /a-d
然后我需要将dir命令中的所有列表项分成单独的变量这是我遇到问题的部分。 (可能有更好的方法,例如从一个文件到下一个文件的循环)
...然后我需要在每个文件上执行此命令:
flvmeta.exe filename.flv >filename.txt
所以,就像我说的那样,循环可能更适合这样的事情,而不是在dir命令之后尝试从文件创建变量名。我在命令行或者批处理脚本方面不是很熟练,所以如果我错过了一个简单的解决方案,请原谅我。
我有数百个这样的文件要经过,它们位于不同的目录中。这就是为什么我希望用批处理文件使其自动化。
提前感谢您的帮助。
答案 0 :(得分:0)
set /p "mypath=Enter Path: "
for %%i in ("%mypath%\*.flv") do flvmeta.exe "%%i" >"%%~dpni.txt"
表达式%%~dpni
请参阅for /?
答案 1 :(得分:0)
@echo off
set /p "_PATH= Enter Path:"
set flvmeta=c:\flvmeta.exe
pushd %_PATH%
for "tokens=* delims=" %%a in ('dir /b /a-d *.flv') do (
%flvmeta% "%%~fa" > "%%~na.txt"
)
如果您希望可以将/s
添加到dir命令以进行递归搜索。