Как разделить один текстовый файл на несколько текстовых файлов по строкам?
Основываясь на комментарии Сета, вы можете использовать следующий пакетный файл:
@echo off cls setlocal enabledelayedexpansion set /p "filename=type file name>" rem initialise counter to 1 set _count=1 for /r E:\ %%a in (*) do if "%%~nxa"=="%filename%" ( echo %%~dpnxa >>path!_count!.txt rem increment the counter set /a _count+=1 ) endlocal
Заметки:
- Я переместил
setlocal
строку, чтобы остановитьfilename
утечку переменной в вызывающуюcmd
оболочку.
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD
- Категоризованный список команд Windows CMD
- enabledelayedexpansion - отложенное расширение приведет к тому, что переменные будут расширяться во время выполнения, а не во время анализа.
- endlocal - завершить локализацию изменений среды в командном файле. Передача переменных из одного пакетного файла в другой.
- for / r - перебирать файлы (подпапки Recurse).
- set - отображать, устанавливать или удалять переменные окружения CMD. Изменения, сделанные с помощью SET, будут сохраняться только в течение текущего сеанса CMD.
- setlocal - устанавливает параметры для контроля видимости переменных среды в командном файле.