2016-11-28 75 views
0

特殊字符我有变量:K+$>P9Z<>>n+Gb=,我想将它传递给BAT文件。通与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% 
+0

发布您的代码!没有它,我们可以猜测什么可能有帮助... – geisterfurz007

+0

@ geisterfurz007完成,看看。 – Denis

+0

'%password%'设置在哪里?如果这在变量.bat中可能会有问题......一个有用的东西几乎总是在整个批处理文件中放置'echo'和'pause'来确定可能发生问题的位置。 – geisterfurz007

回答

1

什么是您的批处理文件吗?

要检查变量是否被传递到批处理文件正确,你可以打印在控制台值加入echo %[NAME_OF_YOUR_VARIABLE]%,例如如果键入:这里

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

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

+0

我叫N:\ XXXXX \ VAR \变量.bat%1%2%3使用AutoIt,并将变量传递给bat文件。我在哪里设置了yourZipPassword =%密码% – Denis

+0

关键是BAT文件甚至不想因为这个变量而加载。 – Denis

+0

这个问题似乎是两个'''>>'''。你必须把整个字符串放在引号中:'''“K + $> P9Z <>> n + Gb =”'''或者像本文一样转义它们:http://www.robvanderwoude.com/escapechars.php – actc

0

使用插入符号^。为了逃避角色,请尝试使用插入符号。试试这个:

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

我们会逃离箭头。箭头试图指出文件也输出。