Вы передаете литеральные строки a_ftp_user
, a_ftp_pass
и filename
.
. В приведенных ниже примерах аргументы приводятся в двойных кавычках, даже если в этом нет необходимости, поскольку я не знаю, существуют ли пробелы в аргументах.
Вы можете объединить переменные со строковыми частями команды.
os.system('"C:\\Temp\\ftp_test.bat" "' + a_ftp_user + '" "' + a_ftp_pass + '" "' + filename + '"')
Или вы можете отформатировать строку, чтобы избежать +
конкатенации и использовать вместо нее {}
заполнители.
os.system('"C:\\Temp\\ftp_test.bat" "{}" "{}" "{}"'.format(a_ftp_user, a_ftp_pass, filename))
Или, если вы используете Python 3.6+, вы можете использовать f-строки для замены имен переменных в строке значениями.Обратите внимание на f
перед строкой.
os.system(f'"C:\\Temp\\ftp_test.bat" "a_ftp_user" "a_ftp_pass" "filename"')
Просмотр string - Общие строковые операции о форматировании строки.
Наконец, для синтаксиса пакета требуется set
быть измененным, т.е.:
set "user=%~1"
, который получает 1-й аргумент.