次のコマンドを実行しています。
@echo off
cls
for /r D:\ %%a in (*) do if "%%~nxa"=="new.txt" set p=%%~dpnxa
if defined p (
echo File found its path - %p%
pause
) else (
echo File not found !
pause
)
最終結果として、ドライブ全体のnew.txt
フォルダーとサブフォルダーでD:
という名前のファイルを検索し、そのファイルnew.txt
のフルパスを以下のような出力として表示します( new.txt
のD:\folder\
ファイルを想定)
File found and its path - D:\folder\new.txt
Press any key to continue . . .
ただし、問題は、異なるフォルダまたはサブフォルダのドライブnew.txt
に同じ名前D:
のファイルが複数ある場合、1つのパス出力しか表示されないことです。
私の必要性は、以下の出力のように、ドライブnew.txt
上の同じ名前D:
のすべてのファイルパスを表示することです。
期待される出力このような必要性、
Files found : 4
Files Paths :
1 - D:\folder\new.txt
2 - D:\new folder\new.txt
3 - D:\files\new.txt
4 - D:\folder\new\new.txt
pls help..Thx in Advance。
new.txt
ドライブD:
期待される出力:
Files found : 4 Files Paths : 1 - D:\folder\new.txt 2 - D:\new folder\new.txt 3 - D:\files\new.txt 4 - D:\folder\new\new.txt
次のバッチファイルを使用します。
@echo off
setlocal
rem change to the correct directory
cd /d d:\
rem count the files
dir /b new.txt /s 2> nul | find "" /v /c > %temp%\count
set /p _count=<%temp%\count
rem cleanup
del %temp%\count
rem output the number of files
echo Files found : %_count%
rem list the files
echo Files Paths :
dir /b new.txt /s
endlocal