1

我試圖從Visual Studio 2015的構建版命令行運行Windows 10 Linux子系統。也就是說,我有一個命令,其輸出將被傳送到bash,例如xyz | bashbash應該依次啓動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++項目上運行這個。

+0

你知道的事實,你可以_accept_堆棧溢出的答案? – m93a

+1

@ m93a哦,對不起,我忘了這個問題,因爲解決這個問題只是導致了一個不同的問題... – HerpDerpington

+0

什麼問題?如果它與bash相關,也許我可以提供幫助。 – m93a

回答

2

從我的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 %* 
) 
相關問題