Программа ищет файлы, содержащие определенные ключевые слова, и частью ее задачи является отображение искомых ключевых слов. Ключевые слова пишутся одно под другим в текстовом файле, из которого они читают. Тем не менее, он читает только с последней строки? Вероятно, очень простая ошибка, но я скучаю по ней ...
@echo off
:main_section
set main_dir=%cd%
set key1=variable
set key2=variable
set key3=variable
set key4=variable
set key5=variable
for /f "delims=" %%a in (keylist.txt) do set "key1=%%a"
for /f "skip=1 delims=" %%b in (keylist.txt) do set "key2=%%b"
for /f "skip=2 delims=" %%c in (keylist.txt) do set "key3=%%c"
for /f "skip=3 delims=" %%d in (keylist.txt) do set "key4=%%d"
for /f "skip=4 delims=" %%e in (keylist.txt) do set "key5=%%e"
echo warning: do not launch from the userprofile directory
echo warning: write exactly five keywords in keylist.txt
echo searching for %key1%, %key2%, %key3%, %key4%, %key5%
pushd collection
>>%key1%.txt findstr /i /p /s %key1% %userprofile%\*.* >nul
echo search for %key1% complete - printed to collection\%key1%.txt
>>%key2%.txt findstr /i /p /s %key2% %userprofile%\*.* >nul
echo search for %key2% complete - printed to collection\%key2%.txt
>>%key3%.txt findstr /i /p /s %key3% %userprofile%\*.* >nul
echo search for %key3% complete - printed to collection\%key3%.txt
>>%key4%.txt findstr /i /p /s %key4% %userprofile%\*.* >nul
echo search for %key4% complete - printed to collection\%key4%.txt
>>%key5%.txt findstr /i /p /s %key5% %userprofile%\*.* >nul
echo search for %key5% complete - printed to collection\%key5%.txt
pushd %main_dir%
for /f "tokens=3" %%f in ('dir "collection"^|find "File(s)"') do set size=%%f
set "size=%size:,=%"
echo %size% bytes of information collected
echo press any key to exit the program
pause >nul
Я редко использую for / f для чтения строк, поэтому я думаю, что skip = 3 означает пропустить первые три строки и прочитать четвертую вместо всего, что ниже 3. Есть ли способ помешать этому?
—
Даниил
rem
)@echo off
и запустите ваш командный файл. Вы увидите свою ошибку. Подсказка: первыйfor
цикл обрабатывает все строки вkeylist.txt
. Следующийfor
цикл обрабатывает последние четыре строки ...