Я использую WLST для выполнения некоторых сценариев для развертывания некоторых приложений в Weblogi c.
Я использую библиотеку getopt в Python для анализа аргументов командной строки.
Я создал скрипт для загрузки некоторых файлов по FTP.
Для этого пользователь должен сообщить ' ftpurl ', ' ftpusername ' e ' ftppassword 'опции и соответствующие значения.
import getopt
# -*- coding: utf-8 -*-
#=======================================================
# MAIN
#=======================================================
args = sys.argv
print 'Informed arguments: '
print args
for index in range(len(args)):
if (":\\" in args[index]) :
print
print 'Removing arguments with file path'
print args[index]
del args[index]
break
optlist, argsNotExpected = getopt.getopt(args, '', ['ftpurl=', 'ftpusername=', 'ftppassword='])
print
print 'Found options: '
print optlist
print
print 'Not expected arguments: '
print argsNotExpected
Значение аргумента "test123! @ # $% * () _-", которое имеет много специальных символов, работает.
java weblogic.WLST C:\\Ambiente\\scripts\\python\\getoptTest.py --ftpurl=ftp.test.com --ftppassword=test123!@#$%*()_- --ftpusername=usertest
Результат:
Informed arguments:
['C:\\\\Ambiente\\\\scripts\\\\python\\\\getoptTest.py', '--ftpurl=ftp.test.com', '--ftppassword=test123!@#$%*()_-', '--ftpusername=usertest']
Removing arguments with file path
C:\\Ambiente\\scripts\\python\\getoptTest.py
Found options:
[('--ftpurl', 'ftp.test.com'), ('--ftppassword', 'test123!@#$%*()_-'), ('--ftpusername', 'usertest')]
Not expected arguments:
[]
Но когда я сдаю "test & 123! @ # $% * () _-" с " &", значение равно break, а остальные аргументы игнорируются, начиная с" &".
java weblogic.WLST C:\\Ambiente\\scripts\\python\\getoptTest.py --ftpurl=ftp.test.com --ftppassword=test&123!@#$%*()_- --ftpusername=usertest
Результат:
Informed arguments:
['C:\\\\Ambiente\\\\scripts\\\\python\\\\getoptTest.py', '--ftpurl=ftp.test.com', '--ftppassword=test']
Removing arguments with file path
C:\\Ambiente\\scripts\\python\\getoptTest.py
Found options:
[('--ftpurl', 'ftp.test.com'), ('--ftppassword', 'test')]
Not expected arguments:
[]
'123!@#$%*' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.
Кто-нибудь может дать совет?