Batch file 执行命令,获取输出并使用它

Batch file 执行命令,获取输出并使用它,batch-file,command-line,cmd,Batch File,Command Line,Cmd,我正在尝试执行一个Windows批处理文件,该文件执行一个命令,并向其传递一个作为批处理文件参数接收的流参数,然后我需要获取此执行的输出,并在将其发送到批处理输出之前对其进行处理(剪切输出以仅获取第一个字符)。 这就是我到目前为止所做的: for /f %%i in ('"C:\Program Files (x86)\JAM Software\SpamAssassin for Windows\spamc.exe" < %1') do set RES2 = %%i ECHO %RES2~0,

我正在尝试执行一个Windows批处理文件,该文件执行一个命令,并向其传递一个作为批处理文件参数接收的流参数,然后我需要获取此执行的输出,并在将其发送到批处理输出之前对其进行处理(剪切输出以仅获取第一个字符)。 这就是我到目前为止所做的:

for /f %%i in ('"C:\Program Files (x86)\JAM Software\SpamAssassin for Windows\spamc.exe" < %1') do set RES2 = %%i
ECHO %RES2~0,1%
对于(''C:\Program Files(x86)\JAM Software\SpamAssissin for Windows\spamc.exe“<%1')中的/f%%i,请设置RES2=%i
回声%RES2~0,1%
但它并没有像我预期的那样起作用。谢谢您的帮助。

对于中的/f%%i(
for /f %%i in (
    '"C:\Program Files (x86)\JAM Software\SpamAssassin for Windows\spamc.exe" ^< %1'
) do set RES2=%%i
ECHO %RES2:~0,1%
““C:\Program Files(x86)\JAM Software\SpamAssassin for Windows\spamc.exe”^<%1” )是否设置RES2=%%i 回显%RES2:~0,1%

代码中有三个更改。回显行中的冒号(需要时,它是sintax的一部分)、转义重定向以及集合行中等号周围删除的空格。对于空格,变量名包含一个空格,变量内的值也包含一个空格(它将是第一个,因此后面的echo命令将失败)

您缺少了一个:%RES2:~0,1%我不明白您的意思,我缺少了这个。:)您拥有的是无效语法。您需要有
%RES2:~0,1%
注意:在~之前。它仍然不起作用,它会说类似“<此时出乎意料。”首先感谢您的回复,我仍然有一些问题。例如,我应该在@yosoy之前加一个“^”字符,对不起,我没有找到它。使用
调用“c:\Program Files…”
,是的,重定向操作符应该转义。非常感谢!!!,现在它工作了,我按照你的建议做了,只是添加了一些我错过的参数,它工作了!:)