2016-11-28 22 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%'はどこに設定されていますか? variables.batの中に問題があるかもしれません...ほとんどの場合、有用なことは、バッチファイル全体に 'echo'と' pause'を置いてどこで問題が起こるかを判断することです。 – geisterfurz007

答えて

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に格納します。 2番目のステートメントは、二重引用符を変数から二重引用符で置き換えません(=削除します)。エスケープ文字の詳細については、次の記事を参照してください。http://www.robvanderwoude.com/escapechars.php

+0

私はn:\ xxxxx \ var \ variablesを呼び出します。あなたのZipPassword =%Password%を設定した場所 – Denis

+0

BATファイルがこの変数のためにロードしたくないことを指摘してください。 – Denis

+0

問題は2つの '' '' '' ''のようです。文字列全体を '' 'K + $> P9Z <>> n + Gb =" '' '引用符で囲むか、この記事のようにエスケープする必要があります:http://www.robvanderwoude.com/escapechars.php – actc

0

キャレットを使用^文字をエスケープするには、キャレットを使用してみてください。試してみてください:

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

矢印を逃してしまいます。矢印はファイルが出力されることを指し示します。