2016-11-28 79 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= 

我們會逃離箭頭。箭頭試圖指出文件也輸出。