-1

У меня есть .Файл CSV(через запятую), из которого мне нужно извлечь значения в определенных столбцах, а затем подстроку этих значений. Значения подстроки должны быть записаны в выходной файл.

Однако, когда я пытаюсь поместить оператор set в цикл for /f, значения не сохраняются в переменных, в результате чего подстрока не работает должным образом.

Пожалуйста, найдите фрагмент ниже и посоветуйте:

-suppose abcdefgh это значение в %% d

SETLOCAL ENABLEDELAYEDEXPANSION    
for /F "usebackqtokens=1-4*delims=^," %%a in (temp.csv) do (
echo %%d
set _id=%%d
echo _clnt: %!_id!:~5,3%
echo %%a,%%b,%%c,!_clnt! >> output.csv
)

Выход сверху:

abcdefgh
_clnt: ~5,3

Ожидаемый результат:

abcdefgh
_clnt: fgh

1 ответ1

0

Это работает для меня

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION    
for /F "usebackqtokens=1-4*delims=^," %%a in (temp.csv) do (
echo %%d
set id=%%d
set _clnt=!_id:~5,3!
echo _clnt: !_clnt!
echo %%a,%%b,%%c,!_clnt! >> output.csv
)

Содержимое temp.csv

x,y,z,abcdefgh

Консольный вывод пакетного скрипта:

abcdefgh
_clnt: fgh

Содержимое файла output.csv после запуска пакетного скрипта:

x,y,z,fgh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .