【问题标题】:PowerShell "You must provide a value expression following the '/' operator" error when calling WinSCP.com调用 WinSCP.com 时,PowerShell“您必须在 '/' 运算符之后提供值表达式”错误
【发布时间】:2018-05-18 05:39:27
【问题描述】:

我有一段将文件放入 FTP 服务器的代码。看起来像这样:

"C:\Program Files (x86)\WinSCP\WinSCP.com" /command "open user@myFTPServer:MyPort/MyPath/ -privatekey=myprivatekey.ppk" "put myfile.txt" "exit"

这在 Windows 命令提示符下运行良好,但在 PowerShell 中运行相同的东西时它不起作用并返回以下错误:

"您必须在'/'运算符后面提供一个值表达式"

我尝试了几种代码组合,但都没有奏效:

1)

"C:\Program Files (x86)\WinSCP\WinSCP.com" -command "open user@myFTPServer:MyPort/MyPath/ -privatekey=myprivatekey.ppk" "put myfile.txt" "exit"

2)

"C:\Program Files (x86)\WinSCP\WinSCP.com" -command ""open user@myFTPServer:MyPort/MyPath/ -privatekey=myprivatekey.ppk" "put myfile.txt" "exit""

【问题讨论】:

    标签: windows powershell ftp sftp winscp


    【解决方案1】:

    由于 winscp.com 可执行文件的路径和/或文件名包含空格,请使用 & 运算符调用它:

    & "C:\Program Files (x86)\WinSCP\WinSCP.com" /command "open user@myFTPServer:MyPort/MyPath/ -privatekey=myprivatekey.ppk" "put myfile.txt" "exit"
    

    (当然,假设 winscp.com 的命令行参数在其他方面是正确的)

    【讨论】:

    • 感谢您的回答。现在它正在工作,但它不会得到我的 ppk,因为它位于带有空格的路径下。我尝试在 -privatekey 之后添加“&”,但它不起作用。知道如何解决这个问题吗?
    • @Victor 您的问题没有显示任何带有空格的路径。但这可能会对您有所帮助:Use path with spaces in batch file using WinSCP
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多