@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "filename1=%sourcedir%\q56003792.txt"
SET "outfile=%destdir%\outfile.txt"
(
FOR /f "usebackqdelims=" %%a IN ("%filename1%") DO CALL :drop4 %%a
)>"%outfile%"
GOTO :EOF
:drop4
:: all data to 'line'
SET "line=%*"
CALL ECHO %%line:*%1, %2, %3, %4, =%1, %2, %3, %%
GOTO :eof
Вам потребуется изменить настройки sourcedir
и destdir
в соответствии с вашими обстоятельствами.
Я использовал файл с именем q56003792.txt
, содержащий ваши данные для моего тестирования.
Создает файл, определенный как% outfile%
Параметр usebackq
необходим только потому, что я решил добавить кавычки вокруг имени исходного файла.
Поскольку все строки данных содержат столбцыразделенный ,
Я предлагаю это чистое пакетное решение.
Преамбула устанавливает каталог и имена файлов, которые будут использоваться.Они настроены для моей системы.
Основным источником подпрограммы является for/f
, который вызывает подпрограмму drop4
, обеспечивающую дословную запись каждой всей текстовой строки.for
заключен в круглые скобки, чтобы перенаправить весь вывод подпрограммы в указанный файл.
Подпрограмма просто присваивает параметры стандартной переменной среды (поскольку пакетная подстрока может применяться только к нормальным переменным).
В строке call echo
выполняется echo
с заменой предоставленных параметров% 1 ..% 4, поэтому строка echo
ed будет исходной строкой со всеми символами до [первых 4 параметров,разделены ,
] заменены на [первые 3 параметра, разделены ,
] - столбец удаления 4.