在批处理文件中使用Echo将IF语句写入文本文件

时间:2018-02-22 21:33:19

标签: batch-file text echo

我正在构建一个文本文件,它实际上是Excel的VBA模块,但是使用批处理文件编写。我想根据选择菜单上的用户选择动态创建它。该模块将创建一个循环以在文件夹中的所有文件上应用宏,但MACRO可以根据用户输入进行更改。

我遇到的问题是我无法将以下行复制到文本文件中:

 Echo If Right(folderPath, 1) <> "\" Then folderPath = folderPath + "\">>c:\users\%username%\desktop\TESTVBA.vbs

此行上方的所有其他行都写入该文件,但此行以及下面的所有内容都不会跟进,但我相信它与语法有关。如何阻止复制?或者它不能被复制?

2 个答案:

答案 0 :(得分:0)

每个重定向器字符(><|)都需要使用插入符号^进行转义,因此:

... th, 1) ^<^> "\"...

对于可能会在&(括号内的指令序列)中提出^))code-block等问题的其他字符也是如此)在generat ing 代码中)

%也需要转义 - 但%的转义字符是另一个%,因此%username%需要编码为%%username%% - 除非您想在此处替换generat ing 代码中username的当前值。

答案 1 :(得分:0)

您应该转发$('document').ready(function({ $('a').each(function(){ $(this).attr('placeholder',$(this).attr('href')); $(this).attr('href','javascript:'); }); }); 的所有内容。不幸的是,没有一种解决方案。应该复制每个echo百分比符号,并使用%插入符号转义列表<>&|中的所有特殊符号。以下代码将为您服务。请注意^不等式运算符如何变异为<>

^<^>

<强>更新

我记得的另一件事。括号Echo If Right(folderPath, 1) ^<^> "\" Then folderPath = folderPath + "\" (如果要在代码块中)编译(括号内可执行的内容),可能会让人头疼。

为了消除这些问题,我建议将可打印的大量文本存储为注释,并使用echo进行阅读。