使用Python从Windows批处理文件执行命令,无需创建批处理文件

发布于 2024-11-16 17:07:48 字数 424 浏览 1 评论 0原文

我需要执行以下命令(以及其他几个类似的命令)来收集 Windows 操作系统事件日志:

' wmic nteventlog where filename="appevent" call BackupEventLog C:\appevent.evt '

该命令通过 cmd 提示符成功执行。并收集文件 C:\appevent.evt 但是当我使用 Python os.system 或 os.popen 执行它时,会出现重新运行错误。

另外,如果我使用上述命令创建一个 .bat 文件并使用 os.system 执行 .bat ,它就可以工作 正确地,

当我使用 os.system 执行 cmd 时出了什么问题? 以及如何使用 Python 执行该命令?

I need to execute below command (and couple of other similar) to collect Windows OS event logs:

' wmic nteventlog where filename="appevent" call BackupEventLog C:\appevent.evt '

The command executes successfully through cmd prompt. and collects file C:\appevent.evt
But when i use Python os.system or os.popen to execute it retruns error.

Also if I create a .bat file with the above command and execute the .bat using os.system it works
properly,

What is going wrong when I execute cmd using os.system?
and How can I execute the command using Python?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

两个我 2024-11-23 17:07:48

这是由于字符串中的 \a 造成的。通过将字符串中的 \ 替换为 \\ 来转义它:

' wmic nteventlog where filename="appevent" call BackupEventLog C:\\appevent.evt '

或使用原始字符串:

r' wmic nteventlog where filename="appevent" call BackupEventLog C:\appevent.evt '

Its due to the \a in the string. Escape the \ in the string by replacing it with \\:

' wmic nteventlog where filename="appevent" call BackupEventLog C:\\appevent.evt '

or use a raw string:

r' wmic nteventlog where filename="appevent" call BackupEventLog C:\appevent.evt '
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文