У меня есть пакетный файл, который проходит по папке, вставляя строку текста в каждый CSV в папке и генерируя файл, который считает строки каждого файла.
Я также хочу создать подкаталог в главной папке для каждого CSV-файла, не включая расширение «.csv». Приведенный ниже код выглядит так, как будто он должен работать (он работает, когда я изолирую три строки в их собственном bat-файле!) но в цикле он возвращает одно и то же значение для имени папки на каждой итерации цикла. Как мне обновить переменную dirname с текущим значением?
copy NUL count.txt
for %%f in (*.csv) do (
setlocal EnableDelayedExpansion
set "cmd=findstr /R /N "^^" %%f | find /C ":""
for /f %%a in ('!cmd!') do set number=%%a
echo %%f !number!>>count.txt
SET filename=%%f
SET dirname=%filename:~0,13%
mkdir %dirname%
type header.txt >%%f.new
type %%f >>%%f.new
move /y %%f.new %%f
)