【问题标题】:is it possible to automatically escape variables in xp bath (cmd) scripts?是否可以在 xp Bath (cmd) 脚本中自动转义变量?
【发布时间】:2012-05-18 18:47:52
【问题描述】:
所以在 *.cmd 文件中我有:
set /p variable=user input here
现在我应该用这个变量做某事,但用户可以在这里放任何东西,甚至是如果未转义则不允许的字符。所以我在 CMD 工具箱中有任何东西来处理这种可能性。那就是现在自动创建(用户不知道什么是允许的,什么是不允许的)另一个包含所有必要字符的变量已转义,以便我可以在我的脚本中安全地使用它?
【问题讨论】:
标签:
command-line
windows-xp
escaping
cmd
【解决方案1】:
SET /P 将正确接受任何输入,包括未转义的特殊字符。当需要使用(可能)包含特殊字符的变量时,您只需要使用延迟扩展即可。
@echo off
setlocal enableDelayedExpansion
set /p "test=Enter something: "
echo test=!test!
SET /P 语句中的引号不需要允许特殊字符输入。它们只是为了在提示符末尾启用一个空格。