【问题标题】:Batch Escape Percent sign [duplicate]批量转义百分号 [重复]
【发布时间】:2013-12-27 00:25:49
【问题描述】:

大家好,很难将环境变量通过管道传输到 clip.exe,在常规命令提示符下它可以工作,但在批处理文件中它会失败。我尝试过使用双重%% 和其他一些技巧进行转义。似乎没有任何效果。

我正在尝试将 citrix 环境变量 %clientname% 的输出通过管道传输到 clip.exe,如下所示:

@echo off
echo %clientname% | clip

【问题讨论】:

  • wtf 你为什么说要逃跑?顺便说一句,你可以用 ^% 逃脱不知道为什么 echo %blah% 不适合你。建议你排除故障。喜欢尝试其他变量。
  • 我一直在进行故障排除,这不仅仅是我设置的一些变量,这是一个仅在 citrix 会话中创建的变量。就像我说的那样,这可以从命令行工作,但一旦批量运行,它就不行了。感谢所有的帮助。
  • 您要回显文字 %name% 还是变量的内容?您上面的代码在这两种情况下都将包含一个尾随空格。
  • 变量的内容就是我所追求的。我可以接受尾随空格。
  • 您的变量为空 - 原因可能是您在其他程序中设置变量,Citrix?或者你打错了名字。

标签: batch-file escaping environment-variables


【解决方案1】:

只需使用^ 符号来转义命令行中的% 字符:

C:\> echo ^%clientname^%

但是您需要使用% 符号来转义批处理文件中的% 符号:

@echo %%clientname%%

【讨论】:

  • 你不能用插入符号转义百分号,在批处理文件中你可以用第二个%转义它
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 2015-11-15
  • 2011-11-03
  • 1970-01-01
相关资源
最近更新 更多