1

Я хочу прочитать CSV-файл и сохранить значение в переменной и использовать это значение переменной для записи в качестве последнего столбца того же файла.

@echo off 
del three.txt 
setlocal ENABLEDELAYEDEXPANSION 
set N=1 
for /f "tokens=* delims= " %%a in (combined.csv) do ( 
  set /a N+=1 
  if !N! equ 7 >> three.txt echo.%%a 
  ) 
for /f "tokens=1-10 delims=, " %%a in (three.txt) do ( 
  SET x=%%g 
) 
echo %x% >> three.txt 
endlocal

Я хочу, чтобы последнее значение чтения, которое находится в three.txt, было сохранено в переменной и использовало его для печати столбца в том же файле. Ниже приведены данные в сочетании .csv

,Safaricom,,,,Channel to subscriber transfer,,,,,,,,,
,,,,,,,,,,,Report code :,,C2STRANSFER02,
,Network name    :,,Safaricom,,,,,,,Service:,,,ALL,
,Zone :,,Safaricom    Zone,,,,,,,Category :,,,ALL,
,Domain :,,Dealer Domain,,,,,,,User    name :,,,ALL,
,Dated :,,02/12/15 08:56:46,,,,,,,Date :,,,01/12/15,
,Sl. No.,Transaction ID,,Request source,User name,Sender mobile number,Receiver mobile number,Service   
   class,Service,Sub-service,Requested amount,Credit amount,Bonus,Process fee
,Transfer,,,,,,,,,,,,,
,1,R151201.2053.140019,,EXTGW,GAZETI LIMITED,700945609,700648591,PREPAID,Customer Recharge,Airtime,130.00,130.00,0.00,0.00
,2,R151201.2243.140015,,EXTGW,GAZETI LIMITED,700945609,727783637,PREPAID,Customer Recharge,Airtime,50.00,50.00,0.00,0.00

Я прочитал дату 01.12.15 из комбинированного. CSV. Я хочу сохранить ее в переменной и сохранить ту же дату для всех записей в качестве последнего столбца.

1 ответ1

0

Я хочу прочитать дату из combined.csv .csv и добавить его в качестве нового последнего столбца в файл three.txt .

Ваш вопрос не очень понятен (даже после нескольких изменений), и ваш пакетный файл поврежден по-разному.

Пожалуйста, попробуйте следующий пакетный файл (example.cmd):

@echo off 
setlocal
if exist three.txt del three.txt 
rem get the date "01/12/15"
for /f "skip=5 tokens=1-10 usebackq delims=," %%a in (`type combined.csv`) do ( 
  set _date=%%d
  goto :next
  )
:next
rem add the date to the end of every line and output to "three.txt"
for /f "tokens=* usebackq" %%a in (`type combined.csv`) do ( 
  echo %%a,%_date%>>three.txt
  )
endlocal

Пример вывода:

F:\test>type combined.csv
,Safaricom,,,,Channel to subscriber transfer,,,,,,,,,
,,,,,,,,,,,Report code :,,C2STRANSFER02,
,Network name    :,,Safaricom,,,,,,,Service:,,,ALL,
,Zone :,,Safaricom    Zone,,,,,,,Category :,,,ALL,
,Domain :,,Dealer Domain,,,,,,,User    name :,,,ALL,
,Dated :,,02/12/15 08:56:46,,,,,,,Date :,,,01/12/15,
,Sl. No.,Transaction ID,,Request source,User name,Sender mobile number,Receiver mobile number,Service class,Service,Sub-service,Requested amount,Credit amount,Bonus,Process fee
,Transfer,,,,,,,,,,,,,
,1,R151201.2053.140019,,EXTGW,GAZETI LIMITED,700945609,700648591,PREPAID,Customer Recharge,Airtime,130.00,130.00,0.00,0.00
,2,R151201.2243.140015,,EXTGW,GAZETI LIMITED,700945609,727783637,PREPAID,Customer Recharge,Airtime,50.00,50.00,0.00,0.00

F:\test>example.cmd

F:\test>type three.txt
,Safaricom,,,,Channel to subscriber transfer,,,,,,,,,,01/12/15
,,,,,,,,,,,Report code :,,C2STRANSFER02,,01/12/15
,Network name    :,,Safaricom,,,,,,,Service:,,,ALL,,01/12/15
,Zone :,,Safaricom    Zone,,,,,,,Category :,,,ALL,,01/12/15
,Domain :,,Dealer Domain,,,,,,,User    name :,,,ALL,,01/12/15
,Dated :,,02/12/15 08:56:46,,,,,,,Date :,,,01/12/15,,01/12/15
,Sl. No.,Transaction ID,,Request source,User name,Sender mobile number,Receiver mobile number,Service class,Service,Sub-service,Requested amount,Credit amount,Bonus,Process fee,01/12/15
,Transfer,,,,,,,,,,,,,,01/12/15
,1,R151201.2053.140019,,EXTGW,GAZETI LIMITED,700945609,700648591,PREPAID,Customer Recharge,Airtime,130.00,130.00,0.00,0.00,01/12/15
,2,R151201.2243.140015,,EXTGW,GAZETI LIMITED,700945609,727783637,PREPAID,Customer Recharge,Airtime,50.00,50.00,0.00,0.00,01/12/15

Дальнейшее чтение

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