Top-Themen

Aktuelle Themen (A bis Z)

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 Batch - Dateinamen mit Zahl (nummeriert) anzeigen, um die Datei nachher über diese Zahl auszuwählen

Mitglied: Reisszahn2009

Reisszahn2009 (Level 1) - Jetzt verbinden

12.02.2010 um 19:45 Uhr, 5168 Aufrufe, 2 Kommentare

Hi zusammen,
ich möchte für ein kleines Script eine Backupdatei zurückspielen, indem man nicht den Namen angibt sondern die Nummer.

Die Anzeige einer Zahl vor dem Backup habe ich bereits geschafft. Ich schaffe es aber nicht aus der Zahl einen Rückschluss auf den Dateinamen zu machen.
Habt ihr vielleicht Ideen?

Hier der Core für den "Zahlenanzeige":
01.
pushd "C:\Backup\"
02.
set /a counter=10000
03.
for /f "delims=" %%i in ('dir /b /O-D C:\Backup\Backup-*.zip') do call :ProcessDir "%%i"
04.
popd
05.
goto :chooseFile
06.

07.
:ProcessDir
08.
set /a counter+=1
09.
echo %counter:~-4% %1
10.
goto :eof
11.

12.

13.
:chooseFile
14.
echo.
15.
echo Waehlen Sie ein Backup-Archiv aus:
16.
set/a filenumber= >nul
17.

18.
..
19.
..
20.
..

Die bisherige Ausgabe:

Ermittelte Backups

0001 "Backup-05.02.2010-09.20.03-c1.2.147-p1.1.5.zip"
0002 "Backup-05.02.2010-09.15.05-c1.2.147-p1.1.5.zip"
0003 "Backup-05.02.2010-09.10.18-c1.2.147-p1.1.5.zip"
0004 "Backup-05.02.2010-08.57.18-c1.2.147-p1.1.5.zip"
0005 "Backup-05.02.2010-08.56.13-c1.2.147-p1.1.5.zip"
0006 "Backup-05.02.2010-08.54.53-c1.2.147-p1.1.5.zip"
0007 "Backup-05.02.2010-08.54.06-c1.2.147-p1.1.5.zip"

Waehlen Sie ein Backup-Archiv aus:


Der Rest will mir bisher nicht gelingen.
Vielen Dank für eure Vorschläge!

Gruß Reisszahn
Mitglied: bastla
12.02.2010 um 21:12 Uhr
Hallo Reisszahn!

Da Du ja durch das sortierte "dir" eine definierte Reihenfolge erhältst, kannst Du schematisch etwa so vorgehen:
01.
:chooseFile
02.
echo.
03.
set "filenumber="
04.
set /p filenumber=Waehlen Sie ein Backup-Archiv aus (Q fuer Abbruch): 
05.
if not defined filenumber echo Ungueltige Wahl! & goto :chooseFile
06.
if /i "%filenumber:~,1%"=="q" popd & goto :eof
07.
set /a number=filenumber
08.
if %number% leq 0 echo Ungueltige Wahl! & goto :chooseFile
09.
if %number% gtr %MaxNumber% echo Ungueltige Wahl! & goto :chooseFile
10.

11.
set "Filename="
12.
set /a number-=1
13.
for /f "delims=" %%i in ('dir /b /O-D Backup-*.zip^|more +%number%') do if not defined Filename set "Filename=%%i"
14.
if not defined Filename echo Fehler! & popd & goto :eof
15.
echo Gewaehlt: %Filename%
Anmerkungen:
Wenn Du ja per "pushd" bereits im richtigen Ordner bist, brauchst Du diesen im "dir"-Befehl nicht nochmals anzugeben (ansonsten verwende zumindest eine Variable dafür); mit einem "dir /s /b" erhältst Du übrigens einen vollständigen Pfad ("Backup-*.zip"-Dateien in Unterordnern würden dann zwar auch berücksichtigt, aber die wird es ja vermutlich ohnehin nicht geben ...).

Mit dem "popd" könntest Du bis zum Ende der ganzen Aktion warten (habe ich bei der "for"-Schleife in Zeile 13 unterstellt).

Den "Umweg" über "more +n" habe ich gewählt, weil ein "skip=0" nicht klappt ...
Eine Alternative wäre die Verwendung eines "Pseudoarrays" aus Variablen mit den Namen %Datei0001%, %Datei0002%, etc für die einzelnen Dateien.

Grüße
bastla

[Edit] Vergleich von "==0" auf "leq 0" geändert - sicher ist sicher [/Edit]
Bitte warten ..
Mitglied: Reisszahn2009
13.02.2010 um 09:24 Uhr
Hi,
vielen Dank für die super antwort!
Darum zur Vollständigkeit hier der komplette Auszug:

01.
:getBackupFileFromUser
02.
echo.
03.
echo - - - - - - - - - - - - - - - - - - - - - - - - - 
04.
echo Ermittelte Backups (Dateiname Backup-*.zip)
05.
echo.
06.
pushd "%recoverdir:~1,-1%"
07.
set /a filecounter=0
08.
for /f "delims=" %%i in ('dir /b /O-D "%recoverdir:~1,-1%\Backup-*.zip"') do call :makeFileList "%%i"
09.
popd
10.
goto :chooseFileFromList
11.

