'खोज' को आंतरिक या बाह्य कमांड संचालन कार्यक्रम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है


1

मुझे यह त्रुटि तब हो रही है जब मैं FINDनेस्टेड FORलूप में फ़ंक्शन का उपयोग करता हूं और IFबैच फ़ाइल में बयान करता हूं ।

'खोज' को आंतरिक या बाह्य कमांड संचालन कार्यक्रम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है

मैं निर्देशिका में सबसे बड़ी फ़ाइलों को खोजने की कोशिश कर रहा हूं:

SET /P number=Enter the number of files to find:

for /l %%x in (1,1,!number!) do (

for /r %%h in (*) do (
IF %%x GTR 1 IF !check! geq %%~zh (
IF !check! equ %%~zh (
echo !chkn!
FIND "!chkn!" Biggest.txt
IF %errorlevel% equ 1 set res=notfound
FIND "!chkp!" Biggest.txt
IF %errorlevel% equ 1 set res=notfound
IF "!res!" equ "notfound" (
IF !tes! LSS %%~zh (
SET  tes=%%~zh
SET  name=%%~nh
SET  path=%%~ph
)
)
)
IF !tes! LSS %%~zh (
SET  tes=%%~zh
SET  name=%%~nh
SET  path=%%~ph
)
)
IF %%x equ 1 (
IF !tes! LSS %%~zh (
SET  tes=%%~zh
SET  name=%%~nh
SET  path=%%~ph
)
)
)

SET check=!tes!
SET chkn=!name!
SET chkp=!path!

echo !chkn!
echo !check!

echo %%x number: >> Biggest.txt
echo name = !chkn! >> Biggest.txt
echo size = !check! >> Biggest.txt
echo path = !chkp! >> Biggest.txt
echo file is created
SET tes=0
)

आप कुछ शर्तों के तहत अपने बयानों में खोज पथ को रीसेट करते हैं। जैसे ही आप करते हैं, cmd खोजने में सक्षम नहीं होगा (इच्छित उद्देश्य) और विफल हो जाएगा। अपने pathवैरिएबल को अलग-अलग नाम पर बदलें
wmz

हाँ..आप सही हैं !!! मुझे परिवर्तनशील 'पथ' को किसी और चीज़ में बदलने की आवश्यकता है। बहुत बहुत धन्यवाद!!!!
सचिन

जवाबों:


1

विस्तार की कमी के बावजूद, मुझे लगता है कि आपकी ढूँढें कमांड c: \ windows \ system32 \ का उपयोग नहीं करती है

क्या यह काम करता है

SET /P number=Enter the number of files to find:

for /l %%x in (1,1,!number!) do (

for /r %%h in (*) do (
IF %%x GTR 1 IF !check! geq %%~zh (
IF !check! equ %%~zh (
echo !chkn!
c:\windows\system32\FIND "!chkn!" Biggest.txt
IF %errorlevel% equ 1 set res=notfound
c:\windows\system32\FIND "!chkp!" Biggest.txt
IF %errorlevel% equ 1 set res=notfound
IF "!res!" equ "notfound" (
IF !tes! LSS %%~zh (
SET  tes=%%~zh
SET  name=%%~nh
SET  path=%%~ph
)
)
)
IF !tes! LSS %%~zh (
SET  tes=%%~zh
SET  name=%%~nh
SET  path=%%~ph
)
)
IF %%x equ 1 (
IF !tes! LSS %%~zh (
SET  tes=%%~zh
SET  name=%%~nh
SET  path=%%~ph
)
)
)

SET check=!tes!
SET chkn=!name!
SET chkp=!path!

echo !chkn!
echo !check!

echo %%x number: >> Biggest.txt
echo name = !chkn! >> Biggest.txt
echo size = !check! >> Biggest.txt
echo path = !chkp! >> Biggest.txt
echo file is created
SET tes=0
)

लेकिन FIND काम कर रहा है जब मैं कुछ अन्य बैच फ़ाइल चला रहा हूं
सचिन

हाँ .... यह काम किया। आपका बहुत बहुत धन्यवाद !! आप सही हैं लेकिन मुझे नहीं पता कि FIND अन्य बैच फ़ाइल में क्यों काम कर रहा था।
सचिन

खुशी है कि यह आपके लिए कारगर रहा।
डेव

आपका समाधान काम करता है, लेकिन मूल कारण आपके द्वारा अनुमान किए गए से अलग है (प्रश्न पर मेरी टिप्पणी देखें)। क्या आप संपादित करने की परवाह करेंगे?
wmz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.