Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Worddatei im Hintergrund öffnen, speichern und schließen.

Frage Entwicklung Batch & Shell

Mitglied: kristov

kristov (Level 2) - Jetzt verbinden

15.04.2013 um 14:53 Uhr, 4655 Aufrufe, 6 Kommentare

Hallo,

ich suche nach einer Möglichkeit, Worddateien zu öffnen, zu speichern und zu schließen, das alles im Hintergrund und in allen Unterverzeichnissen. Hintergrund ist das hier genannte Problem.

Hat da jemand was parat?

kristov
Mitglied: rubberman
15.04.2013, aktualisiert um 20:14 Uhr
Hallo kristov,

schmeiß das Script mal in den Ordner unter dem die Worddateien liegen und stelle sicher, dass keine der Dateien geöffnet ist.

*.vbs
01.
Option Explicit 
02.
 
03.
Dim oFSO, oWord, sErr 
04.
Set oFSO = CreateObject("Scripting.FileSystemObject") 
05.
Set oWord = CreateObject("Word.Application") 
06.
If Not IsObject(oWord) Then WScript.Quit 
07.
oWord.DisplayAlerts = 0 
08.
oWord.Visible = False 
09.
processDocs oFSO.GetParentFolderName(WScript.ScriptFullName) 
10.
oWord.Quit 
11.
Set oWord = Nothing 
12.
Set oFSO = Nothing 
13.
MsgBox "Fehlgeschlagene Dateien: " & vbNewLine & sErr, vbInformation Or vbSystemModal, "FERTIG" 
14.
 
15.
 
16.
Sub processDocs(sFolder) 
17.
  Dim oFolder, oSubfolder, oFile, oDoc 
18.
  Set oFolder = oFSO.GetFolder(sFolder) 
19.
  For Each oSubFolder In oFolder.SubFolders 
20.
    processDocs oSubFolder.Path 
21.
  Next 
22.
  Set oSubfolder = Nothing 
23.
  For Each oFile In oFolder.Files 
24.
    If InStr(1, oFSO.GetExtensionName(oFile.Name), "doc", vbTextCompare) = 1 Then 
25.
      On Error Resume Next 
26.
      Set oDoc = oWord.Documents.Open(oFile.Path) 
27.
      Err.Clear 
28.
      On Error Goto 0 
29.
      If IsObject(oDoc) Then 
30.
        oDoc.Save 
31.
        oDoc.Close 
32.
        Set oDoc = Nothing 
33.
      Else 
34.
        sErr = sErr & oFile.Path & vbNewLine 
35.
      End If 
36.
    End If 
37.
  Next 
38.
  Set oFile = Nothing 
39.
  Set oFolder = Nothing 
40.
End Sub
Das Script meldet sich, wenn es durch ist.

Grüße
rubberman
Bitte warten ..
Mitglied: kristov
16.04.2013 um 09:34 Uhr
Hallo rubberman,

funktioniert auf Anhieb! Vielen Dank!

kristov
Bitte warten ..
Mitglied: kristov
16.04.2013 um 11:16 Uhr
Hmm... eine Bitte noch:
Könnte man es so bewerkstelligen, das nicht alle Unterverzeichnisse durchsucht werden, sondern eine Textdatei mit den Pfaden als Inhalt (zB K:\v1\verzeichnis mit leerzeichen und Umlauten\2013\word.doc) als Basis hergenommen wird? Das wäre für mich doch praktikabler...
Bitte warten ..
Mitglied: rubberman
16.04.2013 um 18:24 Uhr
Hallo kristov,

ja, das ist auch nicht weiter kompliziert.
01.
Option Explicit 
02.
 
03.
Const sListFile = "list.txt" 
04.
 
05.
Dim oFSO, oListFile, oWord, oDoc, sDocPath, sErr 
06.
Set oFSO = CreateObject("Scripting.FileSystemObject") 
07.
If Not oFSO.FileExists(sListFile) Then 
08.
  MsgBox "Liste nicht gefunden.", vbCritical Or vbSystemModal, "FEHLER" 
09.
  WScript.Quit 
10.
End If 
11.
Set oListFile = oFSO.OpenTextFile(sListFile) 
12.
On Error Resume Next 
13.
Set oWord = CreateObject("Word.Application") 
14.
Err.Clear 
15.
On Error Goto 0 
16.
If Not IsObject(oWord) Then 
17.
  MsgBox "MS Word konnte nicht geöffnet werden.", vbCritical Or vbSystemModal, "ERROR" 
18.
  WScript.Quit 
19.
End If 
20.
oWord.DisplayAlerts = 0 
21.
oWord.Visible = False 
22.
 
23.
While Not oListFile.AtEndOfStream 
24.
  sDocPath = Trim(oListFile.ReadLine) 
25.
  If sDocPath <> "" Then 
26.
    If oFSO.FileExists(sDocPath) Then 
27.
      If InStr(1, oFSO.GetExtensionName(sDocPath), "doc", vbTextCompare) = 1 Then 
28.
        On Error Resume Next 
29.
        Set oDoc = oWord.Documents.Open(sDocPath) 
30.
        Err.Clear 
31.
        On Error Goto 0 
32.
        If IsObject(oDoc) Then 
33.
          oDoc.Save 
34.
          oDoc.Close 
35.
          Set oDoc = Nothing 
36.
        Else 
37.
          sErr = sErr & sDocPath & vbNewLine 
38.
        End If 
39.
      Else 
40.
        sErr = sErr & sDocPath & vbNewLine 
41.
      End If 
42.
    Else 
43.
      sErr = sErr & sDocPath & vbNewLine 
44.
    End If 
45.
  End If 
46.
Wend 
47.
oWord.Quit 
48.
oListFile.Close 
49.
Set oListFile = Nothing 
50.
Set oWord = Nothing 
51.
Set oFSO = Nothing 
52.
MsgBox "Fehlgeschlagene Dateien: " & vbNewLine & sErr, vbInformation Or vbSystemModal, "FERTIG"
sListFile musst du entsprechend anpassen. Aufpassen, dass immer absolute Pfade in der Liste stehen.

Grüße
rubberman
Bitte warten ..
Mitglied: kristov
18.04.2013 um 13:43 Uhr
ja, das ist auch nicht weiter kompliziert.

Das liegt wohl im Auge des Betrachters

Nochmals vielen Dank, auch diese Deine Variante funktioniert auf Anhieb problemlos!
Bitte warten ..
Mitglied: yenz85
16.08.2016 um 16:30 Uhr
Hi,

das Script hat mir schon weitergeholfen. Kann man auch eine Änderung in der Datei mit einbauen ? Es ist gaanz egal welche. Letztendlich geht es darum, das die Metafiles in der Datei nicht gespeichert werden (Reg hab ich angepasst und "manuell" funktioniert es auch). Dazu muss aber eine Änderung in der Datei erfolgen.

LG
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Word stürtzt beim schließen oder speichern ab (8)

Frage von BoomBasti zum Thema Microsoft Office ...

IDE & Editoren
USB STICK Datei AUTOMATISCH beim anschliessen auf fremden PC öffnen (9)

Frage von Jwanner83 zum Thema IDE & Editoren ...

Windows 7
Kopierte Dateien im Hintergrund anzeigen (1)

Frage von MichiBLNN zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...