
お世話になっております
バッチファイルの、文字列操作で
----------------------------------------------------------
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- Windows 10 Windowsのバッチファイルで正規表現の置換方法について… 4 2022/12/09 16:00
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(プログラミング・Web制作) python pandas 行ごとに列名(列番号)を指定して抽出したい 1 2023/05/26 13:47
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) vbaで列幅について 1 2022/11/15 08:31
このQ&Aを見た人はこんなQ&Aも見ています
-
バッチで118項目のCSVを処理したいですが。。。
その他(開発・運用・管理)
-
バッチでCSVを処理する時、空の項目があった場合
その他(プログラミング・Web制作)
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
-
4
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
5
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
6
バッチでcsvファイルの指定のカラムを編集したい
その他(プログラミング・Web制作)
-
7
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
8
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
9
バッチファイルで変数の中身をファイル出力したい
UNIX・Linux
-
10
DOSコマンドのFOR文で空白を含むファイルパスの指定方法
UNIX・Linux
-
11
echoの出力の最後のスペースを除去したい
iOS
-
12
バッチ処理 特定の文字以降をリネーム
Ruby
-
13
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
14
Dosブロンプトでtabを出力したい
その他(プログラミング・Web制作)
-
15
コマンドプロンプトで変数が数字であることを判定する方法
その他(プログラミング・Web制作)
-
16
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
17
コマンドプロンプト フォルダ内のCSVファイルの読み込み
その他(プログラミング・Web制作)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
腕を見たら黄色くなってる部分...
-
精子に血が・・・
-
精液の落とし方を教えてください
-
イタリアから帰国する際、肉製...
-
【Excelで「正弦波」のグラフを...
-
風俗店へ行く前のご飯
-
EXCELで式からグラフを描くには?
-
この赤い斑点は何でしょうか。 ...
-
excelでsin二乗のやり方を教え...
-
ミルクティーが好きなのに気持...
-
尿検査前日に自慰行為した時の...
-
鏡についてです。自分の体型を...
-
レインボーシックスシージをし...
-
VLOOKUP関数を使用時、検索する...
-
ワードのページ番号をもっと下...
-
足がまだら模様になります。ど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
至急!尿検査前日にオナニーし...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
尿検査の前日は自慰控えたほう...
-
MIN関数で空白セルを無視したい...
-
小数点以下を繰り上げたものを...
-
風俗店へ行く前のご飯
-
エクセルで空白セルを含む列の...
-
Excel 数値の前の「 ' 」を一括...
-
【Excelで「正弦波」のグラフを...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
ある範囲のセルから任意の値を...
おすすめ情報