[英]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.