使用BAT文件传递特殊字符

时间:2016-11-28 11:03:37

标签: batch-file variables cmd special-characters autoit

我有变量:K+$>P9Z<>>n+Gb=,我想把它传递给bat文件。

问题是即使我用“”关闭它,它只是以毫秒开启和关闭。

的AutoIt:

Case $msg = $MAIN
        $NJN = GUICtrlRead($NJN_set)
        $OJN = GUICtrlRead($OJN_set)
        $PASS = GUICtrlRead($PASS_set)
        Run("n:\xxx\xxx\xxx.bat" & " " & $NJN  & " " & $OJN  & " " & $PASS)

xxx.BAT:

call n:\xxxx\var\variables.bat %1 %2 %3
set yourZipPassword=%Password%

2 个答案:

答案 0 :(得分:1)

您的批处理文件有什么作用?

要检查变量是否正确传递给批处理文件,您可以通过添加echo %[NAME_OF_YOUR_VARIABLE]%在控制台中打印它的值,例如如果您输入:do_something.bat K+$>P9Z<>>n+Gb=,您的批处理文件可能会像这样开始:

@echo off set parameter1=%1 echo %parameter1%

这里的问题是,>>是用于重定向流的保留字符串。我尝试了以下内容。呼叫 do_something.bat "K+$>P9Z<>>n+Gb=" 而您的批处理文件以 set var=%1 set var=%var:"=% 第一行接受第一个参数并将其存储在变量var中。第二个语句用双引号替换双引号(=删除)变量中的双引号。您可以在本文中找到有关转义字符的更多信息:http://www.robvanderwoude.com/escapechars.php

答案 1 :(得分:0)

使用插入符^。要逃避角色尝试使用插入符号。试试这个:

K+$^>P9Z^<^>^>n+Gb=

我们将逃避箭头。箭头试图指向要输出的文件。