Daten kopieren mit Auswahl
Hallo zusammen,
vielleicht kann mir von eich einer helfen.
Ich möchte gerne eine Datenwiederherstellung mittels einer Batch-Datei realisieren. Ich möchte gerne das das Backup Verzeichnis ausgelesen wir, und ich dann auswählen kann welche Datei ich in ein anderes Verzeichnis kopieren möchte.
Leider haben die Backupdateien nicht einen immer festen Namen, sondern werden bei jedem Autobackup die Datei in folgendem Format dargestellt "Dateiname_2009_05_13.txt". Also Dateiname mit angeängtem Datum.
Habe leider keinerlei Ahnung wie ich sowas realisieren kann. Hat evtl. jemand eine solche Datei? Oder kann mir mit Tipps und Rat weiterhelfen.
Vielen Dank schonmal.
Markus
vielleicht kann mir von eich einer helfen.
Ich möchte gerne eine Datenwiederherstellung mittels einer Batch-Datei realisieren. Ich möchte gerne das das Backup Verzeichnis ausgelesen wir, und ich dann auswählen kann welche Datei ich in ein anderes Verzeichnis kopieren möchte.
Leider haben die Backupdateien nicht einen immer festen Namen, sondern werden bei jedem Autobackup die Datei in folgendem Format dargestellt "Dateiname_2009_05_13.txt". Also Dateiname mit angeängtem Datum.
Habe leider keinerlei Ahnung wie ich sowas realisieren kann. Hat evtl. jemand eine solche Datei? Oder kann mir mit Tipps und Rat weiterhelfen.
Vielen Dank schonmal.
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116015
Url: https://administrator.de/forum/daten-kopieren-mit-auswahl-116015.html
Ausgedruckt am: 28.04.2025 um 19:04 Uhr
17 Kommentare
Neuester Kommentar

Servus und willkommen,
kannst du mal ein Beispiel der "Dateiname_2009_05_13.txt" senden?
bzw: was genau soll denn passieren?
Wäre ganz sicher mal ein Anfang....
edit - eine Sicherheitsabfrage kann nie schaden
/edit
Gruß
kannst du mal ein Beispiel der "Dateiname_2009_05_13.txt" senden?
bzw: was genau soll denn passieren?
:parameter
set /p "Jahr=Welches Jahr : "
set /p "Monat=Welcher Monat : "
set /p "Tag=Welcher Tag : "
If exist "Dateiname_%Jahr%_%Monat%_%Tag%.txt" goto start
echo Datei "Dateiname_%Jahr%_%Monat%_%Tag%" nicht gefunden && goto parameter
:start
Echo Backup von "Dateiname_%Jahr%_%Monat%_%Tag%"
Type "Dateiname_%Jahr%_%Monat%_%Tag%.txt"
pause
Wäre ganz sicher mal ein Anfang....
edit - eine Sicherheitsabfrage kann nie schaden
Gruß

Hallo Matsch79,
ich habe einen einfachen Auswahl-Mechanismus in Batch der auf nummerierten Dateien beruht.
Die Variable Select ist mit den Suchkriterien zu versehen
die sowohl für die nummerierte Ausgabe als auch für das anschließende Herausfiltern benutzt wird.
Wenn die Liste mehr als einen Bildschirm lang ist,
muss man sich die [Nummer] merken und Abbrechen mit Q oder weiterblättern mit Leertaste.
Eigentlich ein primitiver Mechanismus aber für viele Fälle ausreichend.
Gruß
LotPings
ich habe einen einfachen Auswahl-Mechanismus in Batch der auf nummerierten Dateien beruht.
:: Select.cmd :::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off&setlocal
Set Select=dir /B/S/A-D "D:\Test\*.cmd"
%Select% |find /V /N ""|more
::
set "Num="&Set "Auswahl="
set /P Num=Nummer zum Abspielen :
if not defined Num goto :eof
for /f "tokens=1,* delims=" %%A in (
'%Select% ^|find /V /N ""^|find "[%Num%]"'
) do set "Auswahl=%%B"
if not Defined Auswahl Echo Fehler keine Auswahl&Pause&Goto :Eof
Echo Es wurde Nummer %Num% ausgewählt: %Auswahl%
Pause
Die Variable Select ist mit den Suchkriterien zu versehen
die sowohl für die nummerierte Ausgabe als auch für das anschließende Herausfiltern benutzt wird.
Wenn die Liste mehr als einen Bildschirm lang ist,
muss man sich die [Nummer] merken und Abbrechen mit Q oder weiterblättern mit Leertaste.
Eigentlich ein primitiver Mechanismus aber für viele Fälle ausreichend.
Gruß
LotPings

