如何在 Windows 中发送带有不带空格的参数的命令

How to send a command with arguments without spaces in Windows

有没有办法在 Windows 中不带空格执行带有参数的命令?

echo 1 > a

需要:

echo1>a

Linux 中,您可以使用 ${IFS},但我发现它在 Windows 中不起作用:

echo${IFS}1${IFS}>a

这会产生您想要的结果吗?

ECHO]1>a
(echo(1)>a

(echo/1)>a

可以做到。

另一种选择是

>a=echo/1

因为 = 符号是 token separator 就像 SPACE(您也可以使用 ,; 代替)。

但是请注意,

echo/1>a

不能不能使用,因为1>会被当作redirection operator.


一个完全不同的解决方案是先将一个SPACE分配给一个变量然后使用它:

rem // This assigns a single space character:
set "SPC= "
rem // A space before `>` would also be echoed out, hence use parenthesis:
(echo%SPC%1)>%SPC%a
rem // Alternatively, rearrange the command line:
>%SPC%a%SPC%echo%SPC%1

这是可行的,因为直接变量 (%-) 扩展发生在命令标记识别之前。