Ich habe versucht, ein Stapelscript zu schreiben, das alle Pfade von Dateien findet, die denselben Namen wie die Eingabezeichenfolge haben. Im Moment kann es nur die erste gefundene Datei finden, und ich kann mir keine Möglichkeit vorstellen, mehrere Dateien aufzulisten. Ich bin nicht sehr erfahren und brauche Hilfe.Suche nach mehreren Dateipfaden mit einer einzelnen Zeichenfolge
dies ist Teil des Script-Code:
:start
cls
echo Enter file name with extension:
set /p filename=
echo Searching...
for %%a in (C D E F G H U W) do (
for /f "tokens=*" %%b in ('dir /s /b "%%a:\%filename%"') do (
set file=%%~nxb
set datapath=%%~dpb\
::the path of the file without the filename included "C:\folder\folder\"
set fullpath=%%b
::the path of the file with the filename included "C:\folder\folder\file"
goto break
)
)
:notfound
cls
echo Enter file name with extension:
echo %filename%
echo File Not Found!
ping localhost -n 4 >nul
goto start
:break
if "%datapath:~-1%"=="\" set datapath=%datapath:~,-1%
cls
echo 3 %filename% found
echo %fullpath1%
echo %fullpath2%
echo %fullpath3%
--- || ---
Ich mag das Skript den Computer durchsuchen und alle auftretenden Dateien mit dem gleichen Namen auflisten und ich möchte in der Lage sein, diese Dateien Pfade in verschiedenen setzen Variablen.
Zum Beispiel, wenn readme.txt die Eingabe ist, dann möchte ich die Liste aller Pfade aller Dateien mit diesem spezifischen Namen (readme.txt) und ich möchte die Variable für jeden Pfad festlegen, so dass ich es nach verwenden kann Das.
input:
readme.txt
output:
3 files found
C:\folder\folder\readme.txt
C:\folder\folder\folder\readme.txt
D:\folder\readme.txt
'für %% einer in (CDEFGHUW) tun dir/s/b% % a: \% Dateiname% 2> nul' - kurz genug? – Stephan
ja, es ist gut. Das Problem ist jedoch, dass das Skript auch die Möglichkeit hat, die Datei zu kopieren oder zu löschen. Deshalb habe ich den vollständigen Pfad und den Datenpfad hinzugefügt, aber mit dieser Zeile listet er sie einfach auf und ich kann die Pfade nicht verwenden. Aber danke für deine Hilfe! –