gpt4 book ai didi

powershell - 从 powershell 调用多个命令,例如 psftp

转载 作者:行者123 更新时间:2023-12-04 15:03:03 28 4
gpt4 key购买 nike

我正在尝试使用 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"

最佳答案

试试这个:

$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"

回答评论中的问题:

第一部分,“$cmd |”将 $cmd 的内容通过管道传送到后面的命令。由于它是一个外部程序(与 cmdlet 或函数相反),它会将 $cmd 的内容发送到外部程序的 stdin。

“& $path”部分表示将 $path 的内容视为命令或程序名称并执行它。

该行的其余部分作为命令行参数传递给外部程序。

关于powershell - 从 powershell 调用多个命令,例如 psftp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556241/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com