从Visual Studio的构建后命令行运行Linux子系统
问题描述:
我试图从Visual Studio 2015的构建版命令行运行Windows 10 Linux子系统。也就是说,我有一个命令,其输出将被传送到bash
,例如xyz | bash
。 bash
应该依次启动Windows 10 Linux子系统并执行该命令。从Visual Studio的构建后命令行运行Linux子系统
从常规的CMD.exe
命令行或.bat
文件运行命令时,此功能完美。然而,在Visual Studio 2015年后,前期建设 - 或预链路事件命令行直接,通过call cmd /C
呼叫或外部.bat
文件代理运行这个时候,这个失败,错误代码255
并打印出“找不到”命令'bash
'。“。当尝试使用bash.exe
的完整路径时,也会失败。
如何从Visual Studio的命令行运行bash
?
旁注:我想在C/C++项目上运行这个。
答
从我的32位C++应用程序中使用bash
时,我也遇到了这个问题。
问题是bash
只有64位 - 当您尝试从32位应用程序使用它时,您拨打C:\Windows\System32\bash.exe
会被重定向到不存在的C:\Windows\SysWOW64\bash.exe
。
要绕过重定向,您必须使用C:\Windows\Sysnative\bash.exe
从32位应用程序调用bash。我实际上做了一批(.bat
)代理,我将其添加到PATH
以使事情更容易。
bash.bat:
@echo off
if exist "C:\Windows\Sysnative\bash.exe" (
C:\Windows\Sysnative\bash.exe %*
) else (
C:\Windows\System32\bash.exe %*
)
你知道的事实,你可以_accept_堆栈溢出的答案? – m93a
@ m93a哦,对不起,我忘了这个问题,因为解决这个问题只是导致了一个不同的问题... – HerpDerpington
什么问题?如果它与bash相关,也许我可以提供帮助。 – m93a