MSYS2:如何禁用路径名到驱动器号的自动转换?

时间:2017-06-22 13:14:18

标签: c shell mingw msys msys2

我在MSYS2 shell中测试用mingw编译的C程序时遇到了一个问题:我编写了一个命令行解析器,它根据windows约定接受选项(从./example.exe /o test 开始)。如果我这样调用我的程序来生成输出文件:

argv[1]

O:/中的最终结果是CMD.EXE。从运行#include <stdio.h> int main(int argc, char **argv) { if (argc > 1) { puts(argv[1]); } return 0; } 的控制台窗口进行测试时,它可以正常工作。这个真正最小的程序演示了这种行为:

$ ./example.exe /o
O:/
CMD.EXE

所以我猜这是MSYS2 shell尝试提供帮助,并将看起来像root下面的单字母路径的内容替换为驱动器字母语法。有没有办法禁用这种行为?总是启动from df2gspread import df2gspread as d2g import pandas as pd # your DataFrame df = pd.DataFrame(0, index=range(9000), columns=range(9)) # file ID or path to spreadsheet: '/folder/folder/spreadhsheet' spreadsheet = '2VVfq...nhR3I' # uploading d2g.upload(df, spreadsheet, wks_name="second worksheet") 进行测试有点麻烦。

1 个答案:

答案 0 :(得分:2)

您可以使用MSYS2_ARG_CONV_EXCL环境变量来禁用此行为。例如,尝试运行:

MSYS2_ARG_CONV_EXCL=\* ./example.exe /o test