簡體   English   中英

如何在 vscode 終端中運行批處理文件

[英]How to make a batch file run in vscode terminal

我正在嘗試制作一個在 vscode 中打開虛擬環境的批處理文件。 到目前為止,代碼如下所示:

if NOT exist ./env (
    pip3 install virtualenv 
    virtualenv env
)
.\env\Scripts\activate.ps1

if 語句按預期工作,但之后的命令卻沒有。 但是,當我在 Windows 的默認終端中運行該程序時,它按預期工作。

編輯:我知道這可能不是編寫程序的最佳方式,但我是批處理的新手,它可以工作,所以我現在對它很滿意。

編輯 2:讓我嘗試更好地解釋問題所在。 當我在普通終端中運行程序時,它工作得很好。 問題是我在 vscode 中使用了終端。 如果我嘗試在終端中運行一個普通命令,它會說找不到該命令(輸入文件名)。 當我使用代碼運行器擴展時,它會正確運行第一行,但不會激活虛擬環境

您正在混合批處理文件和 powershell。 這是兩件不同的事情。 批處理文件后綴可以是.bat.cmd powershell 文件通常以.ps1結尾。

批處理文件正在使用C:\\WINDOWS\\system32\\cmd.exe Powershell 正在使用C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe 如您所見,這是兩個不同的解釋器。

如果您需要運行作為 powershell 腳本的.ps1文件,您需要在 powershell 中運行它而不是.bat文件!

要執行您的腳本,您需要像這樣執行它:

& 'C:\\env\\Scripts\\activate.ps1'

如果您在 powershell 上運行它,您的 if 條件將不再起作用。 你需要做這樣的事情:

$PipArgs = @('install', 'virtualenv') 
if(Test-Path -PathType leaf "C:\env"){
    & 'pip3' $PipArgs
    & 'virtualenv' 'env'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM