【问题标题】:How to prevent MSYS from converting remote file path for pscp如何防止 MSYS 为 pscp 转换远程文件路径
【发布时间】:2017-01-22 10:00:20
【问题描述】:

我在 Windows 上使用 msys2 bash 4.3.26 (i686-pc-msys),最近我发现它破坏了我的 pscpscp (msys1)

当我运行pscp req.py hostname:/home/user/xxx/yyy/:

  • msys 会将第二个参数更改为 hostname;D:\msys\home\user\xxx\yyy\
  • 然后pscp 将报告:ssh_init: Host does not exist
  • 我的scp 来自msys-1.0(我曾经使用过git-for-windows 1.9)报告ssh: Could not resolve hostnamehostname;d: no address associated with name

这很烦人,我必须打开cmd.exe 才能使用pscp。有什么办法可以防止 MSYS 2 转换特殊参数?

顺便说一句,这个问题只发生在那些不使用 msys2 DLL 的 .exe 文件上。如何检查这种差异?

【问题讨论】:

    标签: filepath scp msys2 pscp


    【解决方案1】:

    当 MSYS2 检测到您正在运行像 pscp 这样的本机 Windows 程序时,它会将 POSIX 样式的路径名转换为 Windows 样式的路径名。这些转换使用了大量的启发式方法,有时会得到错误的答案。

    您可以通过在运行命令时设置MSYS2_ARG_CONV_EXCL 环境变量来禁止转换某些参数。它是 MSYS2 不应尝试为其转换路径的参数前缀列表。您可以将变量设置为空字符串以关闭所有转换。但是,您可能需要转换 pscp 的第一个参数,因为它是本地计算机上的路径。所以你应该尝试像这样运行你的命令:

    MSYS2_ARG_CONV_EXCL=hostname pscp req.py hostname:/home/user/xxx/yyy/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多