1

質問は、vbscript からテキスト ファイルを保存して閉じる方法です。

特定の txt ファイルを開いて保存し、テキスト ファイルを閉じる必要があります。

次のコマンドでファイルを開くことができます:

Dim Objecttxt
Set Objecttxt = CreateObject("WScript.Shell")
Objecttxt.Run "notepad.exe d:\text.txt"

そして、txtファイルに次のコマンドを実行しようとします:

Objecttxt.SendKeys "^(s)", True

Objecttxt.SendKeys "%({F4})", True

ただし、フォーカスはメモ帳エディターに設定されていません。

また、次の行を追加します: Objecttxt.AppActivate "Text.txt - Kladblok", 800 しかし、影響はないようです。コマンド: WScript.Sleep 800 は受け入れられません (アクセス 2007)

誰か教えてください:

  • それは正しい方法です

  • この方法はどのように機能しますか?

ありがとう

4

1 に答える 1

0

たとえば、.png ファイルを .jpg に変更しています

Option Explicit
' Change the Extension you want to Replace
Const CHANGE_FROM = ".png"
Const CHANGE_TO = ".jpg"

' Var Declaration - Don't Change
Dim srcFolder
Dim objFSO, objFolder, oFolder
Dim colFiles

' Set the Source Folder to Begin With or you can dynamically find this if this is being used on multiple computers
srcFolder = "C:\Temp\Files"

' Object Sets - Don't Change
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(srcFolder)
Set colFiles = objFolder.Files

' Changes Files Extensions in Source Folder
ChangeExtension colFiles
' Change the Extension for Each Sub Folder in the Source Folder
GetFilesFromSubFolders objFolder

説明: サブは再帰的に各フォルダーのサブフォルダーをチェックします。各サブフォルダーについて、ファイルを抽出し、ChangeExtension を使用してファイルを変更します拡張子入力: ルートフォルダーオブジェクト出力: 各サブフォルダーの再帰呼び出し - ファイル拡張子の変更

 --- Subs ---
 Sub GetFilesFromSubFolders(objRootFolder)
 Dim oSubFolders, oSubFol
 Dim colSubFolFiles
 ' Get the Sub Folders of the Root Folder
 Set oSubFolders = objRootFolder.SubFolders
 ' Check that Folder has Sub Folders
 If oSubFolders.Count > 0 Then
 ' For Each Sub Folder Call Recursevlly 
 For Each oSubFol In oSubFolders
 GetFilesFromSubFolders oSubFol
 Next 
 End If
 ' Get the Files in the folder
 Set colSubFolFiles = objRootFolder.Files 
 ' Change Files Extensions in Folder
 ChangeExtension colSubFolFiles
End Sub

Sub ChangeExtension(collectionSet)
' Description : Sub will Change the Extension 
' for Each File that has the Requested Extension
' Input  : Collection Set Object of Files
' Output : Changes the File Extension
Dim objFile
 ' For Each File in the Files Collection
 For Each objFile In collectionSet
 ' Check if File has the Requested Extension
 If InStr(objFile.Name,CHANGE_FROM) Then
 ' Checge the Extension
 objFile.Name = Replace(objFile.Name,CHANGE_FROM,CHANGE_TO)
 End If
 Next 
End Sub
于 2013-11-12T20:19:38.083 に答える