gpt4 book ai didi

powershell - 如何在 vscode 终端中运行批处理文件

转载 作者:行者123 更新时间:2023-12-02 23:50:15 25 4
gpt4 key购买 nike

我正在尝试制作一个在 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'
}

关于powershell - 如何在 vscode 终端中运行批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60892430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com