0

バッチ ファイルを使用して、既存のテキスト ファイルの各行に文字を挿入する必要があります。結果を、データベースへの入力に使用される新しいテキスト ファイルに書き込みます。挿入された文字は、データを適切な順序に並べるための区切り文字になります。

サンプル:
現在のファイル:

AAAAAAAAA~ZZZ  
AAAAAAAAA~BB~ZZZ  
AAAAAAAAA~BB~CCCC~ZZZ  
AAAAAAAAA~BBB~CC~ZZZ  

望ましい結果:

AAAAAAAAA~~~~ZZZ  
AAAAAAAAA~BB~~~ZZZ  
AAAAAAAAA~BB~CCCC~~ZZZ  
AAAAAAAAA~BBB~CC~~ZZZ 

区切り文字がトリガーされた後の外観:

Part Num    Rev    Stat   Type        
AAAAAAAAA                 ZZZ  
AAAAAAAAA   BB            ZZZ  
AAAAAAAAA   BB     CC     ZZZ  
AAAAAAAAA   BBB    CC     ZZZ  

注:
最初のフィールドは常に 9 文字です
最後のフィールドは常に 3 文字
です フィールドの区切り記号としてチルダを使用しています

4

1 に答える 1

0

これでうまくいくはずです。
使用法:mapper {sourfile} {targetfile}

mapper.cmd:

@echo off
setlocal enabledelayedexpansion
if "%~1" == "" (
  echo No source file specified.
  goto :eof
)
if not exist "%~1" (
  echo Source file not found.
  goto :eof
)
if "%~2" == "" (
  echo No target file specified.
  goto :eof
)
if exist "%~2" (
  echo Target file is already exist.
  goto :eof
)
rem>"%~2"
for /f "tokens=1,2,3,4,5 delims=~" %%a in (%~1) do (
  if "%%b" == "" (
    echo %%a~~~~>>"%~2"
  ) else (
    if "%%c" == "" (
      echo %%a~~~~%%b>>"%~2"
    ) else (
      if "%%d" == "" (
        echo %%a~%%b~~~%%c>>"%~2"
      ) else (
        if "%%e" == "" (
          echo %%a~%%b~%%c~~%%d>>"%~2"
        ) else (
          echo %%a~%%b~%%c~%%d~%%e>>"%~2"
        )
      )
    )
  )
)
于 2012-07-20T09:28:09.397 に答える