Afr*_*roz 6 powershell command-line
我正在尝试使用psftp.exe(putty)从PowerShell SFTP文件.我可以运行单个命令,如open,但我需要更改默认目录然后放入文件.以下代码将我带到psftp但忽略了从cd ..到bye的行.我想我可以运行一个具有sftp命令的批处理文件但是如果可能的话我想用PowerShell完成.
$file = "C:\Source\asdf.csv"
$user = "user"
$pass = "pass"
$hst = "host"
$path="C:\ProgramFiles\psftp.exe"
$cmd = @"
-pw $pass $user@$hst
cd ..
cd upload
put $file
bye
"@
invoke-expression "$path $cmd"
Run Code Online (Sandbox Code Playgroud)
尝试一下:
$file = "C:\Source\asdf.csv"
$user = "user"
$pass = "pass"
$hst = "host"
$path="C:\ProgramFiles\psftp.exe"
$cmd = @(
"cd ..",
"cd upload",
"put $file",
"bye"
)
$cmd | & $path -pw $pass "$user@$hst"
Run Code Online (Sandbox Code Playgroud)
在回答评论中的问题时:
第一部分,"$ cmd |" 将$ cmd的内容传递给后面的命令.由于它是一个外部程序(而不是cmdlet或函数),它会将$ cmd的内容发送到外部程序的stdin.
"&$ path"部分表示将$ path的内容视为命令或程序名称并执行它.
该行的其余部分作为命令行参数传递给外部程序.
| 归档时间: |
|
| 查看次数: |
5770 次 |
| 最近记录: |