这是新手,所以希望有人可以帮助新手。到目前为止,找不到答案。本质上,我试图创建一个监视文件夹,该文件夹将拾取新的.MXF文件,运行特定的命令行应用程序,并使用原始文件名加_new重命名该新文件。
@echo off
:loop
if exist "C:\Input\*.mxf" (
for %%a in ("C:\Input\*.mxf") do (
C:\BMX\bmxtranswrap -o C:\Output\NEW.mxf -t as11op1a -y 09:59:50:00 --afd 10 --pass-anc all -anc-max 2048 "%%a"
ping -n 5 localhost >nul
del "%%a"
)
)
ping -n 5 localhost >nul
goto :loop
我最初尝试使用%~n1
命令来传递在我拥有的CMD脚本中有效的名称。
C:\BMX\bmxtranswrap -o C:\Output\%~n1_NEW.mxf -t as11op1a -y 09:59:50:00 --afd 10 --pass-anc all -anc-max 2048 "%%a"
但是,这不起作用。如果我缺少传递源文件名的命令,请告诉我。非常感谢。
您需要提取不带扩展名的文件名,以便将其用作新名称中的变量。要获取文件名,您可以使用:
%%~ni
这应该工作:
@echo off
if exist "C:\Input\*.mxf" (
FOR %%i IN ("c:\Input\*.mxf") DO (
REM ECHO %%~ni - This is the filename without the extensoion for the new file
C:\BMX\bmxtranswrap -o C:\Output\%%~ni_new.mxf -t as11op1a -y 09:59:50:00 --afd 10 --pass-anc all -anc-max 2048 %%i
ping -n 5 localhost >nul
del %%i
)
)
注意:我已经测试了上面的代码,没有该bmxtranswrap
行,并且新的文件名按预期显示:test_new.mxf
和test2_new.mxf
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句