python - 通过 Python 脚本更改提示工作目录

标签 python windows scripting

是否可以通过 Python 脚本更改 Windows 命令提示符工作目录?

例如

>> cd
>> c:\windows\system32
>> make_decision_change_dir.py
>> cd
>> c:\windows

我已经尝试了一些不起作用的东西:

import os
os.chdir(path)

import os, subprocess
subprocess.Popen("chdir /D \"%s\"" %path, shell=True)

import os, subprocess
subprocess.Popen("cd \"%s\"" %path, shell=True)

import os, subprocess
subprocess.Popen("CD=\"%s\"" %path, shell=True)

据我了解并观察到这些操作会更改当前进程的工作目录 - 这是 Python 进程而不是其执行的提示。

谢谢。

更新

我想更改的路径是动态的(基于我正在处理的项目,构建位置的完整路径会更改)因此我想用 Python 编写解决方案而不是使用 Windows 批处理文件.

更新

我最终一起破解了一个批处理文件来做到这一点;( 谢谢大家。

最佳答案

我不清楚你想在这里做什么。您想要一个可以从 Windows 命令提示符运行的 python 脚本,它将更改 Windows 命令 session 的工作目录吗?

如果是这样,我 99.9% 确定那是不可能的。正如您自己所说,python.exe 进程是一个独立于 Windows cmd.exe 的进程,您在 Python 中执行的任何操作都不会影响命令提示符。

您可以通过 Windows API 通过向 Windows 发送击键或其他东西来做一些事情,但它会非常脆弱。

我能想到的仅有的两个实用选项涉及将 Python 脚本包装在批处理文件中:

  1. 从 Python 脚本中输出您想要的目录,读取批处理文件中的输出并将其放入 CD。
  2. 从批处理文件启动您的 Python 脚本,让您的 Python 脚本启动一个新的 cmd.exe 窗口并获取批处理文件以关闭原始命令窗口。

关于python - 通过 Python 脚本更改提示工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/645864/

相关文章:

Python plotly 动态图

python - 从 Pandas 中的所有列值中去除空间

php - Windows 上的 postgresql + nginx 运行时错误

c# - 如何自动(从命令行)安装 Visual Studio Build Tools 构建环境,适用于 C++、.NET、C# 等

c++ - 使用 IDispatch::Invoke 的 OLE 交互参数构造

objective-c - OBJ-C 脚本桥 - 使用属性创建脚本对象时遇到问题 (Microsoft Word)

powershell - 如何从 Switch 语句中退出 While 循环

python - GitPython 通过管道输出到 stdout

python - 我们可以用 python virtualenv 设置 cpu 内存要求吗

python - 通过电子邮件向 AT&T 彩信发送文件