在cygwin中从网络共享(vmware共享文件夹)运行批处理文件

时间:2017-12-16 17:55:24

标签: batch-file cygwin unc

我在使用cygwin和映射网络驱动器时遇到了一些问题。我的设置有点令人费解,以应对我们的企业VPN的一些限制。我在VMware Fusion下运行Windows 10 VM,其中包含来自Mac主机的共享文件夹,该文件夹映射到Windows中的网络驱动器。原因是b / c我使用VPN连接访问远程Git仓库,该连接利用浏览器插件,遗憾的是,目前只在Safari上运行。我需要从Mac主机运行git命令,但项目的构建/开发环境是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环境中运行它。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

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