Я хочу войти в среду Linux, скажем, ENV1, и запустить команду из ENV1, чтобы автоматически скопировать файл из ENV1 в ENV2.
Все работает нормально, когда я использую команды ниже.
Я запускаю «BATCH_FILE.bat», который считывает команду из файла «COMMANDS_TO_RUN_IN_LINUX.bat», чтобы скопировать файл из ENV1 в ENV2.
Содержимое файла BATCH_FILE.bat, как показано ниже:
"C:\putty.exe" -ssh myuser_ENV_ONE@ENV1_ipaddress -pw "mypassword_ENV_ONE" -m "C:\COMMANDS_TO_RUN_IN_LINUX.bat"
Содержимое COMMANDS_TO_RUN_IN_LINUX.bat, как показано ниже:
sshpass -p "mypassword_ENV_TWO" scp /u01/file.txt myuser_ENV_TWO@ENV2_ipaddress:/u01/file.txt
Теперь возникает проблема: я хочу, чтобы пользователь передал оба IP-адреса среды (ENV1 и ENV2), а не жесткое кодирование, и для этого я изменил команду, как показано ниже:
Изменено содержимое файла BATCH_FILE.bat, как показано ниже:
"C:\putty.exe" -ssh myuser_ENV_ONE@%1 -pw "mypassword_ENV_ONE" -m "C:\COMMANDS_TO_RUN_IN_LINUX.bat"
Содержимое COMMANDS_TO_RUN_IN_LINUX.bat, как показано ниже:
sshpass -p "mypassword_ENV_TWO" scp /u01/file.txt myuser_ENV_TWO@%2:/u01/file.txt
Я передаю детали ENV1 при запуске BATCH_FILE.bat из командной строки, и он работает нормально, и я регистрируюсь в ENV1.
Но сейчас я понятия не имею, как передать ENV2, который, в свою очередь, заменит %2.
Вместо этого я попытался использовать %1, просто чтобы проверить, передается ли параметр %1 из BATCH_FILE.bat в COMMANDS_TO_RUN_IN_LINUX.bat, и, в свою очередь, он копирует файл из ENV1 обратно в ENV1.
Но это также дало мне ошибку «неизвестный хост% 1». он не был передан как параметр.
Я просмотрел несколько сообщений, но ни одно из них не решило мою проблему.