如何防止MSYS为pscp转换远程文件路径
How to prevent MSYS from converting remote file path for pscp
我在 Windows 上使用 msys2 bash 4.3.26 (i686-pc-msys)
,最近我发现它破坏了我的 pscp
和 scp (msys1)
:
当我运行pscp req.py hostname:/home/user/xxx/yyy/
:
msys
会将第二个参数更改为 hostname;D:\msys\home\user\xxx\yyy\
- 然后
pscp
会报告:ssh_init: Host does not exist
- my
scp
来自 msys-1.0(我曾经使用 git-for-windows 1.9)报告 ssh: Could not resolve hostname
hostname;d
: no address associated with name
这很烦人,我必须打开 cmd.exe
才能使用 pscp
。有什么方法可以防止 MSYS 2 转换特殊参数吗?
- 我尝试在
'
或 "
中包装一个 arg 但失败了
- http://www.mingw.org/wiki/Posix_path_conversion 没有帮助但令人失望
- 环境:Windows10 Insider x64 和 msys2 i686
msys2
同包的官方scp.exe
效果很好
顺便说一句,这个问题只发生在那些不使用 msys2 DLL 的 .exe 文件上。如何检查这种差异?
MSYS2 将 POSIX-style 路径名转换为 Windows-style 路径名,当它检测到您正在 运行ning 本地 Windows 程序(如 pscp)时。这些转换使用了很多启发式方法,有时他们会得到错误的答案。
您可以通过在 运行 命令时设置 MSYS2_ARG_CONV_EXCL
环境变量来禁止某些参数的转换。它是 MSYS2 不应尝试转换路径的参数前缀列表。您可以将变量设置为空字符串以关闭所有转换。但是,您可能需要转换 pscp 的第一个参数,因为它是本地计算机上的路径。所以你应该尝试 运行 像这样使用你的命令:
MSYS2_ARG_CONV_EXCL=hostname pscp req.py hostname:/home/user/xxx/yyy/
我在 Windows 上使用 msys2 bash 4.3.26 (i686-pc-msys)
,最近我发现它破坏了我的 pscp
和 scp (msys1)
:
当我运行pscp req.py hostname:/home/user/xxx/yyy/
:
msys
会将第二个参数更改为hostname;D:\msys\home\user\xxx\yyy\
- 然后
pscp
会报告:ssh_init: Host does not exist
- my
scp
来自 msys-1.0(我曾经使用 git-for-windows 1.9)报告ssh: Could not resolve hostname
hostname;d
: no address associated with name
这很烦人,我必须打开 cmd.exe
才能使用 pscp
。有什么方法可以防止 MSYS 2 转换特殊参数吗?
- 我尝试在
'
或"
中包装一个 arg 但失败了 - http://www.mingw.org/wiki/Posix_path_conversion 没有帮助但令人失望
- 环境:Windows10 Insider x64 和 msys2 i686
msys2
同包的官方scp.exe
效果很好
顺便说一句,这个问题只发生在那些不使用 msys2 DLL 的 .exe 文件上。如何检查这种差异?
MSYS2 将 POSIX-style 路径名转换为 Windows-style 路径名,当它检测到您正在 运行ning 本地 Windows 程序(如 pscp)时。这些转换使用了很多启发式方法,有时他们会得到错误的答案。
您可以通过在 运行 命令时设置 MSYS2_ARG_CONV_EXCL
环境变量来禁止某些参数的转换。它是 MSYS2 不应尝试转换路径的参数前缀列表。您可以将变量设置为空字符串以关闭所有转换。但是,您可能需要转换 pscp 的第一个参数,因为它是本地计算机上的路径。所以你应该尝试 运行 像这样使用你的命令:
MSYS2_ARG_CONV_EXCL=hostname pscp req.py hostname:/home/user/xxx/yyy/