我想登录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
现在出现了问题,我希望用户同时传递环境ipaddress(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
我正在从命令行运行BATCH_FILE.bat时传递ENV1详细信息,并且它工作正常,并已登录ENV1。
但是我现在不知道是否也要通过ENV2,这又将取代%2。
我尝试使用%1代替,只是为了检查参数%1是否已从BATCH_FILE.bat传递到COMMANDS_TO_RUN_IN_LINUX.bat,然后依次将文件从ENV1复制回ENV1。
但这也给了我一个错误“未知主机%1”。它没有作为参数传递。
我浏览了一些帖子,但没有一个解决我的问题。