2012-04-02 7 views
0

助けてください。ファイルを読み取っているときに複数のタブを削除する方法(cmd)

私はこのようなファイルがあります: http://www.crocko.com/9A60004ABE6046578ED113CFFFB75F6E/activate_all_regions.txt (。。右下のをクリックしてくださいありタイマーがあるが、私は、タイマーなしでアップロードサーバを見つけられませんでしたが、ファイルではタビュレータされている、私は、サーバーにアップロードする理由thatsの)

、これはそれを読むためのスクリプトです:

@echo off 
setlocal EnableDelayedExpansion 

if "%1"=="" (
    IF EXIST "..\_install\activate all regions.txt" (
    SET FILE="..\_INSTALL\activate all regions.txt" 
    echo Setting !FILE! as your configuration file 
) ELSE (
    echo File not found. First argument is name of configuration file .txt. 
    pause 
) 
) else (SET "FILE=%1") 

for /F "skip=4 delims=pR tokens=1,2" %%a in ('reg query hkcu\environment /v temp') do set TAB=%%b 

FOR /F "usebackq delims=!TAB! tokens=1-3" %%L IN (!FILE!) DO (
for /F "delims=!TAB! tokens=1-3" %%a in ("%%L") do echo A:"%%a"B:"%%b"C:"%%c" 
REM echo %%L 
) 

私はのような出力を取得したい:

A:"Directory name 1"B:"1"C:"Description to this line" 
A:"Directory name 2"B:"1"C:"Description to this line" 
A:"Directory name xxx"B:"1"C:"Description to this line" 

目的は、繰り返される(タブ)(タブ)(タブ)をフィルタリングして1つ(タブ)に置き換えることです。 最初の手順では、列A(タブ)の列B(タブ)の列C(タブ)を生成し、次に2番目の手順で解析して列を3つの変数にする必要があります。

+0

http://pastebin.com/66ucy5Mh – user1141649

答えて

1

!TAB!コマンドの中には、%TAB%である必要があります

@echo off 
setlocal EnableDelayedExpansion 

for /F "skip=4 delims=pR tokens=1,2" %%a in ('reg query hkcu\environment /v temp') do set TAB=%%b 

SET FILE="activate all regions.txt" 

FOR /F "usebackq tokens=1-3 delims=%TAB%" %%a IN (!FILE!) DO (
    echo A:"%%a" B:"%%b" C:"%%c" 
) 

結果:

A:"all_in_one" B:"1" C:"" 
A:"Ji×nÝ ╚echy st°ed" B:"1" C:"" 
A:"Ji×nÝ ╚echy v²chod - ╚B" B:"1" C:"" 
A:"Ji×nÝ ╚echy zßpad" B:"1" C:"" 
A:"Ji×nÝ Morava st°ed 1 - Znojmo" B:"1" C:"" 
A:"Ji×nÝ Morava st°ed 2 - Brno, B°eclav" B:"1" C:"Oblast od Brna a× po B°eclav." 
A:"Ji×nÝ Morava v²chod 1 (Uh.Hrad.)" B:"1" C:"" 
A:"Ji×nÝ Morava v²chod 2 (Ji×nÝ Beskydy)" B:"1" C:"" 
A:"Ji×nÝ Morava zßpad - TelÞ" B:"1" C:"" 
A:"SevernÝ ╚echy" B:"1" C:"" 
A:"SevernÝ Morava v²chod - Ostravsko" B:"1" C:"Oblast zahrnuje Opavsko, Ostravsko, Okres Karvinß a Fr²dek MÝstek" 
A:"SevernÝ Morava zßpad - Jesenicko" B:"1" C:"Oblast zahrnuje JesenÝk, Krnov, Bruntßl, R²ma°ov, Olomouc" 
A:"St°ednÝ ╚echy 1 jih" B:"1" C:"" 
A:"St°ednÝ ╚echy 1 sever" B:"1" C:"" 
A:"St°ednÝ ╚echy 1 st°ed" B:"1" C:"" 
A:"St°ednÝ ╚echy 2 jih" B:"1" C:"" 
A:"St°ednÝ ╚echy 2 sever" B:"1" C:"" 
A:"St°ednÝ ╚echy 2 st°ed" B:"1" C:"" 
A:"V²chodnÝ ╚echy jih" B:"1" C:"" 
A:"ZßpadnÝ ╚echy jih" B:"1" C:"" 
A:"ZßpadnÝ ╚echy sever" B:"1" C:"" 
A:"ZßpadnÝ ╚echy st°ed (K.Vary)" B:"1" C:"" 
A:"ZßpadnÝ Morava" B:"1" C:"Oblast zahrnuje Prostýjov, Zßb°eh, èumperk" 
+0

うわー。それは簡単だった。しかし、なぜ%TAB%であり、TABではないのですか?遅延拡張が有効になっている場合 – user1141649

+0

あなたの#4行目のコードに戻る:こんにちは。このコマンドはWindows 7でも動作しますか? aGerman: "私が知っている限り、XPは、REG QUERYが値をタブで区切って返す最後のWindowsバージョンです。つまり、あなたのソリューションはVistaおよびWin7では動作しません。 – user1141649

関連する問題