0

我想登录到一个 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”。即它没有作为参数传递。

我浏览了一些帖子,但没有一个解决了我的问题。

4

0 回答 0