Cygwin的bash无法运行'net use / user'命令?

时间:2010-02-10 17:28:52

标签: windows bash networking cygwin

我运行'net use / user:'某人“\ somewhere”,它适用于cmd.exe。

使用相同的cmd.exe,运行'bash --login -i'以使用cygwin / bash,并运行相同的命令,但我收到如下错误消息。

System error 67 has occurred.

The network name cannot be found.

为什么我不能用cygwin / bash运行'net use / user'命令?

3 个答案:

答案 0 :(得分:13)

在cygwin的bash中,你需要转义任何 forward 反斜杠,因为它们被解释为转义字符。

试试这个

net use /user:"Someone" \\\\server\\share

或使用单引号,它将传递参数不变

net use /user:"Someone" '\\server\share'

答案 1 :(得分:3)

我尝试在windows中使用bash中的net use使用/ delete开关时遇到了问题。它似乎与某些Windows命令处理命令行参数的方式有关。

我以为我可以通过从cmd.exe子shell启动“net use”来绕过它,但这似乎也受到参数处理问题的影响。我在引用中找到了一个解决cmd.exe的工作,但似乎找不到直接使用net use来完成任务的正确引用。

$ cmd "/c net use T: /delete"

答案 2 :(得分:0)

在MSYS / Git Bash中,以正斜杠开头的参数由 POSIX到Windows 路径转换
转换。 (即/delete看起来像路径,并转换为C:\Program Files\Git\delete之类的东西。)

有两种解决方案可以避免这种转换:

  1. 将第一个斜杠加倍,以避免POSIX到Windows的转换:

    net use //user
    # outputs usage of NET USE
    
    net use T: //delete
    # outputs "T: was deleted successfully."
    
  2. 使用临时环境变量MSYS_NO_PATHCONV=1 ,如下所示:

    MSYS_NO_PATHCONV=1 net use /user
    # outputs usage of NET USE
    
    MSYS_NO_PATHCONV=1 net use T: /delete
    # outputs "T: was deleted successfully."
    

来源/说明:Bash translates path parameter in Unix format to windows format, need a way to suppress it #577

更新:如bobbogo的注释中所建议,提及MSYS用于此答案。