我需要一个接收两个参数的批处理文件:一个命令(带有一些参数的文件名)和一个文件路径 - 用于命令执行的输出重定向。我尝试了一些变体,例如call %1 > %2
,start %1 > %2
在文件“q.cmd”中,调用 asq "echo test" "log.txt"
和q 'echo test' 'log.txt'
和%1
或call %1
with q "echo test > log.txt"
,但都不起作用。我^
之前也尝试过>
。在大多数情况下,它会打印“'echo 未被识别为内部或外部命令...”或类似内容,有时会创建空的 123.txt 或一些服务行,但没有我需要的“测试”。我该如何解决这个问题?
答案1
q "echo test" "log.txt"
将会输入两个参数。
“echo test” 将单独存在,不再是“Echo”后跟“test”作为 Echo 的参数,而是一个名为“echo test”的命令,这是无效的。
您需要将参数与命令分开,而批处理脚本实际上并不是执行此操作的最佳方法,尤其是当您需要动态数量的参数时。请考虑使用 PowerShell。
话虽如此,如果您想要一些简单、不那么灵活且仍然是批处理文件的东西,那么也许可以在批处理文件中尝试以下内容:
%2 %3 > %1
。
然后只需首先指定输出文件,然后指定命令,然后指定要与该命令一起使用的参数。
即:q log.txt echo Test
,或q log.txt echo "string with spaces to echo"
。
这些对我有用。:)