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
11 Antworten
- LÖSUNG H41mSh1C0R schreibt am 02.04.2021 um 11:53:48 Uhr
- LÖSUNG supertux schreibt am 02.04.2021 um 17:29:32 Uhr
- LÖSUNG GarfieldBonn schreibt am 02.04.2021 um 18:59:53 Uhr
- LÖSUNG rubberman schreibt am 02.04.2021 um 21:22:03 Uhr
- LÖSUNG em-pie schreibt am 03.04.2021 um 10:36:11 Uhr
- LÖSUNG rubberman schreibt am 02.04.2021 um 21:22:03 Uhr
- LÖSUNG GarfieldBonn schreibt am 02.04.2021 um 18:59:53 Uhr
- LÖSUNG supertux schreibt am 02.04.2021 um 17:29:32 Uhr
- LÖSUNG rubberman schreibt am 02.04.2021 um 12:42:40 Uhr
- LÖSUNG supertux schreibt am 02.04.2021 um 17:28:52 Uhr
- LÖSUNG warranty schreibt am 07.04.2021 um 15:05:16 Uhr
- LÖSUNG rubberman schreibt am 07.04.2021 um 17:48:37 Uhr
- LÖSUNG warranty schreibt am 07.04.2021 um 17:55:11 Uhr
- LÖSUNG rubberman schreibt am 07.04.2021 um 17:48:37 Uhr
- LÖSUNG warranty schreibt am 07.04.2021 um 15:05:16 Uhr
- LÖSUNG supertux schreibt am 02.04.2021 um 17:28:52 Uhr
- LÖSUNG Penny.Cilin schreibt am 02.04.2021 um 12:45:04 Uhr
LÖSUNG 02.04.2021 um 11:53 Uhr
Was hast du denn schon geschrieben?
VG
VG
LÖSUNG 02.04.2021 um 12:42 Uhr
@echo off &setlocal
for /f "tokens=1* delims=[]" %%i in ('dir /a-d /b^|find /n /v ""') do (
echo %%i "%%~j"
set "file%%i=%%~j"
)
echo(
set /p "n=Nummer: "
setlocal EnableDelayedExpansion
echo "!file%n%!"
pause
LÖSUNG 02.04.2021 um 12:45 Uhr
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.
LÖSUNG 02.04.2021 um 17:28 Uhr
Hallo Steffen,
vielen Dank.
Der Code funktioniert nur sollte er mir nicht alle Dateien sondern nur ZIP auflisten.
Habe schon versucht, zu ändern, dann werden zwar alle .ZIP Dateien aufgelistet, aber die Aufzählung passt nicht mehr.
Kann man das auch noch zu einem Loop bringen, damit man nur die aufgelistete Auswählen kann? und evtl. eine 0 für Exit?
supertux
vielen Dank.
Der Code funktioniert nur sollte er mir nicht alle Dateien sondern nur ZIP auflisten.
Habe schon versucht, zu ändern, dann werden zwar alle .ZIP Dateien aufgelistet, aber die Aufzählung passt nicht mehr.
Kann man das auch noch zu einem Loop bringen, damit man nur die aufgelistete Auswählen kann? und evtl. eine 0 für Exit?
supertux
LÖSUNG 02.04.2021, aktualisiert um 17:30 Uhr
Hallo,
da der Code aus einem anderen Forum stammt, wusste ich nicht ob ich den einfach hier posten darf.
supertux
da der Code aus einem anderen Forum stammt, wusste ich nicht ob ich den einfach hier posten darf.
supertux
LÖSUNG 02.04.2021 um 18:59 Uhr
Hi,
ersetzen durch
sollte funktionieren,
gruss
kh
'dir
'dir *.zip
gruss
kh
LÖSUNG 02.04.2021 um 21:22 Uhr
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
LÖSUNG 03.04.2021 um 10:36 Uhr
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...
LÖSUNG 07.04.2021, aktualisiert um 15:07 Uhr
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
LÖSUNG 07.04.2021 um 17:48 Uhr
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
LÖSUNG 07.04.2021, aktualisiert um 18:00 Uhr
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 ...