jimbob, вот что я придумал:
delfiles.cmd
@echo off
set file=clean.txt
call :grep "Number of files to delete:"
set files=%grep%
call :grep "Total size of files to delete:"
set size=%grep%
echo %Files% files of a total size of %size% are to be deleted.
exit /b 0
:grep
setlocal
for /F "tokens=2 delims=:" %%i in ('findstr /i /c:"%~1" "%file%"') do (
for /F "tokens=1 delims= " %%j in ("%%i") do set _find=%%j
)
endlocal& set grep=%_find%
exit /b 0
Это скрипт многократного использования, поскольку файл и строки могут быть изменены с одинаковыми результатами. Я скопировал / вставил твой пример, и он работал хорошо.
@ Patrick Cuff: Вы можете столкнуться с проблемами при поиске целой строки без / c: ".." . Возможно, это было частью проблемы, но тогда, возможно, мой сценарий даст те же результаты / проблемы ... Я думаю, живи и учись.
______ Примечание __________
set file =: Установите это для файла (и пути, если необходимо) файла для сканирования.
вызов: grep "строка" : Вызов функции: grep со строкой для поиска.
set var =% grep%: Установить переменную (здесь файлы и размер) для ответа от: grep.
: функция grep: Сначала он ищет в% file% «% string%», а затем анализирует его по символу «:», сохраняя правую часть. Затем он снова разбирает его с помощью «пробелов» и сохраняет первое слово. Функция возвращает переменную% grep%, которая содержит найденную строку.
Как и в случае с моими обычными ответами, я надеюсь, что это поможет.