OliverFuchs66
Newbie
- Registriert
- Sep. 2022
- Beiträge
- 2
Hallo,
Ich arbeite in dem kleinen Verein meiner Mutter. Sie ist leider am Computer nicht so gut und löscht sich oft alle Daten. Daher wollte ich die Autosavefunktion von Word aktivieren. Aber ab Word 365 benötigt man OneDirve dazu was mir unsympatisch ist. Jetzt habe ich es aber geschafft, dass Word in einem von mir erstellten Verzeichnis WordAutosave jedes bearbeitet Dokument dass länger als 1 Minute nicht gesichert wurde im .asd Format speichert. Wird das Originalfile geschpeichert wird die .asd wieder gelöscht. In diesem Verzeichnis habe ich das Unterverzeichnis ARCHIV angelegt.
Ich würde jetzt gerene einen Bach schreiben, welcher alle 1 Minuten alle die im WordAutoSave Verzeichnis gerad offenend .asd Datein in das Verzeichnis ARCHIV Kopiert. Die Erweiterung im Namen 'AutoWiederherstellen-Speicherung von' die dem Dateinamen vorangestellt wird würde ich gerne löschen, dafür wurde ich gerene die Erweiterung ArchivDatum anhängen.
Ich bin so weit gekommen.
:begin
Batch Körper
timeout /t 60
:goto begin
Mit dieser Schleife würde das Batch dauernd laufen und alle 60 Sekunden exekutiert werden.
Dann habe ich die Zeile
for /f "delims=X" %%a in ('dir /B *.docx') do ......
Damit wird das Direktory durchgegangen, Eintrag für Eintrag.
Der Eintrag ist in der Variablen a gespeichert.
Nun gibt es die möglichkeiten einen Stirng zu bearbeiten.
Wäre ich in der Komandozweile so würde
set a=%a:~1,36$
Dein vorderen Text abscheiden.
Das habe ich in der CMD-Umgebung am Prompt versucht. Da geht das mit der Stringoperation. Was ich weiß ist, dass man in der Kommandozeile die Variable a mit %a% dereferenzieren muss.
Verwendet man diese aber im Bach so muss man %%a%% verwenden.
Warum beim Befehl if aber nur %%a in ('... funktioniert, und es funktioniert, ist mir nicht klar.
Ausserdem war es mir nicht möglich die Ausschneidefunktion für den String im Bacht zum laufen zu bringen.
Möglichwerweise mache ich da etwas falsch. Ich kenne mich mit Batch Programmierung nicht so aus.
Danke
lg Oliver
Ich arbeite in dem kleinen Verein meiner Mutter. Sie ist leider am Computer nicht so gut und löscht sich oft alle Daten. Daher wollte ich die Autosavefunktion von Word aktivieren. Aber ab Word 365 benötigt man OneDirve dazu was mir unsympatisch ist. Jetzt habe ich es aber geschafft, dass Word in einem von mir erstellten Verzeichnis WordAutosave jedes bearbeitet Dokument dass länger als 1 Minute nicht gesichert wurde im .asd Format speichert. Wird das Originalfile geschpeichert wird die .asd wieder gelöscht. In diesem Verzeichnis habe ich das Unterverzeichnis ARCHIV angelegt.
Ich würde jetzt gerene einen Bach schreiben, welcher alle 1 Minuten alle die im WordAutoSave Verzeichnis gerad offenend .asd Datein in das Verzeichnis ARCHIV Kopiert. Die Erweiterung im Namen 'AutoWiederherstellen-Speicherung von' die dem Dateinamen vorangestellt wird würde ich gerne löschen, dafür wurde ich gerene die Erweiterung ArchivDatum anhängen.
Ich bin so weit gekommen.
:begin
Batch Körper
timeout /t 60
:goto begin
Mit dieser Schleife würde das Batch dauernd laufen und alle 60 Sekunden exekutiert werden.
Dann habe ich die Zeile
for /f "delims=X" %%a in ('dir /B *.docx') do ......
Damit wird das Direktory durchgegangen, Eintrag für Eintrag.
Der Eintrag ist in der Variablen a gespeichert.
Nun gibt es die möglichkeiten einen Stirng zu bearbeiten.
Wäre ich in der Komandozweile so würde
set a=%a:~1,36$
Dein vorderen Text abscheiden.
Das habe ich in der CMD-Umgebung am Prompt versucht. Da geht das mit der Stringoperation. Was ich weiß ist, dass man in der Kommandozeile die Variable a mit %a% dereferenzieren muss.
Verwendet man diese aber im Bach so muss man %%a%% verwenden.
Warum beim Befehl if aber nur %%a in ('... funktioniert, und es funktioniert, ist mir nicht klar.
Ausserdem war es mir nicht möglich die Ausschneidefunktion für den String im Bacht zum laufen zu bringen.
Möglichwerweise mache ich da etwas falsch. Ich kenne mich mit Batch Programmierung nicht so aus.
Danke
lg Oliver