2016-05-20 16 views
0

Ich versuche, einen Befehl zu schreiben, der vom Speicherort des Programms ausgeführt wird. Das Programm fordert den Benutzer auf, einen Ordner einzugeben, nach dem gesucht werden soll. Wenn der Ordner gefunden wird, benötige ich eine Liste von Verzeichnissen zu seinen Unterordnern. Unten ist mein Code so weit:Batch-Datei zum Auflisten aller Unterordnerpfade

ECHO OFF 
ECHO Enter name for your target search folder 
SET /P searchf=[Please type desired search forder] 
for /d %%a in ("%searchf%".) do dir /ad /on /s /b "%%a" >> %searchf%.txt 
GOTO End 
:End 

den Zielordner aufgerufen wird „test“ Unter der Annahme, möchte ich so ein Ergebnis haben:

C:\Users\IT\test\pany\all 
C:\Users\IT\test\ondy\part\clear 
C:\Users\IT\pany\test\check\apps 
C:\Users\IT\pand\all\check\test 

meinen Code Bisher gibt dir bis wo die " Test "wurde gefunden.

+1

Lesen Sie http://ss64.com/nt/for_d.html und http://ss64.com/nt/syntax-wildcards.html – JosefZ

+1

Haben Sie eine Frage? – aschipfl

+0

Ja, ich habe es immer noch nicht gelöst. Der Code listet nun Dateipfade auf, ich brauche nur den Ordner- und Unterordnerpfad. Kann mir bitte jemand helfen? – Jay

Antwort

1

Wie JosefZ wies darauf hin, werden Wildcards helfen:

ECHO OFF 
ECHO Enter name for your target search folder 
SET /P searchf=[Please type desired search forder] 
dir /ad /on /s /b "*%searchf%*" 

Da es nur einen Suchbegriff ist, müssen Sie für Schleife kein benötigen.

Verwenden eines variablen Dateinamens ich als schwierig, deshalb habe ich es zuerst geändert, um ein fester Dateiname zu sein, bis ich herausgefunden, dass für eine Liste von Verzeichnissen auf dem Bildschirm können Sie die Dir-Ausgabe direkt verwenden.

+0

willst du '% sarchf%' anstelle von undefiniertem '%% a' verwenden? – Stephan

+0

@Stephan haben Sie einen Punkt, behoben –

Verwandte Themen