मुझे पता है कि यह एक लंबे समय से पहले उत्तर दिया गया था, हालांकि यह मेरी स्क्रिप्ट है जो यूनिक्स / लिनक्स में उपयोग किए गए डिटेक्ट फ़ंक्शन को अनुकरण करने के लिए है
System32 में इसे save.bat और जगह के रूप में सहेजें या इसमें संग्रहीत निर्देशिका से चलाएं। इस "cmd> find javac.exe" जैसा एक पैरामीटर लेता है
पता / सी स्विच (एक 2 पैरामीटर के रूप में उदाहरणों की संख्या की गणना करेगा) और पता लगाएं /? सहायता पाठ प्रदर्शित करेगा
@echo off
if [%1]==[] goto :usage
if [%1] == [/?] (
:usage
echo Usage:
echo locate "filename" { optional } /c { shows counter }
echo note: results are exported to C:\temp\result.txt
goto :EOF
) else (
setlocal EnableDelayedExpansion
dir /a /b /s C:\ | findstr /I "%1" > C:\temp\result.txt
type C:\temp\result.txt | more /S
set counter=0
if [%2] == [/c] (
for /F %%i in ('type C:\temp\result.txt') do (
set /a counter=!counter!+1
)
echo Total Matches: !counter!
)
)
endlocal > nul
goto :EOF
संपादित करें: (अद्यतित स्क्रिप्ट, अधिक व्यवस्थित और कई प्रकार की स्थितियों को संभाल सकता है, जैसे कि किसी भी खोज शब्द की अनुमति न केवल फ़ाइल नाम)
@echo off
::initialize local varaibles to default values
setlocal
set file=
set directory=
set toppath=top
::some switch validation ( from command line )
if [%1]==[] goto :Usage
if [%1]==[/?] goto :Usage
if [%1]==[/help] goto :Usage
::handle switches with if structures
if [%2]==[/c] (
set count=yes
) ELSE (
if [%2]==[/t] ( if [%3]==[] (goto :Usage) else (set toppath=%3))
if [%4]==[/c] (
set count=yes
) ELSE (
set count=
)
)
set file=%1
::Directory Validation ( Goto jumps possible, along with raptors )
if [%toppath%] == [] (
IF NOT EXIST %toppath% goto :FolderInvalid
) else (
if [%toppath%] neq [top] set directory=%toppath%
)
set toppath=
setlocal EnableDelayedExpansion
::Run Bulk of the Script
dir /a /b /s %directory% | findstr /I "%file%" > C:\temp\result.txt
type C:\temp\result.txt | more /S
set counter=0
if [%count%]==[yes] (
for /F %%i in ('type C:\temp\result.txt') do (
set /a counter=!counter!+1
)
echo Total Matches: !counter!
)
goto :End
:Usage
echo locate ^[file^] {term^/file to look for} ^| ^[^/t^] {dir^/subdirs to search} ^| ^[^/c^] {show counter}
echo.
echo notes to user: 1. Results are exported to C:\temp\result.txt
echo 2. Default search dir is the current unless specified by ^/t switch
echo 3. For best results write switches in order given ! ( or beware of raptors )
goto :End
:FolderInvalid
echo Folder Invalid
:End
endlocal > nul