批处理文件创建并写入VBScript文件

批处理文件创建并写入VBScript文件

问题描述:

我正在创建一个批处理脚本,用于创建和写入VBScript。我写的文件是这样的:批处理文件创建并写入VBScript文件

echo (code for vbscript) >> [name of vbscript].vbs 

但是,该代码的一部分是困扰着我:

echo If Len(m) > 1 then >> sys.vbs 

由于代码本身中有一个>符号,批文件将其解释为我试图写入VBScript并切断代码,但事实并非如此。我想要代码说If Len(m) > 1 Then,但它只是说If Len(m) then

我已经尝试过解决这个工作通过修改代码的说:

echo if NOT Len(m) < 1 then >> sys.vbs 

但这并不工作。如果我这样做,那么它完全省略了整行代码。

如果我没有很好地解释这个问题,我很抱歉,很难形容。

+2

用脱字符将'''换掉。根据这个'echo'声明是否存在于括号内,你可能还需要避开括号。 '如果Len ^(m ^)^> 1则回显>> sys.vbs' – rojo

+1

编写一个写入VBScript的BAT脚本听起来像是一种非常迂回的做事情的方式。你确定这是必要的吗?你真的确定这样做*这种方式*是必要的吗?我很难想象一个会使这种方法成为最佳选择的问题。也许你的时间花在思考一个更好的方法上,而不是这些笨拙的解决方法。 – Tomalak

<,>>>分批为redirection operators。正如@rojo已经在评论中指出的,你需要有一个插入符号(^)如果你想呼应他们在输出文件文本字符转义:

echo If Len(m) ^> 1 Then >> sys.vbs 

使用周围的回馈字符串双引号不起作用在这种情况下,因为echo在输出中包含双引号。

但是,我同意@Tomalak,您可能想重新考虑您的方法。从批处理文件中快速生成VBScript通常不是解决您手头上的任何问题的好方法。