使用记事本打开文件并使用vbscript保存

时间:2016-11-23 00:15:42

标签: windows vbscript process scripting notepad

我的问题是我想在记事本中打开一个文件,然后从记事本中保存,而不是手动但使用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.Process)中的系统。我假设在这一行中应该创建一个记事本的过程(like here)然后将这个过程的对象返回到变量记事本(我不知道是否以及如何可以achived)以便在第三行(notepad.Window("Notepad"))中使用。

如果有人知道代码应该如何工作,我真的很感激帮助。关于如何解决这个问题的任何其他建议(或任何关于它是否可以实际解决的想法)都是非常受欢迎的。谢谢你的时间。

修改

正如我在下面的评论中所说,上面的代码需要昂贵的TestComplete软件。因此,如果有人有任何想法以其他方式解决我的问题(其他软件,其他代码,其他编程语言),我很乐意学习它。

1 个答案:

答案 0 :(得分:0)

我认为您需要将文件从一个路径复制到另一个路径。请参考以下代码复制文件,

功能CopyFile()

strSourceFile = "c:\.....\source.txt"
strDestFile = "c:\.....\dest.txt"

Set fso = CreateObject("Scripting.FileSystemObject")
'Check to see if the file is read-only
If Not fso.GetFile(DestinationFile).Attributes And 1 Then 
    'The file exists and is not read-only.  Safe to replace the file.
    fso.CopyFile strSourceFile, strDestFile, strOverWrite
Else 
    'The file exists and is read-only.
    'Remove the read-only attribute
    fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes - 1
    'Replace the file
    fso.CopyFile strSourceFile, strDestFile, strOverWrite
    'Reapply the read-only attribute
    fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes + 1
End If

结束功能