Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 要创建并写入VBScript文件的批处理文件_Batch File_Vbscript - Fatal编程技术网

Batch file 要创建并写入VBScript文件的批处理文件

Batch file 要创建并写入VBScript文件的批处理文件,batch-file,vbscript,Batch File,Vbscript,我正在创建一个批处理脚本,该脚本创建并写入VBScript。我正在这样写文件: echo (code for vbscript) >> [name of vbscript].vbs 然而,代码中有一部分让我感到不安: echo If Len(m) > 1 then >> sys.vbs 由于代码本身有一个符号,批处理文件将其解释为我试图写入VBScript并切断代码,但事实并非如此。我想让代码说如果Len(m)>1那么,但它只是说如果Len(m)那么 我已经尝试

我正在创建一个批处理脚本,该脚本创建并写入VBScript。我正在这样写文件:

echo (code for vbscript) >> [name of vbscript].vbs
然而,代码中有一部分让我感到不安:

echo If Len(m) > 1 then >> sys.vbs
由于代码本身有一个
符号,批处理文件将其解释为我试图写入VBScript并切断代码,但事实并非如此。我想让代码说
如果Len(m)>1那么
,但它只是说
如果Len(m)那么

我已经尝试过通过修改代码来解决这个问题:

echo if NOT Len(m) < 1 then >> sys.vbs
echo如果不是Len(m)<1则>>sys.vbs
但这也不起作用。如果我这样做,那么它将完全忽略整行代码

很抱歉,如果我没有很好地解释这个问题,它很难描述。

>
是成批的。正如注释中已经指出的,如果要在输出文件中以文字字符的形式回显它们,则需要使用插入符号(
^
)对它们进行转义:

echo If Len(m) ^> 1 Then >> sys.vbs
在回显字符串周围使用双引号在这种情况下不起作用,因为
echo
在输出中包含双引号


然而,我同意你可能想重新考虑你的方法。从批处理文件动态生成VBScript通常不是解决手头任何问题的好方法。

用插入符号退出
。根据该
echo
语句是否存在于括号内,您可能还需要对括号进行转义
echo if Len^(m^)^>1然后>>sys.vbs
编写编写VBScript的BAT脚本听起来像是一种非常迂回的做事方式。你真的确定这是必要的吗?你真的确定这样做是必要的吗?我很难想象一个问题会使这种方法成为最佳选择。也许你最好花时间考虑一个更好的方法,而不是这些笨拙的变通方法。