1

Я ничего не знаю о кодировании в Windows, но я настроил Pokemon Go. Мне нужно, чтобы .bat запустил команду, но затем мне нужно, чтобы он попросил у меня ввести адрес. Вот что мне нужно для запуска:

C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "LOCATION" -st 10 -H 0.0.0.0

Поэтому мне нужно запустить файл bat, затем попросить его указать местоположение, а затем запустить команду с этим. Не могли бы вы сделать это для копирования / вставки, пожалуйста? Заранее спасибо!

2 ответа2

3

Поэтому мне нужно запустить файл bat, а затем попросить его указать местоположение

Используйте set /p чтобы запросить и ввести значение:

SET /P variable=[promptString]
  • Переключатель /P позволяет установить переменную, равную строке ввода, введенной пользователем.

    Строка подсказки отображается перед прочтением ввода пользователя.

Попробуйте следующий командный файл:

@echo off
setlocal
set /p _location=Enter a location: 
C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "%_location%" -st 10 -H 0.0.0.0
endlocal

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • set - отображать, устанавливать или удалять переменные окружения CMD. Изменения, сделанные с помощью SET, будут сохраняться только в течение текущего сеанса CMD.
0

Если вам удобно просто вводить местоположение при запуске пакетного файла, вы можете заменить % 1 элементом, который вы хотите отобразить в своей пакетной команде, например:

C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "%1" -st 10 -H 0.0.0.0

Предполагая, что вы хотите, чтобы "LOCATION" отображался так, как в вашем примере, вы должны набрать:

 nameof.bat LOCATION

который будет производить ваш оригинальный пример, то есть:

C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "LOCATION" -st 10 -H 0.0.0.0

% 1 соответствует первому элементу в списке после имени вашего пакетного файла, когда вы вводите его в командной строке, т.е.

nameof.bat item_one(%1) item_two(%2) item_three(%3) ....

Если вы хотите выполнить сложную замену (несколько элементов одновременно), используйте% * (звездочка в процентах), например:

C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere %* -st 10 -H 0.0.0.0

Если это было вызвано с:

nameof.bat -l "LOCATION"

он снова произведет ваш оригинальный пример, то есть:

C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "LOCATION" -st 10 -H 0.0.0.0

Предостережения

Обратите внимание, что вы должны быть осторожны с использованием двойных кавычек "", но если вы знаете, что находится в вашей пакетной команде, у вас все будет хорошо.

Единственный реальный недостаток этого метода заключается в том, что если вы не введете ничего, что соответствует подстановке, в командной строке при вызове пакетного файла, ваша подстановка будет пустой, например:

C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "%1" -st 10 -H 0.0.0.0

Используется с:

 nameof.bat 

будет производить:

C:\Python27\python example.py -a ptc -u IsaacElenbaas -p mypasswordhere -l "" -st 10 -H 0.0.0.0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .