【发布时间】:2014-02-04 14:07:29
【问题描述】:
我正在尝试找到一种方法来解决我遇到的脚本问题。我已经用简短的脚本模拟了我的问题,因此不必阅读长代码。
基本上我想要/需要实现的是用参数开始我的批处理,并以与脚本用户定义的相同方式使用参数,但是用转义字符替换百分号,后跟百分号 (% > ^%) .但是如果参数包含一些现有变量,例如 %date%
,则会出现问题这是我的代码的简短版本:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
set "x=%~1"
set "y=!x:%%=^^%%!"
echo %y%
参数可以包含任何内容,但也可以如下所示:
script.bat "this should be just plain text - %date%"
批处理脚本的预期输出如下:
this should be just plain text - ^%date^%
然而,变量似乎被立即解决了,尽管百分号甚至没有被转义,因为它找不到任何东西。如果参数不包含任何变量,它工作得很好,但这种方式输出看起来像这样:
this should be just text - Wed 01/15/2014
我试图避免任何额外的脚本语言使用(如 VBS)和任何其他应用程序的使用,而是使用 VBS 方式,例如比没有。 任何帮助、帮助或提示如何实现这一点将不胜感激。
【问题讨论】:
标签: batch-file cmd command-line-arguments