【发布时间】:2012-09-05 15:45:54
【问题描述】:
我试图将引号中的星号符号作为命令行参数传递到我的控制台应用程序中,当我使用System.Environment.getArgs 获取它时,我实际上得到了当前目录中的文件列表。这是错误的,因为我将星号包装在引号中,因此不应替换引号中的文本。如何在 cygwin 下的 Windows 中获取没有这种替换的命令行参数?
【问题讨论】:
-
这似乎更像是 windows 的问题,而不是 Haskell 的问题。
-
你是用单引号还是双引号?
-
这是你的 shell 的问题,而不是
getArgs的问题。在将任何参数发送到您的程序之前执行通配符。 -
@valderman 在 Windows 上不一定是这样,在 Windows 上程序需要自己执行 glob 扩展(
cmd.exe不会扩展 glob,GetCommandLine 只是一个字符串;C 运行时会解析在输入main之前)。 -
哦。我想我已经在 *nix-land 中停留了太久,忘记了这一点。 :)
标签: windows haskell command-line cygwin