如何使用Cygwin从POSIX切换到Windows系统

3
我正在编写一个在Cygwin上执行的Python脚本。其中一部分工作是调用pg_dump并传递文件名。我的问题是,Python/Cygwin在传递posix路径时,Windows版本的pg_dump无法识别。有没有什么方法可以将我的posix路径转换为Windows路径?
我想要将这个路径进行转换:
/cygdrive/c/Users/me/Code/myproj/pyBuildScript/src/snapshooter/working/sso.sql

为了

c:\Users\me\Code\myproj\pyBuildScript\src\snapshooter\working\sso.sql
2个回答

3
cygpath -w

您可以阅读手册页面以获取更多开关信息。其中包括:

  • -w 用于 Windows
  • -u 用于 Unix
  • -a 用于绝对路径

在转义时需要小心,确保路径参数是一个单独的 shell 单词。


所以,在运行我的脚本之前,我要运行cygpath吗? - scphantm
是的,像这样:your_program_here.py "$(cygpath -w "$P")" - Dan D.

1
你可以做以下事情:
>>> posix_str = "/cygdrive/c/Users/me/Code/myproj/pyBuildScript/src/snapshooter/working/sso.sql"
>>> nt_str = "C:" + posix_str[11:]
>>> nt_str = nt_str.replace("/", "\\")
>>> print nt_str
C:\Users\me\Code\myproj\pyBuildScript\src\snapshooter\working\sso.sql

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接