执行Windows批处理文件

时间:2012-07-30 18:55:41

标签: shell unix batch-file plink pscp

我目前正在做什么 -

  1. MachineB(Windows环境)执行MachineA上的shell脚本。
  2. 然后等待shell脚本完成其任务,在我的情况下,它会将输出写入文本文件。
  3. 在shell脚本完成所有任务后,它意味着它已将所有内容写入txt文件,然后将该txt文件从MachineA复制到MachineB(Windows环境)。
  4. 所以为此,我写了一个Windows Batch file来完成上述任务,它对我来说很好。下面是我目前使用的Windows Bat文件。

    plink uname@machineB -m email.sh 
    pscp  uname@machineB:/export/home/uname/jk_attachment22.txt C:\PLINK\foo.txt
    

    但是通过使用上面的Windows批处理文件,我需要输入两次密码才是痛苦的,首先我需要输入第一行,然后再输入第二行。

    我的问题是 -

    那么有没有什么办法可以在命令提示符下输入password一次来运行上面的Windows批处理文件。任何建议将不胜感激。

    这就是我在寻找/.ssh folder时所拥有的。

    更新

    bash-3.00$ cd ~/.ssh
    bash-3.00$ pwd
    /home/uname/.ssh
    bash-3.00$ ls -lt
    total 2
    -rw-r--r--   1 uname   gid-uname     489 Jul 26 18:55 known_hosts
    

    所以我需要在这里做一些其他的改变?

2 个答案:

答案 0 :(得分:0)

我会跳过密码并使用ssh密钥进行身份验证。 http://www.debian-administration.org/articles/152

答案 1 :(得分:0)

在命令行实用程序中使用-pw选项。

假设您将批处理文件命名为TWINKIE.BAT。在命令提示符下,键入“TWINKIE密码”,其中“password”是您要使用的实际密码。

C:\>twinkie password

“密码”作为第一个命令行变量%1传递到批处理文件中。您的批处理文件将是:

plink -pw %1 uname@machineB -m email.sh
pscp  -pw %1 uname@machineB:/export/home/uname/jk_attachment22.txt C:\PLINK\foo.txt