gpt4 book ai didi

python - 从 python 运行 vssadmin

转载 作者:行者123 更新时间:2023-12-02 08:28:27 24 4
gpt4 key购买 nike

我正在尝试为自己编写一个简单的脚本来删除 Windows 还原点,我尝试使用 os 模块,然后使用 os.system 但它说 vssadmin 无法识别,另外,我尝试使用 subprocess,然后与 cmd 进行通信,但是我无法沟通两次,我不知道为什么。

有没有办法在 cmd 中运行 Python 中的以下脚本?

它将删除所有系统还原点的所有阴影,然后询问我是否要执行此操作。

vssadmin delete shadows /all
y

第一个示例:

它会抛出一个错误,因为我尝试与命令提示符通信两次。

import subprocess

proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE, stdout = subprocess.PIPE)
proc.communicate('vssadmin delete shadows /all'.encode())
proc.communicate('y'.encode())

第二个示例:

它无法识别我的代码。

import os

os.system('vssadmin delete shadows /all')
os.system('y')

最佳答案

您的代码有一些问题:

  1. 您正在使用communicate而不是stdin.write
  2. 您正在编写 'y' 而不是 'y\n'
  3. 您使用的是 vssadmin 而不是 c:\Windows\Sysnative\vssadmin.exe(vssadmin 是 32 位应用程序,您可能使用的是 64 位 Python)
  4. 使用 stdin 进行通信可能无论如何都不起作用,只需使用标志 /quiet

以下代码可能会帮助您获得更好的结果:

import subprocess
subprocess.Popen([r'c:\Windows\Sysnative\vssadmin.exe', 'delete', 'shadows', '/all', '/quiet'])

关于python - 从 python 运行 vssadmin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60237722/

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