Das ist ja im Vergleich eine komfortable Menustruktur,
mein obiger "quick and dirty"-Ansatz diente mir dazu, aus einem ganzen Verzeichnisbaum Video/MP3/was auch immer Dateien auch nach Namensbestandteilen à la (*Hot Chil*) zu finden und den Fundort nicht wieder zu Fuß abtippen zu müssen. Da mein CMD-Fenster meist 132*60 Zeichen groß ist, muss ich auch nicht viel blättern
Gruß
LotPings
Hallo Matsch79!
In Phlegmas letzter Fassung wird in Zeile 112 die gewählte Datei der Variablen %proggy% (der Name sagt mir nicht wirklich zu, aber ich bleibe in der Folge dabei) zugewiesen - ab da kannst Du sie demnach direkt ansprechen ...
Danach könnte es so weiter gehen:
wobei %Zielordner% und %Typ% natürlich vorweg festzulegen wären ...
Grüße
bastla
In Phlegmas letzter Fassung wird in Zeile 112 die gewählte Datei der Variablen %proggy% (der Name sagt mir nicht wirklich zu, aber ich bleibe in der Folge dabei) zugewiesen - ab da kannst Du sie demnach direkt ansprechen ...
Danach könnte es so weiter gehen:
::Datum abschneiden und Zielpfad erstellen
set "Dateipfad=%Zielordner%\%proggy:~,-15%.%Typ%"
::umbenannte Kopie am Zielort erstellen
copy "%proggy%" "%Dateipfad%"
::Schreibschutz entfernen
attrib -r "%Dateipfad%"
Grüße
bastla

Zitat von @Matsch79:
Leider geht das Fenster zu schnell zu, so das ich keine Chance habe die Fehlermeldung zu lesen.
Leider geht das Fenster zu schnell zu, so das ich keine Chance habe die Fehlermeldung zu lesen.
Dann starte den Batch entweder aus einem offenen CMD Fenster oder füge einen Pause Befehl ein.
Gruß
LotPings
Hallo Matsch79!
- beim direkten Eintrag sind die %-Zeichen überflüssig. In den Zeilen 116 und 118 soll dann nur mehr die in Zeile 114 erstellte Variable %Zielpfad% verwendet werden.
Ebenfalls am Anfang kannst Du zur Vereinfachung mit
oder, wenn Du den Pfad schon der Variablen %Backups% zugewiesen hast, eben mit
gleich in den richtigen Ordner wechseln (und am Ende, der Ordnung halber, per "
Füge die beiden "set"-Zeilen und das "pushd" ein und verwende den von mir geposteten Teil unverändert.
Grüße
bastla
114 set "C:\Test\Demo\=%Backups%\%proggy:~,-15%.%txt%
Mit %Zielordner% und %Typ% war gemeint, dass Du diese Werte vorweg in Variablen festlegen solltest (am Besten gleich am Anfang, wo man/frau sie leicht finden kann), zBset "Zielordner=C:\Test\Demo"
set "Typ=txt"
Ebenfalls am Anfang kannst Du zur Vereinfachung mit
pushd "Backuppfad"
pushd "%Backups%"
popd
" wieder zurückkehren) - daher:Füge die beiden "set"-Zeilen und das "pushd" ein und verwende den von mir geposteten Teil unverändert.
evtl muß ich den Copy befehl noch mit einem -y erweitern, das er die alte Datei dann auch überschreibt.
Mit "-y" würdest Du das Überschreiben verhindern; in einem Batch überschreiben "copy" und "move" per Default.Grüße
bastla

Bei manchen HTML Editoren zeigt der farblich an, wenn ein syntax Fehler drin ist. Bibts da für Batch Dateien auch so einen Editor. Ich denke mal das das gerade für Anfänger einfacher wäre.
Schau dir mal Notepad++ an, hat Syntax Highlighting und kann sehr schön zusammengehörige Klammern, Anführungszeichen etc markieren.
Jetzt noch mal so als hoffendlich letzte "nervende" Frage.
Wie kann ich die Pfadangaben so gestalten, das die Batchdatei erst ausliest, in welchem Verzeichnis die liegt. Ich frage deswegen, weil ich wohl die Anwendung auf einem USB Stick oder einer mobielen Festplatte laufen lassen möchte, und je nachdem wenn dann z.B. ein anderer Laufwerksbuchstaben zugewiesen wird, stimmen ja die eingetragenen Pfade nicht mehr.
Wie kann ich die Pfadangaben so gestalten, das die Batchdatei erst ausliest, in welchem Verzeichnis die liegt. Ich frage deswegen, weil ich wohl die Anwendung auf einem USB Stick oder einer mobielen Festplatte laufen lassen möchte, und je nachdem wenn dann z.B. ein anderer Laufwerksbuchstaben zugewiesen wird, stimmen ja die eingetragenen Pfade nicht mehr.
Die Batch kennt Ihren eigenen Standort mit "%~dp0"
Gruß
LotPings