バッチ処理でcsvの項目を変換する方法でもうひとつ質問があります。
下記のバッチを実行すると、
for /f "delims=, tokens=1-2" %%A in (\INDATA.csv) do echo %%A,%%B,"999999999999">> OUTDATA.csv
INDATA.csvの中身
AAAA,1
BBBB,2
が
OUTDATA.csvの中身
AAAA,1,"999999999999"
BBBB,2,"999999999999"
CCCC,3,"999999999999"
となります。
下記の用にすることはできますか?
AAAA,1,"900000000001"
BBBB,2,"900000000002"
CCCC,3,"900000000003"
%%B + 900000000000ですが、文字項目にしたいので、"" でくくりたいのですが,,,,,
No.2
- 回答日時:
以下の方法で出力出来ます。
+を無視にも対応。
@echo off
setlocal enabledelayedexpansion
type NUL >OUTDATA.csv
for /f "tokens=1-2 delims=," %%A in (\INDATA.csv) do (
set BB=%%B
if "!BB:~0,1!" == "+" (set BB=!BB:~1!)
set CC=00000000000!BB!
set CC=!CC:~-11!
echo %%A,%%B,"9!CC!" >>OUTDATA.csv
)
exit
また、for文を一行で書く場合は、以下のように&で繋いでください。
(if文は括弧で括ってください)
for /f "tokens=1-2 delims=," %%A in (\INDATA.csv) do (set BB=%%B&(if "!BB:~0,1!" == "+" (set BB=!BB:~1!))&set CC=00000000000!BB!&set CC=!CC:~-11!&echo %%A,%%B,"9!CC!" >>OUTDATA.csv)
No.1
- 回答日時:
バッチを以下のようにすると可能です。
@echo off
setlocal enabledelayedexpansion
type NUL >OUTDATA.csv
for /f "tokens=1-2 delims=," %%A in (\INDATA.csv) do (
set CC=00000000000%%B
set CC=!CC:~-11!
echo %%A,%%B,"9!CC!" >>OUTDATA.csv
)
exit
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでcsvファイルもシートもあ...
-
Excelマクロ 空白セルを無視し...
-
【Excel】100行区切りのcsvファ...
-
LibreOffice Calcのマクロで、...
-
ダブルコーテーション付きでCSV...
-
バッチファイルでcsvファイルに...
-
pythonでリストをCSVに出力する...
-
Pythonのコードエラーについて...
-
【ExcelVBA】300万件越えCSVか...
-
複数のファイルをまたぐエクセ...
-
VBAで複数のCSVからレコードセ...
-
【C#】 csvファイルをバイナリ...
-
VBAで文字列を引数とするアドイ...
-
シート内容の文字列を置換してV...
-
Sikulix2.0.5(Jython2.7.3)でcs...
-
Rubyを使用してcsvファイルを処...
-
バッチ処理 特定の文字以降を...
-
バッチファイル フォルダ名をフ...
-
区切り文字の調整方法について...
-
INPUTタグ disabledの文字色を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでcsvファイルもシートもあ...
-
Excelマクロ 空白セルを無視し...
-
ダブルコーテーション付きでCSV...
-
【ExcelVBA】300万件越えCSVか...
-
ファイル名を変数で書きこむfwr...
-
複数のファイルをまたぐエクセ...
-
VB.netでShellExecuteがしたい
-
VBAで複数のCSVからレコードセ...
-
CSVで余計な空行が入る
-
EXCEL→CSV保存時のダブルクォー...
-
FileListBoxで出すものを絞り込...
-
バッチコマンドで指定行を抽出...
-
エクセルの任意のシートをcs...
-
CSVファイルの比較と結果の取得...
-
IPアドレスのゼロパディング
-
ブラウザ上でcsvファイルの編集
-
CSVデータの文字列置換
-
Delphiで使用しているindyコン...
-
StringGridの中身をCSV形式で保...
-
Sikulix2.0.5(Jython2.7.3)でcs...
おすすめ情報
回答ありがとうございました。
早速試しました。
set文を外すと、9で出力されるのですが、 set文を入れると空っぽの出力でした。
どこが悪いのでしょうか?
お手数をおかけします
○
for /f "delims=, tokens=1-2" %%A in (\INDATA.csv) do (echo %%A,%%B,"9!CC!" >>OUTDATA.csv)
×
for /f "delims=, tokens=1-2" %%A in (\INDATA.csv) do (set CC=00000000000%%B set CC=!CC:~-11! echo %%A,%%B,"9!CC!" >>OUTDATA.csv)
ちなみに
INDATA.CSVが
AAAA,+1
BBBB,+2
の場合、+は無視して、同じ結果にするにはどうすればいいですか?
AAAA,+1,"900000000001"
BBBB,+2,"900000000002"
CCCC,+3,"900000000003"
すみません。99%うまくいきました。
最後に、この場合もできますか?
INDATA.CSVが
AAAA,+1.
BBBB,+2.
の場合、+と後ろの.(ピリオド)は無視して、同じ結果にするにはどうすればいいですか?
AAAA,+1.,"900000000001"
BBBB,+2.,"900000000002"
CCCC,+3.,"900000000003"
2行並べても後ろの.(ピリオド)は無視されました
if "!BB:~0,1!" == "+" (set BB=!BB:~1!)
if "!BB:~0,1!" == "." (set BB=!BB:~1!)