Windows 批次中呼叫後的呼叫不顯示

Windows 批次中呼叫後的呼叫不顯示

我有一個像這樣的批次文件,用於創建和激活 python 虛擬環境並安裝一些包

創建.bat:

mkdir "%CD%\.venv"
python -m venv .venv
call .venv\Scripts\activate
python -m pip install --upgrade pip

第三行是使用批次的呼叫命令運行的批次檔。我得到的是這樣的:

E:\test>create.bat

E:\test>mkdir "E:\test\.venv"

E:\test>python -m venv .venv

E:\test>call .venv\Scripts\activate
Collecting pip
  Using cached https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 19.0.3
    Uninstalling pip-19.0.3:
      Successfully uninstalled pip-19.0.3
Successfully installed pip-20.0.2

但是,正如您所看到的,在運行最後一行時,我沒有看到我期望的典型提示文字:

...
(.venv) E:\test\> python -m pip install --upgrade pip

它只是列印其餘操作的輸出。通常這不會成為問題,但稍後的任務之一是要求輸入的 Python 腳本,但所有內容都會被忽略並在不詢問的情況下運行。

作為參考,如果我手動一一鍵入命令,我將新增輸出:

E:\test>mkdir "%CD%\.venv"

E:\test>python -m venv .venv

E:\test>call .venv\Scripts\activate

(.venv) E:\test>python -m pip install --upgrade pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 19.0.3
    Uninstalling pip-19.0.3:
      Successfully uninstalled pip-19.0.3
Successfully installed pip-20.0.2

答案1

我自己找到了答案。我沒有想太多,因為我呼叫的批次腳本是 Python 自動產生的腳本。但它包括了這一行

@echo off

一開始。當它再次返回我的腳本時,該命令當然仍然處於活動狀態。透過將腳本重寫為:

mkdir "%CD%\.venv"
python -m venv .venv
call .venv\Scripts\activate
@echo on
python -m pip install --upgrade pip

相關內容