我正在尝试将参数传递给要在远程计算机上执行的本地脚本。 该脚本工作正常,因为我已经测试过它手动传递变量。 我正在尝试为此使用 plink。 我接受用户名(arg 传递给脚本)并需要通过 plink 将其与脚本一起发送。我使用的命令是:
plink.exe ubuntu@192.168.198.128 -m "myLocalScript.ksh"
我也试过:
plink.exe ubuntu@192.168.198.128 -m "myLocalScript.ksh %username%"
plink.exe ubuntu@192.168.198.128 -m %username% < "myLocalScript.ksh"
我试过通过管道输入参数,并将它们添加到命令等的不同位置。 有谁知道我怎样才能做到这一点?
编辑: 我从 cmd.exe 而不是 cygwin 使用它。他们的 -m 选项执行以下操作:
-m file read remote command(s) from file
最佳答案
-m 选项没有传递属性的机制,它只是按原样运行文件。问题是您的 korn shell 脚本在本地端没有解释器,因此在您的 Windows 端没有此机制,但请尝试这样做:
plink ubuntu@192.168.198.128 "tr -d '\r'| ksh -s %username%" < myLocalScript.ksh
最好让主调用更具可读性:
call :remotecmd ubuntu@192.168.198.128 myLocalScript.ksh %username%
exit /B
:remotecmd
setlocal
for /f "tokens=2,*" %%i in ("%*") do set options=%%j
plink %1 "tr -d '\r'| ksh -s %options%" < %2
endlocal
exit /B
该命令现在已通用化以处理任意数量的附加开关。
关于batch-file - 将参数从命令提示符传递到远程 ubuntu 机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363360/