Auflistung Verzeichnis in Auswahlmenü
Hallo,
ich habe mir ein Backupbatch erstellt, die mir jeden Tag eine Sicherung mit Sicherung_%DATUM%.zip erzeugt.
Nun hätte ich gerne eine Wiederstellungsbatch, die mir mit
dir /a:-d /b
die Sicherungen in einem Auswahlmenü auflistet und ich aus der Liste die passenden Nummer eingebe.
Der ausgewählte Dateiname sollte dann in einer Variable stehen, damit ich mit 7z.exe und dem Variablenamen entpacken kann.
Meine Backupbatch ist in der normalen CMD-Konsole erstellt, also kein Powershell-Script.
---
supertux
ich habe mir ein Backupbatch erstellt, die mir jeden Tag eine Sicherung mit Sicherung_%DATUM%.zip erzeugt.
Nun hätte ich gerne eine Wiederstellungsbatch, die mir mit
dir /a:-d /b
die Sicherungen in einem Auswahlmenü auflistet und ich aus der Liste die passenden Nummer eingebe.
Der ausgewählte Dateiname sollte dann in einer Variable stehen, damit ich mit 7z.exe und dem Variablenamen entpacken kann.
Meine Backupbatch ist in der normalen CMD-Konsole erstellt, also kein Powershell-Script.
---
supertux
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 665345
Url: https://administrator.de/contentid/665345
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
11 Kommentare
Neuester Kommentar
Wo ist Dein Batchcode?
Und wenn Du ihn postest, dann setze diesen in Codetags.
Dazu gibt es links neben dem Editorfenster die Auswahl "Codeblock" (2. Symbol von unten) hinzufügen.
das steht auch in der Hilfe.
Und das
liest sich viel besser.
Gruss Penny.
Und wenn Du ihn postest, dann setze diesen in Codetags.
Dazu gibt es links neben dem Editorfenster die Auswahl "Codeblock" (2. Symbol von unten) hinzufügen.
das steht auch in der Hilfe.
Und das
dir /a:-d /b
Gruss Penny.
Japp. Zusammen mit den vorhandenen Optionen, versteht sich.
@supertux Wenn du Batch noch nicht soweit verstanden hast, um solche Kleinigkeiten selbst hinzubekommen, dann fang um Himmels Willen in der heutigen Zeit nicht mehr an, mit dieser archaischen Sprache herum zu spielen. Es gibt keine eingeschränktere, schwierigere und auch keine die noch mehr Bugs hat.
Steffen
@supertux Wenn du Batch noch nicht soweit verstanden hast, um solche Kleinigkeiten selbst hinzubekommen, dann fang um Himmels Willen in der heutigen Zeit nicht mehr an, mit dieser archaischen Sprache herum zu spielen. Es gibt keine eingeschränktere, schwierigere und auch keine die noch mehr Bugs hat.
Steffen
Moin,
Wenn du das alles mit der Powershell versuchst umzusetzen und dann etwas geübt bist, kannst du das später um eine GUI erweitern.
Damit kannst du dir dann die gefundenen "BackupFiles" in einer DropDown-Liste anzeigen lassen und dann weiter machen.
Nicht dass es erforderlich ist - erhöht letzten Endes nur den Comfort...
Zitat von @rubberman:
Japp. Zusammen mit den vorhandenen Optionen, versteht sich.
@supertux Wenn du Batch noch nicht soweit verstanden hast, um solche Kleinigkeiten selbst hinzubekommen, dann fang um Himmels Willen in der heutigen Zeit nicht mehr an, mit dieser archaischen Sprache herum zu spielen. Es gibt keine eingeschränktere, schwierigere und auch keine die noch mehr Bugs hat.
FullACK.Japp. Zusammen mit den vorhandenen Optionen, versteht sich.
@supertux Wenn du Batch noch nicht soweit verstanden hast, um solche Kleinigkeiten selbst hinzubekommen, dann fang um Himmels Willen in der heutigen Zeit nicht mehr an, mit dieser archaischen Sprache herum zu spielen. Es gibt keine eingeschränktere, schwierigere und auch keine die noch mehr Bugs hat.
Wenn du das alles mit der Powershell versuchst umzusetzen und dann etwas geübt bist, kannst du das später um eine GUI erweitern.
Damit kannst du dir dann die gefundenen "BackupFiles" in einer DropDown-Liste anzeigen lassen und dann weiter machen.
Nicht dass es erforderlich ist - erhöht letzten Endes nur den Comfort...
Die Batch lässt sich ja problemlos mit einem entsprechenden Auswahldialog ergänzen wenn es sein muss ...
@echo off
for /f %%a in ('powershell -EP Bypass -C "Add-Type -A System.Windows.Forms;$dlg=New-Object System.Windows.Forms.OpenFileDialog;$dlg.InitialDirectory = 'C:\';$dlg.Filter = 'Zip-Dateien | *.zip';if($dlg.ShowDialog() -eq 'OK'){return $dlg.FileNames}else{return $false}"') do @echo %%a
Du kannst mit solchen PowerShell Aufrufen jede Menge an fehlender Funktionalität von Batch ausbügeln. Aber in punkto Performance verschlimmbesserst du das ganze nur noch. Bei jedem neuen Aufruf der PowerShell werden die ganzen Assemblies geladen, was schon lang genug dauert. Wenn du dann noch mit einem Add-Type und womöglich Plattform Invocation ran gehst, wird's noch verrückter, da dann C# Code in dein Temp Verzeichnis geschrieben, dieser zu einer DLL kompiliert und anschließend verwendet und wieder gelöscht wird. Ich kann nur dazu raten, gleich bei PowerShell zu bleiben, dann hast du nur einmal das Overhead...
Steffen
Steffen
gleich bei PowerShell zu bleiben
Klar war ja auch nur eine weitere Möglichkeit wenn der TO aus welchen Gründen auch immer in der alten Batch-Höhle verweilen will/muss ...