我正在尝试将SFTP命令放在一起运行Powershell。我可以访问的可执行文件是SFTPC.exe(Bitvise Tunnelier)
我正在尝试的命令是
sftpc.exe user@ftp.domain.com -pw=password -unat=y -cmd="ls \"somefile.txt\""
根据https://www.bitvise.com/files/sftpc-v4.14-usage.txt的文档,这应该登录并运行命令ls "somefile.txt"
(在命令参数中转义引号)
实际发生的是我得到另一行输入,好像有一个未公开的引用。
我尝试在末尾添加额外的引用
sftpc.exe user@ftp.domain.com -pw=password -unat=y -cmd="ls \"somefile.txt\"""
这会连接并登录,但它尝试运行的colland是ls \somefile.txt"
请注意尾随引号和前导斜杠。
所以看起来我错过了引用逃避的东西,但我看不出我可能做错了什么。我也尝试在几个不同的地方用单引号替换双引号,实验通常以语法错误结束。
答案 0 :(得分:1)
powershell中的转义字符不是反斜杠,而是反击。
以下是否有效?
sftpc.exe user@ftp.domain.com -pw=password -unat=y -cmd="ls `"somefile.txt`""