2016-03-28 18 views
2

Metin dosyasından değerler okuyup ayarlayan bir toplu iş dosyası var.Tab Delimiter çalışmıyor Batch Komutu

for /f "tokens=* delims=<TAB>" %%x in (input.txt) do set %%x 

Metin Dosyası (girdi.txt):

a=one  b=two  c=three d=four 

Ama değişkenler düzgün ayarlanmış edilmiyor Ama Metin dosyası farklı değişkenler

Toplu dosya komutu için sekmeleri içerir. Burada

cevap

3

İki nokta: Eğer bir delims= seçeneği dahil etmek zorunda kalmamak boşluk yok saymak istediğiniz sürece

  • varsayılandelims= değer, sınırlayıcı olarak uzay ve Tab verilebilir sınırlayıcı olarak!

  • Sizin tokens=* seçenek doğrultusunda tüm belirteçleri içerirler sizin for komutu (bu durumda %%x) içinde bir belirteç harfi tanımlar.

: Eğer buna göre her belirteci, tokens=1-4 belirtmek başkasıyla belirteçleri-mektup başlatın ve işlenmesi gerektiğidört belirteçleri almak istiyorsanız.

for /f "tokens=1-4" %%a in (input.txt) do (
    set "%%a" & set "%%b" & set "%%c" & set "%%d" 
) 
1

sizin Textfile (farklı olan jeton/bilinmeyen sayıda) birkaç satır varsa bu, hatta çalışır: hile olduğunu

@echo off 
setlocal enabledelayedexpansion 
for /f "tokens=*" %%i in (input.txt) do (
    set line=%%i 
    for %%x in ("!line: =","!") do set %%x 
) 

: tırnak içinde bir dize içine alarak, ayırıcı karakter tedavi edilmez Artık sınırlayıcı olarak.

"a=one","b=two","c=three","d=four" 

mutlu for %%x ...

ile işlenebilir: Yani başında ve dize sonunda bir alıntı ekleyerek VE her TAB değiştirilmesi "alıntı virgül alıntı" dizesini dönüşür