通过C:\Windows\System32\chcp.com
循环是有效的,但是会出错。另一方面,仅执行chcp.com
不会。发挥作用:
C:\Windows\System32>for /F "tokens=2 delims=:." %a in ('"%SystemRoot%\System32\chcp.com"') do (echo %a)
产量:
The system cannot find the path specified.
C:\Windows\System32>(echo 437 )
437
另一方面,
C:\Windows\System32>%SystemRoot%\System32\chcp.com
产量
Active code page: 437
(通过"Active code page: 437"
循环会产生预期的结果)。
我已经阅读了question与FOR
的工作方式相关的内容,然后阅读了相关信息FOR /?
和this。我发布SO而不是SU,因为我认为这是关于FOR
循环在cmd.exe
和批处理文件中的工作方式,但这可能与{{1 }}。
那是MWE,但是更大的上下文是python虚拟环境。 chcp.com
文件使用此循环将代码页切换为unicode。 activate.bat
似乎在所有方面都可以使用,但是在设置Jupyter交互式窗口时某些IDE(VSCode)会越过该错误并失败。希望有一个更大的解决方案,以便创建虚拟环境通常不会遇到此问题。