【发布时间】:2017-03-18 20:47:23
【问题描述】:
想法
基本上,我的脚本所做的是检查 C:/SOURCE 中的 .txt 文件并为其添加时间戳。要复制它,您基本上可以创建该文件夹并将一些 txt 文件放在那里。然后,它应该运行一个 .vbs 文件,然后运行一个 .bat 文件,其中包含一些在这里无关紧要的 rclone 命令。我这样做是因为通过 .vbs 文件运行 rclone 命令时不会打开 CMD 窗口。
Python 代码
import time, os, subprocess
while True:
print("Beginning checkup")
print("=================")
timestamp = time.strftime('%d_%m_%H_%M') # only underscores: no naming issues
the_dir = "C:/SOURCE"
for fname in os.listdir(the_dir):
if fname.lower().endswith(".txt"):
print("found " + fname)
time.sleep(0.1)
new_name = "{}-{}.txt".format(os.path.splitext(fname)[0], timestamp)
os.rename(os.path.join(the_dir, fname), os.path.join(the_dir, new_name))
time.sleep(0.5)
else:
subprocess.call(['cscript.exe', "copy.vbs"])
time.sleep(60)
VBScript 代码
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run Chr(34) & "copy.bat" & Chr(34), 0
Set WshShell = Nothing
Python 脚本唯一重要的部分是在最后一个 else 下方,subprocess.call() 应该运行 .vbs 文件。运行脚本时会发生什么,它会显示在运行 CMD 时总是出现的前两行,但随后什么也没有。
我该如何解决这个问题?我试过了:
subprocess.call("cscript copy.vbs")
subprocess.call("cmd /c copy.vbs")
两者都具有相同的结果,它什么都不做。
有人有想法吗?
【问题讨论】:
标签: python vbscript automation