批处理脚本:为什么打印“=而不是空string?【JAVA教程】

!
也想出现在这里? 联系我们
信息

批处理脚本:为什么打印“=而不是空string?,第1张

概述批处理脚本:为什么打印“=而不是空string?

我试图在批处理中使用参数扩展删除一些文本中的引号。 谁能告诉我这是为什么:

@echo off setlocal set args=%* echo %args:\”=%

打印\”=而不是什么?据我可以看到%args:\”=%应该用什么都不replace所有的引号,所以我不明白为什么会发生这种情况。

任何帮助将不胜感激,谢谢!

编辑:为了澄清,我没有传递任何参数到批处理脚本

在windows中转义空间

在上午9点之前运行的Bat文件会给出错误,无效的号码。 数字常数是十进制(17),

在命令提示符下获取MysqLpath

基于文件系统中的位置的Shell提示符

运行远程命令时,Typepref命令不提供有效的计数器

Howto:从windows命令行search文件中的string?

为什么windows命令提示符和batch file的编码有区别?

使用命令提示符启动保存的Python程序时遇到麻烦

如何根据条件格式化我的zsh提示符?

Python Pip安装:在命令提示符窗口中不能识别为batch file

这是您在不向脚本传递任何参数时得到的结果。

如果args没有被定义,那么%args:\”=%被扩展如下:

%args:被视为一个不存在的变量扩展,它变成什么都没有

\”=被视为自己

% (孤独的百分比)被剥离

这不是直观的,但恰好是cmd.exe的工作原理。 有关更多信息,请参阅https://stackoverflow.com/a/7970912/1012053 。

您可以通过使用if defined来防止该问题

@echo off setlocal set args=%* if defined args echo %args:\”=%

它在这里工作

C:windowssystem32>\”C:UsersUserDesktopTest2.bat\” dog dog

删除回声显示这一点

C:windowssystem32>setlocal C:windowssystem32>set args=dog C:windowssystem32>echo dog dog

您没有传递任何命令行参数。

C:windowssystem32>\”C:UsersUserDesktopTest2.bat\” C:windowssystem32>setlocal C:windowssystem32>set args= C:windowssystem32>echo \”= \”=

总结

以上是内存溢出为你收集整理的批处理脚本:为什么打印“=而不是空string?全部内容,希望文章能够帮你解决批处理脚本:为什么打印“=而不是空string?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞161 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容