バッチファイルを使用して、csvファイルから特殊文字を削除します

スティーブリヒター

18フィールドのcsvファイルがあります。データを操作するためのバッチファイルを作成しました。「DEVILSDUE / 1FIRST COMICS、LLC」パブリッシャーからコンマを削除することを除いて、すべてが機能します。そのフィールドは正しく解析されません。例として他のバッチファイルを調べてみましたが、snytaxに慣れていません。

@echo off & Setlocal EnableDelayedExpansion
( FOR /f "tokens=1-18 delims=," %%A in ('More +4 datatest.csv') do (
rem H is the department code
rem S is the sales tax code
rem Q is the publisher code
    Set "H=%%H"
    Set "S=T"
    Set "Q=%%Q"
    if "%%Q"=="BOOM! STUDIOS" Set "Q=BOOM STUDIOS"
    if "%%Q"=="DEVILS DUE /1FIRST COMICS, LLC" Set "Q=DEVILS DUE"
    if "%%H"=="1" Set "H=1005" 
    if "%%H"=="1" Set "S=N"
    if "%%H"=="2" Set "H=1009" 
    if "%%H"=="2" Set "S=N"
    if "%%H"=="3" Set "H=1008"
    if "%%H"=="4" Set "H=1002"
    if "%%H"=="5" Set "H=1006"
    if "%%H"=="6" Set "H=1003"
    if "%%H"=="7" Set "H=1011"
    if "%%H"=="8" Set "H=1011"
    if "%%H"=="9" Set "H=1004"
    if "%%H"=="10" Set "H=1016"
    if "%%H"=="11" Set "H=1015"
    if "%%H"=="12" Set "H=1015"
    if "%%H"=="13" Set "H=1011"
    if "%%H"=="14" Set "H=1009" 
    if "%%H"=="14" Set "S=N"
    if "%%H"=="15" Set "H=1013"  
    if "%%H"=="16" Set "H=1017"
    echo "",%%~M,%%~N,%%~L,"","","","","",!H!,"","",ITEM,"","",%%~D,%%Q,"","",%%E,"",%%E,"","","","","","","","","","","","","","",%%A,"","","","","",!S!,N,"","",DIAMOND,%%B,"",""
  )
)>paygoinvoice.csv
@echo on
ジョン・ケンズ

あなたが抱えている問題は、delims=,あなたがあなたのFORループに持っているものが変化を引き起こしている、DEVILS DUE /1FIRST COMICS, LLCまたはあなたのコード内の任意のコンマがスペースとしてあるということです。

これをTokens=then %%H = DEVILS DUE /1FIRST COMICS --- And --- %%I = と組み合わせLLCます。

(私が知っている)手っ取り早い修正", "、main関数で実行する前に、すべてを別のものに変更することです。私の例では、を使用しました1Comma1これにより、IF検索がに変更されますDEVILS DUE /1FIRST COMICS1Comma1 LLC

Fixed.Bat:

@echo off & Setlocal EnableDelayedExpansion

