Toplu Dosya Yardımı: .csv dosyasından ayrıştırılan değerler değişkenlere depolanamıyor


-1

Belirli sütunlardaki değerleri çıkarmam gereken bir .CSV (Virgülle ayrılmış) dosyam var ve sonra bu değerleri sübvanse etmem gerekiyor. Subring değerleri çıktı dosyasına yazılmalıdır.

Ancak, set ifadesini / f döngüsüne koymaya çalışırken, subString'in beklendiği gibi çalışmadığı sonuçlarında, değerler saklanmıyor.

Lütfen aşağıdaki pasajı bulun ve öneriniz:

-butsel abcdefgh %% d değerinde

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
)

Yukarıdan Çıktı:

abcdefgh
_clnt: ~5,3

Beklenen çıktı:

abcdefgh
_clnt: fgh

2
5. set _clnt=!_id:~5,3!
sıranız

Merhaba, Bunu denedim, ancak bana 'set _clnt =! _ İd: ~ 5,3!' _id 'in bir dize olduğunu düşünüyor ve bu set komutunda _id değerini
korumuyor

Bahsettiğim değişiklikle çalıştırdığımda (artı bir tane daha echo _clnt: !_clnt!) tam olarak "Beklenen Sonuç" bölümünde gösterdiğiniz sonucu verir ve değeri _clntde output.csvdosyada gösterilir . Farklı olmak ister miydin?
Worthwelle

Yanıtlar:


0

Bu benim için çalışıyor

@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 içeriği

x,y,z,abcdefgh

Toplu komut dosyasının konsol çıktısı:

abcdefgh
_clnt: fgh

Toplu komut dosyasını çalıştırdıktan sonra output.csv içeriği:

x,y,z,fgh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.