【发布时间】:2017-04-06 20:16:48
【问题描述】:
我的问题是我想在记事本中打开一个文件,然后从记事本中保存它,而不是手动,而是使用 vbscript(我想要这样做的原因是为了克服一些编码问题)。到目前为止,我找到了一个相关的article,它应该可以解决我的问题,但它不起作用。它有这个代码:
Dim notepad, wndNotepad, strDesktop
Set notepad = Sys.Process("notepad")
Set wndNotepad = notepad.Window("Notepad")
' Open a file in Notepad
wndNotepad.MainMenu.Click("File|Open...")
notepad.Window("#32770", "Open").OpenFile "C:\Program Files\SmartBear\TestComplete 12\install.txt"
' Save the file to the desktop
strDesktop = WshShell.SpecialFolders("Desktop")
wndNotepad.MainMenu.Click "File|Save as..."
notepad.Window("#32770", "Save As").SaveFile strDesktop & "\install.txt"
问题是 vbscript 无法识别第二行中的 Sys (Sys.Process)。我假设在这一行中应该创建一个记事本进程(like here),然后像这个进程的对象一样返回到变量记事本(我不知道是否以及如何实现)按顺序用于第三行 (notepad.Window("Notepad"))。
如果有人知道代码应该如何工作,我将非常感谢您的帮助。也非常欢迎有关如何解决此问题的任何其他建议(或有关是否可以实际解决的任何想法)。感谢您的宝贵时间。
编辑
正如我在下面的 cmets 中所说,上面的代码需要昂贵的 TestComplete 软件。因此,如果有人对以其他方式(其他软件、其他代码、其他编程语言)解决我的问题有任何想法,我会很高兴学习它。
【问题讨论】:
-
我会使用文本流。将
Charset属性设置为您的文件,读取文件,更改charset,然后将其写回。 msdn.microsoft.com/en-us/library/ms675032(v=vs.85).aspx -
简短的回答是 Sys.Process 不在任何 Windows 本机库中,它需要额外的库。可能想搜索谷歌以找出哪个库(dll)具有这些进程和功能。
-
您发布的代码不是有效的 VBScript。此外,您为什么只想在记事本中打开一个文本文件,然后一开始就以不同的名称保存它?只需复制文件。解决编码问题:发布一个描述实际问题的问题。
-
如果只是编码,请提供文件样本。您所看到的,您想看到的,我们可以帮助您使用本机库有效地重建它。
-
文件前几个字节的十六进制转储可能也会有所帮助。
标签: windows vbscript process scripting notepad