Rem | Replace all ", " with "1Comma1"
for /f "tokens=1,* delims=¶" %%A in ('"type datatest.csv"') do (
    SET string=%%A
    setlocal EnableDelayedExpansion
    SET modified=!string:, =1Comma1 !

    >> datatest.csv.TEMP echo(!modified!
    endlocal
)

Rem | Main .CSV Edit Function
( FOR /f "tokens=1-8* delims=," %%A in ('More +4 datatest.csv.TEMP') do (
    Set "ItemData=%%H"
    if "%%H"=="1" Set "ItemData=1005"
    if "%%H"=="3" Set "ItemData=1008"
    if "%%H"=="BOOM STUDIOS" Set "ItemData=NEW STUDIOS"
    if "%%H"=="DEVILS DUE /1FIRST COMICS1Comma1 LLC" Set "ItemData=DEVILS DUE"

    echo %%A,%%B,%%C,%%D,%%E,%%F,%%G,!ItemData!,%%I
  )
)>paygoinvoice.txt
del datatest.csv.TEMP

@echo on

PS:上記の例で使用したコードは、この件に関する前回の投稿から取得したものです。新しいコードが属する場所に追加するだけです。

またループまたはステートメントの出力からEnableDelayedExpansion自動削除さ!れることにも注意してください。FORIF

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

BASHの特殊文字を含むファイル名から部分文字列をバッチ削除します

分類Dev

バッチ:ファイル名から特殊文字を変更します(éèà...)

分類Dev

ファイルからすべての特殊文字を削除します。

分類Dev

バッチファイルを使用して、文字列を検索し、特殊文字に置き換えます

分類Dev

Powershellはファイル名から特殊文字を削除します

分類Dev

特殊文字を使用してContent-Dispositionヘッダーからファイル名を抽出します

分類Dev

Python-PostgreSQLへのcsvファイルのインポートから特殊文字を削除します

分類Dev

xmlファイルRの特殊文字を削除します

分類Dev

バッチファイルを使用して文字列(ファイル名)から特定の部分を抽出します

分類Dev

名前C#.Netの特殊文字を使用してIISサーバーからファイルを取得する

分類Dev

UNIXの.csvファイル内のすべてのタイプの特殊文字を削除します

分類Dev

ファイル名として特殊文字を使用してファイルを作成します

分類Dev

特殊文字を持つMySQLデータベースからすべてのファイルをフェッチしますが、クエリのすべての特殊文字に「または」条件を使用したくない

分類Dev

ファイル名から特殊文字を削除する

分類Dev

PowerShellのファイル名から特殊文字を削除する

分類Dev

ファイル名から特定の特殊文字を削除する

分類Dev

バッチファイルを使用してcsvファイルの文字列を置き換えます

分類Dev

バッチファイルを使用して、指定したフォルダからサイズがゼロのファイルを削除します

分類Dev

Linuxでのファイル名からの特殊文字のバッチ削除

分類Dev

Windowsのファイル名からの特殊文字のバッチ削除

分類Dev

正規表現は、Windowsのファイル名から特殊文字を削除します

分類Dev

rの最初の要素の後のテキストファイルから特殊文字を削除します

分類Dev

ディレクトリ内のファイルから特殊文字を削除します

分類Dev

バッチファイルの特殊文字を%に置き換えます

分類Dev

バッチファイルを使用してファイルを削除する方法

分類Dev

バッチファイルを介してサブフォルダからすべてを削除します

分類Dev

バッチファイルを使用して、フィールドに特定のデータがあるcsvから行を削除します

分類Dev

バッチスクリプトを使用してファイル名から日付を削除します

分類Dev

バッチファイルを使用してtxtファイルから特定の値を読み取ります

Related 関連記事

  1. 1

    BASHの特殊文字を含むファイル名から部分文字列をバッチ削除します

  2. 2

    バッチ:ファイル名から特殊文字を変更します(éèà...)

  3. 3

    ファイルからすべての特殊文字を削除します。

  4. 4

    バッチファイルを使用して、文字列を検索し、特殊文字に置き換えます

  5. 5

    Powershellはファイル名から特殊文字を削除します

  6. 6

    特殊文字を使用してContent-Dispositionヘッダーからファイル名を抽出します

  7. 7

    Python-PostgreSQLへのcsvファイルのインポートから特殊文字を削除します

  8. 8

    xmlファイルRの特殊文字を削除します

  9. 9

    バッチファイルを使用して文字列(ファイル名)から特定の部分を抽出します

  10. 10

    名前C#.Netの特殊文字を使用してIISサーバーからファイルを取得する

  11. 11

    UNIXの.csvファイル内のすべてのタイプの特殊文字を削除します

  12. 12

    ファイル名として特殊文字を使用してファイルを作成します

  13. 13

    特殊文字を持つMySQLデータベースからすべてのファイルをフェッチしますが、クエリのすべての特殊文字に「または」条件を使用したくない

  14. 14

    ファイル名から特殊文字を削除する

  15. 15

    PowerShellのファイル名から特殊文字を削除する

  16. 16

    ファイル名から特定の特殊文字を削除する

  17. 17

    バッチファイルを使用してcsvファイルの文字列を置き換えます

  18. 18

    バッチファイルを使用して、指定したフォルダからサイズがゼロのファイルを削除します

  19. 19

    Linuxでのファイル名からの特殊文字のバッチ削除

  20. 20

    Windowsのファイル名からの特殊文字のバッチ削除

  21. 21

    正規表現は、Windowsのファイル名から特殊文字を削除します

  22. 22

    rの最初の要素の後のテキストファイルから特殊文字を削除します

  23. 23

    ディレクトリ内のファイルから特殊文字を削除します

  24. 24

    バッチファイルの特殊文字を%に置き換えます

  25. 25

    バッチファイルを使用してファイルを削除する方法

  26. 26

    バッチファイルを介してサブフォルダからすべてを削除します

  27. 27

    バッチファイルを使用して、フィールドに特定のデータがあるcsvから行を削除します

  28. 28

    バッチスクリプトを使用してファイル名から日付を削除します

  29. 29

    バッチファイルを使用してtxtファイルから特定の値を読み取ります

ホットタグ

アーカイブ