12.
:makeFileList
13.
set /a filecounter+=1
14.
if %filecounter% LSS 10 (
15.
	echo     %filecounter% - %1
16.
) else (
17.
	echo    %filecounter% - %1
18.
)	
19.
goto :eof
20.

21.
:chooseFileFromList
22.

23.
echo.
24.
set "filenumber="
25.
echo Waehlen Sie ein Backup-Archiv anhand der Nummer aus (Q fuer Abbruch): 
26.
set /p filenumber= >NUL
27.
if not defined filenumber echo Ungueltige Wahl! & goto :chooseFileFromList
28.
if /i "%filenumber:~,1%"=="q" popd & goto :eof
29.
set /a number=filenumber
30.
if %number% LEQ 0 echo Ungueltige Wahl! & goto :chooseFileFromList
31.
if %number% GTR %filecounter% echo Ungueltige Wahl! & goto :chooseFileFromList
32.

33.
set "filename="
34.
set /a number-=1
35.
for /f "delims=" %%i in ('dir /b /O-D "%recoverdir:~1,-1%\Backup-*.zip"^|more +%number%') do if not defined filename set "filename=%%i"
36.
if not defined filename echo Fehler! & popd & goto :eof
37.
echo.
38.
echo Gewaehlt: %filename%
39.
echo.
40.
set filename="%recoverdir:~1,-1%\%filename%"
Danke und Gruß Reisszahn!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Per Batch Datei die Zahl jede Zell in einer Spalte um 10 verkleinern

gelöst Frage von ha5257Batch & Shell12 Kommentare

Guten Morgen, ich importiere jeden Tag automatisch eine Lagerbestandsliste(csv Datei) von meinem Lieferant mit einem Batch Datei. Die Batch ...

Batch & Shell

Batch: eine Zahl eingeben und als echo ausgeben

gelöst Frage von Vit1985Batch & Shell2 Kommentare

Hallo, ich möchte mithilfe von einem Batch im DOS Fenster eine Zahl (z.B. 350) eintippen können und diese Zahl ...

Batch & Shell

BATCH ini Datei Datei auslesen

gelöst Frage von Juergen42Batch & Shell2 Kommentare

Hallo zusammen, ich möchte eine ini Datei auslesen mit folgenden Aufbau INHALT DER INI ID=30 NAME="test1" PFAD="K:\Kontoauszug\Test1\*.pdf" PFAD_S="K:\Kontoauszug\Test1\Sicherung\" ID=28 ...

Batch & Shell

Mit Batch in Bestimmter Zeilennummer Wert zu Zahl addieren

gelöst Frage von SeppaeBatch & Shell23 Kommentare

Hallo alle miteinander! Ich habe folgende Aufgabenstellung bekommen und komme momentan einfach nicht weiter: Ich soll in einer .txt ...

Neue Wissensbeiträge
Hyper-V
Setup VM W2016 startet nicht in Hyper-V 2016
Erfahrungsbericht von keine-ahnung vor 4 StundenHyper-V4 Kommentare

Moin, sitze gerade über meinem neuen Server und versuche, die VM auf den Host zu prügeln. Jetzt wollte ich ...

Zusammenarbeit

Verfügbar - Samsung PCoIP Zero Client NB-NH (40 Stück)

Tipp von loop.12 vor 6 StundenZusammenarbeit1 Kommentar

Wenn jemand braucht, ich habe 40 Stück: - Samsung PCoIP Zero Client NB-NH - PCoIP Client - - Preis ...

Server-Hardware

HPE Proliant ML350P Gen8 Probleme mit Zugriff auf Raid-Volumes

Erfahrungsbericht von goscho vor 10 StundenServer-Hardware1 Kommentar

Hallo Leute, das Problemgerät: HPE ML350P G8 Windows Server 2012R2 HyperV-Host 8 x 300 GB 10K SAS HDD (1 ...

Humor (lol)

"Linux und 5 Gründe Warum man kein Windows verwenden sollte sondern Ubuntu Linux"

Tipp von Snowbird vor 2 TagenHumor (lol)8 Kommentare

Gerade gefunden. Ja, ist etwas älter, aber irgendwie lustig?

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Windows Server über Außen-IP nicht ansprechbar
Frage von uups81Netzwerkgrundlagen22 Kommentare

Hallo! Es gibt mehrere Windows Server (2016, 2019), die über einen zweiten Netzwerkadapter in einem lokalen Netzwerk miteinander verbunden ...

Microsoft
Windows 10 - Kombination von lokalen Benutzerkonten und Benutzern aus einer Domäne
Frage von PappnaseVxVVMicrosoft21 Kommentare

Hi, würde gerne folgendes realisieren, von dem ich gern wüsste, ob es geht. Ich habe einen Raum mit 3 ...

Batch & Shell
Powershell - Webseite auslesen und Abspeichern ein paar Probleme
gelöst Frage von kime203Batch & Shell18 Kommentare

Hallo alle miteinander, ich hab die Aufgabe eine Webseite auszulesen um Einsatzdaten der Feuerwehr daraus zu gewinnen. Das habe ...

Windows 10
Windows 10 druckt nicht mehrere Kopien?
Frage von StefanKittelWindows 1016 Kommentare

Hallo, ich hatte gerade einen Anruf eines Kunden. Sein neuer PC (Win 10 1903) druckt nicht mehr mehrere Seiten ...