windows - 我的 Windows 批处理显示 : "72 was unexpected at this time."

标签 windows batch-file cmd

我下面的批处理文件,为给定的参数列表创建一个 .avs 文件,然后运行一个程序,该程序将这个 .avs 文件作为参数,并在 for 循环中多次执行此操作。

但是当我运行我的批处理文件时,它打印 72 is unexpected at this time.72 是其中一个参数的值。 .avs 文件未创建,程序未执行。

我的批处理文件及其在 REM @echo off 命令提示符下的输出如下。

我的批处理文件:

REM @echo off

set RawSource26=C:\_rawsource26\RawSource26.dll
set avsFile=.\temporary.avs
set avs2yuv=C:\_avs2yuv\avs2yuv.exe

set video=balloons
set views=^
1 ^
2 ^
3 ^
4 ^
5
set rates=^
1Mbps ^
2Mbps ^
3Mbps ^
4Mbps ^
5Mbps
set width=1024
set height=768
set cropLeft=72
set cropTop=0
set cropRight=0
set cropBottom=0

(for %%v in (%views%) do (
  @echo. 2> %avsFile%
  @echo LoadPlugin("%RawSource26%") >> %avsFile%
  @echo Crop(RawSource(".\renderOut\%video%_%%v_synth.yuv", %width%, %height%, "i420"), %cropLeft%, %cropTop%, %cropRight%, %cropBottom%) >> %avsFile%
  %avs2yuv% %avsFile% -raw -o .\avsOut\%video%_%%v_synth_avs.yuv
  (for %%r in (%rates%) do (
    @echo. 2> %avsFile%
    @echo LoadPlugin("%RawSource26%") >> %avsFile%
    @echo Crop(RawSource(".\renderOut\%video%_%%v_%%r_synth.yuv", %width%, %height%, "i420"), %cropLeft%, %cropTop%, %cropRight%, %cropBottom%) >> %avsFile%
    %avs2yuv% %avsFile% -raw -o .\avsOut\%video%_%%v_%%r_synth_avs.yuv
))))

REM del %avsFile%

我的命令提示符:

C:\SAFAS\folder02>avs.bat

C:\SAFAS\folder02>REM @echo off

C:\SAFAS\folder02>set RawSource26=C:\_rawsource26\RawSource26.dll

C:\SAFAS\folder02>set avsFile=.\temporary.avs

C:\SAFAS\folder02>set avs2yuv=C:\_avs2yuv\avs2yuv.exe

C:\SAFAS\folder02>set video=balloons

C:\SAFAS\folder02>set views=1 2 3 4 5

C:\SAFAS\folder02>set rates=1Mbps 2Mbps 3Mbps 4Mbps 5Mbps

C:\SAFAS\folder02>set width=1024

C:\SAFAS\folder02>set height=768

C:\SAFAS\folder02>set cropLeft=72

C:\SAFAS\folder02>set cropTop=0

C:\SAFAS\folder02>set cropRight=0

C:\SAFAS\folder02>set cropBottom=0
72 was unexpected at this time.
C:\SAFAS\folder02>  @echo Crop(RawSource(".\renderOut\balloons_%v_synth.yuv", 1024, 768, "i420"), 72, 0, 0, 0) >> .\temporary.avs
C:\SAFAS\folder02>

最佳答案

) 在您的循环中实际上不是“关闭”,而是 echo 的一部分需要“转义”- 然后用 ^ 替换) 否则批处理采用未转义的-) 作为 block 的关闭

关于windows - 我的 Windows 批处理显示 : "72 was unexpected at this time.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42385711/

相关文章:

go - 更改打印行的值

c++ - 使用 native /C++ 代码在 VS2010 中创建简单 COM 对象的最简单方法是什么?

windows - 在 Visual Studio 中将 PowerShell 脚本作为构建事件运行的最简单/最短命令

java - java检测目录是否被修改

c - KERNEL_APC_PENDING_DURING_EXIT 蓝屏死机

batch-file - 从批处理文件中获取命令行参数的短文件名

windows-7 - Goto此时出乎意料批处理windows 7 starter

batch-file - 批处理 - 动态标签或函数

c# - 从 C# 应用程序批量访问变量集

windows - 在输出的第一行停止 FOR/F 命令(Windows 批处理)