我試圖編寫一個批處理腳本來查找與輸入字符串具有相同名稱的文件的所有路徑。現在它只能找到找到的第一個文件,而我不能想辦法讓它列出多個文件位置。我不是很有經驗,我需要一些幫助。使用單個字符串查找多個文件路徑
這是腳本代碼的一部分:
: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%
--- || ---
我希望腳本搜索計算機並列出具有相同名稱的每一個遇到的文件,我希望能夠把這些文件的路徑爲不同變量。
例如,如果readme.txt是輸入,那麼我需要所有具有該特定名稱的文件(readme.txt)的所有路徑的列表,並且我想爲每個路徑設置變量,以便可以在之後使用它那。
input:
readme.txt
output:
3 files found
C:\folder\folder\readme.txt
C:\folder\folder\folder\readme.txt
D:\folder\readme.txt
'爲%%一個在(CDEFGHUW)做DIR/S/B% %a:\%filename%2> nul' - 夠短? – Stephan
是的,它的好處。但問題是該腳本還可以選擇複製或刪除文件。這就是爲什麼我添加了完整路徑和數據路徑的原因,但是隻要列出它們,我就不能使用這些路徑。但是謝謝你的幫助! –