Batch file 我在传递%1参数时遇到问题,并且=&引用;签名

Batch file 我在传递%1参数时遇到问题,并且=&引用;签名,batch-file,Batch File,我刚刚编写了一个yt.bat文件,其中包含以下内容: echo %1 我这样称呼它: yt https://www.youtube.com/watch?v=V_yXqFA-Fxs 但它只反映了这一点: https://www.youtube.com/watch?v 它将整个参数视为一个字符串 这将整个参数视为一个字符串。您可能需要实际调用它,但您的问题是它应该是yt”https://www.youtube.com/watch?v=V_yXqFA-Fxs“,然后在yt.bat中,如果不需要周

我刚刚编写了一个
yt.bat
文件,其中包含以下内容:

echo %1
我这样称呼它:

yt https://www.youtube.com/watch?v=V_yXqFA-Fxs
但它只反映了这一点:

https://www.youtube.com/watch?v
它将整个参数视为一个字符串


这将整个参数视为一个字符串。

您可能需要实际调用它,但您的问题是它应该是
yt”https://www.youtube.com/watch?v=V_yXqFA-Fxs“
,然后在
yt.bat
中,如果不需要周围的双引号,可以使用
%~1
而不是
%1
。Cmd将
=
字符视为分隔符,这也可以通过使用插入符号(即
yt)转义该字符来解决https://www.youtube.com/watch?v^=V_yXqFA-Fxs
,但我当然不建议过度使用双引号。这非常不方便,youtube dl无需转义即可工作。我需要编写一个简单的python脚本吗?使用
%*
而不是
%1
——它将整个参数作为字符串。@woopwoop399打开命令提示窗口,运行
cmd/?
并阅读输出帮助,特别是最后一个帮助页面上的最后一段,解释了包含空格或其中一个字符的参数字符串
&()[]{}^=;!'+`~需要周围的引号。在本例中,
cmd.exe
将双引号参数字符串外的等号解释为参数分隔符,如普通空格、水平制表符、,逗号或OEM编码的无换行符,也被
cmd.exe
解释为参数分隔符,双引号参数字符串除外。您可能需要实际调用它,但问题是它应该是
yt“https://www.youtube.com/watch?v=V_yXqFA-Fxs“
,然后在
yt.bat
中,如果不需要周围的双引号,可以使用
%~1
而不是
%1
。Cmd将
=
字符视为分隔符,这也可以通过使用插入符号(即
yt)转义该字符来解决https://www.youtube.com/watch?v^=V_yXqFA-Fxs
,但我当然不建议过度使用双引号。这非常不方便,youtube dl无需转义即可工作。我需要编写一个简单的python脚本吗?使用
%*
而不是
%1
——它将整个参数作为字符串。@woopwoop399打开命令提示窗口,运行
cmd/?
并阅读输出帮助,特别是最后一个帮助页面上的最后一段,解释了包含空格或其中一个字符的参数字符串
&()[]{}^=;!'+`~需要周围的引号。在您的例子中,
cmd.exe
将双引号参数字符串外的等号解释为参数分隔符,如普通空格、水平制表符、逗号或OEM编码的无中断空格,它们也被
cmd.exe
解释为参数分隔符,双引号参数字符串内除外。
echo %*