VBSCRIPT 保存
Posted
技术标签:
【中文标题】VBSCRIPT 保存【英文标题】:VBSCRIPT SAVEAS 【发布时间】:2017-01-09 15:35:44 【问题描述】:我有以下:
set wshshell=createobject("wscript.shell")
wshshell.run """C:\ReportName.pdf"""
这将打开命名的 PDF。我需要什么代码将打开的文件另存为,例如 SaveAs.. 将其保存为相同的文件名?
谢谢
【问题讨论】:
您可以使用WshShell.SendKeys
模拟活动窗口上的另存为。
嗨。我现在有 WshShell.SendKeys "SHIFT^CTRL+S" 并且错误说“无效的过程调用或参数。
是的,您可能需要等待几秒钟(如wscript.sleep 1000
)才能打开文件,然后wshshell.SendKeys "%FA"
谢谢。 wshshell.SendKeys "%FA" 有效,但它会打开保存对话框。如何模拟从对话框中单击“保存”?
尝试使用文件系统对象。
【参考方案1】:
这里是示例代码
set wshshell=createobject("wscript.shell")
wshshell.run """C:\ReportName.pdf"""
wscript.sleep 2000 'sleep for 2 seconds to ensure file is open
wshshell.SendKeys "%FA" 'simulate ALT+F+A to open SaveAs dialog
wscript.sleep 5000 ' sleep for 5 seconds so that the save as dialog is open
wshshell.SendKeys "+TABENTER" 'simulate Shit+Tab so that the tab is moved backed to Choose a diff folder option
wscript.sleep 2000
wshshell.SendKeys "C:\NewFile.PDFENTER"
wscript.sleep 3000
wshshell.SendKeys "%FX"
【讨论】:
谢谢。如何关闭原始 PDF 文件?我有: wshshell.SendKeys "^CTRL+W" 但它不工作 知道了。我注意到的一件事是,当代码运行时,如果出现一个提醒/对话框,当我有一个谷歌日历事件出现时,VBS 代码就会停止/终止。我怎样才能防止这种情况发生?【参考方案2】:听起来您想复制文件或移动/重命名文件。如果是这样,请使用FileSystemObject
:
Set fso = CreateObject("Scripting.FileSystemObject")
Call fso.CopyFile("C:\ReportName.pdf", "C:\NewReport.pdf")
' or
Call fso.MoveFile("C:\ReportName.pdf", "C:\NewReport.pdf")
【讨论】:
以上是关于VBSCRIPT 保存的主要内容,如果未能解决你的问题,请参考以下文章
如何让 vbscript 将变量保存到文本文件中并在重新打开程序时调用它们?