Ordnerinhalt auflisten und Ordner auswählen
Hallo ihr,
hoffentlich könnt ihr mir weiterhelfen. Bin schon nah am Verzweifeln
Ich möchte... nein ich muss ... eine Batch schreiben, die mir in den Inhalt von einem Ordner auf der Partition F (nennen wir ihn einfach mal F:\Daten)
in der Console anzeigt (also quasi ein DIR /b) und mich dann im zweiten Schritt fragt welchen dieser Ordner ich kopieren möchte.
Vorteilhaft wäre es wenn allen vorhandenen Ordnern im Ordner F:\Daten bei der Ausgabe in der Console eine Nummer zugeordnet werden könnte.
So dass ich nachher bei der Auswahl der Ordner nur noch 1,2,3 .. oder was auch immer eingeben muss.
Beispiel (so wie es angezeigt werden soll):
CMD.exe-------------------------------------------------
Inhalt des Ordners F:\Daten
(1) Programmierung
(2) Backup
(3 )Beispiel
(4)Temp
(5) IrgendeinOrdner
Welcher dieser Ordner soll nach E:\Testordner wiederhergestellt werden?
(1,2,3,...)
Habt ihr eine Idee?
in der Console anzeigt (also quasi ein DIR /b) und mich dann im zweiten Schritt fragt welchen dieser Ordner ich kopieren möchte.
Vorteilhaft wäre es wenn allen vorhandenen Ordnern im Ordner F:\Daten bei der Ausgabe in der Console eine Nummer zugeordnet werden könnte.
So dass ich nachher bei der Auswahl der Ordner nur noch 1,2,3 .. oder was auch immer eingeben muss.
Beispiel (so wie es angezeigt werden soll):
CMD.exe-------------------------------------------------
Inhalt des Ordners F:\Daten
(1) Programmierung
(2) Backup
(3 )Beispiel
(4)Temp
(5) IrgendeinOrdner
Welcher dieser Ordner soll nach E:\Testordner wiederhergestellt werden?
(1,2,3,...)
Habt ihr eine Idee?
Please also mark the comments that contributed to the solution of the article
Content-Key: 173317
Url: https://administrator.de/contentid/173317
Printed on: April 18, 2024 at 12:04 o'clock
10 Comments
Latest comment
Aloha,
abgesehen davon, dass solche Tüten hier schon vorgekommen sind ...
schreibe ich dir dennoch meine Idee:
Dann noch ein wenig erweitern und rumspielen mit
greetz André
edit: P.S: Beispielthread
abgesehen davon, dass solche Tüten hier schon vorgekommen sind ...
schreibe ich dir dennoch meine Idee:
for /f "tokens=1,* delims=:" %%s in ('dir /b F:\Daten /ad ^|findstr /n "^"') do echo (%%s) %%t
Dann noch ein wenig erweitern und rumspielen mit
set /p
und eventuell if
oder doch die Suchfunktion bemühen und fertig ist der Chefsalat. achja, die wichtigen echo
s nicht vergessengreetz André
edit: P.S: Beispielthread
wegen Desinteresse gelöscht
Hallo Replica!
Na dann schau mal, was passiert, wenn Du Skyes Vorschlag in einer späteren Zeile etwas erweiterst:
<code typ3="plain">for /f "tokens=1,* delims=:" %%s in ('dir /b F:\Daten /ad ^|findstr /n "^"^|findstr /b "%Nr%:"') do echo (%%s) %%t
Wie Du zwischenzeitlich zu einem Inhalt für die Variable %Nr% kommst, findest Du sicher selber raus ...
Grüße
bastla
Na dann schau mal, was passiert, wenn Du Skyes Vorschlag in einer späteren Zeile etwas erweiterst:
<code typ3="plain">for /f "tokens=1,* delims=:" %%s in ('dir /b F:\Daten /ad ^|findstr /n "^"^|findstr /b "%Nr%:"') do echo (%%s) %%t
Wie Du zwischenzeitlich zu einem Inhalt für die Variable %Nr% kommst, findest Du sicher selber raus ...
Grüße
bastla
Hallo Replica!
Die (zweite) "
oder gleich so
schreiben (sogar, wenn Du sicher bist, dass es keine Ordnernamen mit Leerzeichen gibt) ...
Wenn Du davor übrigens noch ein
einbaust, kannst Du danach mit zB
noch sicher stellen, dass auch tatsächlich eine Auswahl getroffen wurde ...
Grüße
bastla
P.S.: Findest Du nicht auch, dass Code mit der passenden (lässt sich auch problemlos nachträglich durchführen ) besser aussieht?
Die (zweite) "
for
"-Zeile würde ich sofor /f "tokens=1,* delims=:" %%s in ('dir /b "%Quelle%" /ad ^|findstr /n "^"^|findstr /b "%Auswahl%:"') do set "ordner=%%t"
for /f "tokens=1,* delims=:" %%s in ('dir /b "%Quelle%" /ad ^|findstr /n "^"^|findstr /b "%Auswahl%:"') do set "ordner=%Quelle%\%%t"
Wenn Du davor übrigens noch ein
set "Ordner="
if not defined Ordner echo Kein Ordner gewaehlt! & goto :eof
Grüße
bastla
P.S.: Findest Du nicht auch, dass Code mit der passenden (lässt sich auch problemlos nachträglich durchführen ) besser aussieht?
Hallo Leute,
die erste Zeile
for /f "tokens=1,* delims=:" %%s in ('dir /b %Quelle% /ad ^|findstr /n "^"') do echo (%%s) %%t
funktioniert, sie Listet mir wie gewünscht den Inahlt eines Ordners auf und nummeriert ihn.
Jedoch passiert bei der zweiten Zeile
for /f "tokens=1,* delims=:" %%s in ('dir /b "%Quelle%" /ad ^|findstr /n "^"^|findstr /b "%Auswahl%:"') do set "ordner=%%t"
gar nichts. Ich schaffe es nicht, den Pfad des gewählten Ordners als Variable setzen.
Auch wenn ich am Ende noch ein
set "ordner="
setze, wird mir die Variable "ordner" nicht angezeigt.
Vorweg noch, ich bin ein Neuling. Wäre schön wenn ihr mir weiterhelfen könntet.
die erste Zeile
for /f "tokens=1,* delims=:" %%s in ('dir /b %Quelle% /ad ^|findstr /n "^"') do echo (%%s) %%t
funktioniert, sie Listet mir wie gewünscht den Inahlt eines Ordners auf und nummeriert ihn.
Jedoch passiert bei der zweiten Zeile
for /f "tokens=1,* delims=:" %%s in ('dir /b "%Quelle%" /ad ^|findstr /n "^"^|findstr /b "%Auswahl%:"') do set "ordner=%%t"
gar nichts. Ich schaffe es nicht, den Pfad des gewählten Ordners als Variable setzen.
Auch wenn ich am Ende noch ein
set "ordner="
setze, wird mir die Variable "ordner" nicht angezeigt.
Vorweg noch, ich bin ein Neuling. Wäre schön wenn ihr mir weiterhelfen könntet.
Hallo Heimdal1311 und willkommen im Forum!
Schön, dass Du dieesn Beitrag gefunden hast - noch schöner wäre es, wenn Du auch den Weg zur (übrigens gleich oberhalb verlinkten) Formatierungsmöglichkeit für Quellcode entdeckt hättest ...
Bei mir funktioniert übrigens
problemlos.
Grüße
bastla
Schön, dass Du dieesn Beitrag gefunden hast - noch schöner wäre es, wenn Du auch den Weg zur (übrigens gleich oberhalb verlinkten) Formatierungsmöglichkeit für Quellcode entdeckt hättest ...
Bei mir funktioniert übrigens
@echo off & setlocal
::Quellpfad mit \ am Ende
set "Quelle=D:\Test\"
set "Ordner="
for /f "tokens=1,* delims=:" %%s in ('dir /b "%Quelle%" /ad ^|findstr /n "^"') do echo (%%s) %%t
echo.
set /p "Auswahl=Bitte geben Sie die Zahl des gewuenschten Ordners ein: "
for /f "tokens=1,* delims=:" %%s in ('dir /b "%Quelle%" /ad ^|findstr /n "^"^|findstr /b "%Auswahl%:"') do set "Ordner=%Quelle%%%t"
if not defined Ordner echo Kein Ordner gewaehlt! & goto :eof
echo Gewaehlt: %Ordner%
Grüße
bastla