如何在 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
这是可行的,因为直接变量 (%
-) 扩展发生在命令标记识别之前。
有没有办法在 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
这是可行的,因为直接变量 (%
-) 扩展发生在命令标记识别之前。