运行 cygwin 中来自网络共享(vmware 共享文件夹)的批处理文件

Running batch file from network share (vmware shared folder) in cygwin

我在使用 cygwin 和映射网络驱动器时遇到了一些问题。我的设置有点复杂,无法处理我们公司 VPN 的一些限制。我在 VMware Fusion 下 运行 连接一个 Windows 10 虚拟机,其中有一个来自我的 Mac 主机的共享文件夹,该文件夹映射到 Windows 中的网络驱动器。原因是 b/c 我使用 VPN 连接访问远程 Git 存储库,该连接利用了一个浏览器插件,不幸的是,该插件目前只能在 Safari 上运行。我需要来自 Mac 主机的 运行 git 命令,但项目的 build/development 环境是 Windows。 VPN 浏览器插件无法在 Windows 下的任何浏览器中安装。希望这是一个暂时的问题,但我现在必须解决这个问题。

在我的 cygwin 环境中,映射的驱动器未显示在 /cygdrive 下,可能 b/c 它是 hgfs 文件系统类型的共享文件夹。我能够挂载共享文件夹,但是当我尝试从 cygwin 环境 运行 批处理文件时,出现以下错误:

./OpenCommandPrompt.bat
'\vmware-host\Shared Folders\grant\Projects\lts\Product'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported.  Defaulting to Windows directory.
The system cannot find the path specified.
'setenv.bat' is not recognized as an internal or external command,
operable program or batch file.
'setclasspath.bat' is not recognized as an internal or external 
command, operable program or batch file.
C:\Windows>

它不喜欢 UNC 路径。我可以使用映射的驱动器号从 PowerShell 运行 命令正常执行,但 cygwin 没有运气。我的愿望是 运行 VM 无头并通过 SSH 从我的主机访问 Windows 环境,所以如果可能的话我想在 cygwin 环境中让它工作。有什么建议吗?

我能够通过创建一个从我的 .bash_profile 执行的简单脚本来解决我的问题。我主要检查 /cygdrive/h 文件夹是否存在,如果不存在,我将执行脚本。

#!/bin/bash
net use H: '\vmware-host\Shared Folders\share'

我尝试从 Windows 映射驱动器,但所有尝试都未能在 cygwin 的 /cygdrive 文件夹下注册驱动器映射。这是我试图克服的问题。一旦我在 /cygdrive 下有了映射驱动器,我就能够执行所有批处理脚本。

老实说,我仍然不确定为什么从 Windows 映射驱动器没有在 cygwin 中注册它。反之亦然:如果我从终端执行 net 命令,它不会在资源管理器中注册。