2016-11-28 4 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]%, например. если вы напечатаете: 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

+0

Я называю n: \ xxxxx \ var \ variables .bat% 1% 2% 3 с AutoIt и переменная передается в файл bat. Где я установил yourZipPassword =% Password% – Denis

+0

Ключ к тому, что BAT-файл даже не хочет загружаться из-за этой переменной. – Denis

+0

Проблема заключается в двух '' '' '' '' '. Вы должны поместить всю строку в кавычки: '' '" K + $> P9Z <>> n + Gb = "' '' или избежать их, как в этой статье: http://www.robvanderwoude.com/escapechars.php – actc

0

Используйте каретку ^. Чтобы избежать символа, попробуйте использовать каретку. Попробуйте следующее:

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

Мы избежим стрелок. Стрелки также указывают на вывод файла.

Смежные вопросы