
お世話になっております
バッチファイルの、文字列操作で
----------------------------------------------------------
FOR /F "eol=; tokens=2,32 delims=, " %i in (myfile.csv) do @echo %i %j %k
----------------------------------------------------------
のtokensで指定している32列目(カンマが32個目)以降の値を
取得しません。
なぜでしょうか。
下記のHPを参照すると、一度変数をクリアしそのしたでさらにForで
指定すればよいとのことなのですが、欲しい値が多すぎて
とても、Forのしたに何度書きたくありません。
http://folomy.jp/heart/?m=pc&a=page_c_topic_deta …
どのようにしたら、目的を果たせるのでしょうか。
ご教授ください。
No.2ベストアンサー
- 回答日時:
#1です。
リンク先を見落としていました。今試してみしたら確かに32以降は指定しても取得できないようです。仕様ですかね。
具体的にどれくらいの列を指示したいのでしょうか。
リンク先のような方法か、call文の引数で渡してサブルーチンで分解するくらいしか方法が思いつきません。スミマセン。
pita-gora様
ご回答ありがとうございます。
32bit版OSが関係しているのではないかとの噂を耳にしました・・・。
謎です。
仕方がないのでVBSで処理いたしました。
ありがとうございました。
No.3
- 回答日時:
#1です。
追記です。for文の2重ループで分解する方法の例を載せておきます。
tokens=2,32,33,35 に相当しているところが echo ![2]!,![32]!,![33]!,![35]! になります。
echo off
setlocal ENABLEDELAYEDEXPANSION
for /F "delims=" %%A in (myfile.csv) do (
set n=
for %%a in (%%A) do (
set /a n=n+1
set [!n!]=%%a
)
echo ![2]!,![32]!,![33]!,![35]!
)
endlocal
No.1
- 回答日時:
こんにちは。
----------------------------------------------------------
FOR /F "eol=; tokens=2,32 delims=, " %i in (myfile.csv) do @echo %i %j %k
----------------------------------------------------------
>tokensで指定している32列目(カンマが32個目)以降の値を取得しません。
>なぜでしょうか。
tokens=2,32 が、2列目を%i に、32列目を%j に入れなさいという指示です。32列目以降については指示されていません。
FOR /F "eol=; tokens=2,32* delims=, " %i in (myfile.csv) do @echo %i %j %k
とすれば、2列目を%i に、32列目を%j に、32列目以降の残りすべてが %k に入ります。
FOR /F "eol=; tokens=2,32-35 delims=, " %i in (myfile.csv) do @echo %i %j %k %l %m
とすれば、2列目と32列から35列目までの内容を取得できます。
pita-gora様
ご回答ありがとうございます。
処理の概要は理解しているのですが
どうにも値を取得しませんでした。
しかたがないのでVBSで記述しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
バッチで118項目のCSVを処理したいですが。。。
その他(開発・運用・管理)
-
バッチでCSVを処理する時、空の項目があった場合
その他(プログラミング・Web制作)
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
-
4
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
5
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
6
バッチでcsvファイルの指定のカラムを編集したい
その他(プログラミング・Web制作)
-
7
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
8
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
9
バッチファイルで変数の中身をファイル出力したい
UNIX・Linux
-
10
DOSコマンドのFOR文で空白を含むファイルパスの指定方法
UNIX・Linux
-
11
echoの出力の最後のスペースを除去したい
iOS
-
12
Dosブロンプトでtabを出力したい
その他(プログラミング・Web制作)
-
13
コマンドプロンプトで変数が数字であることを判定する方法
その他(プログラミング・Web制作)
-
14
バッチファイルからSQLファイルへ引数を渡したい!
その他(プログラミング・Web制作)
-
15
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
16
バッチファイルでDirで取得したファイル名を変数に入れる方法
その他(プログラミング・Web制作)
-
17
バッチ処理 特定の文字以降をリネーム
Ruby
-
18
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一番多く表示のある値(文字列...
-
検便についてです。 便は取れた...
-
首吊りどこ締めるの
-
風俗店へ行く前のご飯
-
病院側から早く来てくださいと...
-
Excel 数値の前の「 ' 」を一括...
-
彼女のことが好きすぎて彼女の...
-
VLOOKUP関数を使用時、検索する...
-
勃起する時って痛いんですか? ...
-
レインボーシックスシージをし...
-
リンク先のファイルを開かなく...
-
MIN関数で空白セルを無視したい...
-
検便を取ったのですが、棒から...
-
値が入っているときだけ計算結...
-
イタリアから帰国する際、肉製...
-
増減表のプラスマイナスの符号...
-
2つの数値のうち、数値が小さい...
-
精液の落とし方を教えてください
-
腕を見たら黄色くなってる部分...
-
小数点以下を繰り上げたものを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
尿検査前日に自慰行為した時の...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
精液の落とし方を教えてください
-
【Excelで「正弦波」のグラフを...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
イタリアから帰国する際、肉製...
-
excelでsin二乗のやり方を教え...
-
腕を見たら黄色くなってる部分...
-
病院側から早く来てくださいと...
-
ワードのページ番号をもっと下...
おすすめ情報