• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【DOSコマンド】for の デリミタにダブルクォーテーションを使うには)

DOSコマンドでデリミタにダブルクォーテーションを使用する方法

このQ&Aのポイント
  • DOSコマンドのfor文を使用して、テキストファイルからダブルクォーテーションで囲まれた部分を抜き出したい場合、デリミタの指定方法がわかりません。
  • テキストファイルのダブルクォーテーションを置き換えた後に、デリミタの指定がうまくできることを確認しましたが、正しいデリミタの指定方法がわかりません。
  • どなたかデリミタの指定方法についてご教示いただけませんでしょうか。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.1

>ダブルクォーテーションをどうやってデリミタに指定したらいいのかわかりません。 マイクロソフトでは、ダブルクォーテーションをデリミタに指定するのは「想定外」ですので、ダブルクォーテーションをデリミタに指定する事は出来ません。 他のコマンドで、ダブルクォーテーションを他の文字に置換し、その結果に対して操作して下さい。

Take-bon
質問者

お礼

大変遅くなってしまいました。 結局フリーのソフトを使って、デリミタ文字を置き換えることによって実現することが出来ました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バッチファイルで2行にわたるコマンドを入力したいのですが

    バッチファイルで複数行にわたるコマンドを打ちたいのですが、方法がわからなくて困っています。 for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do ( set hinichi=%%a%%b ) "C:\Program Files\Lhaca\Lhaca.exe" "test%hinichi%01.txt" "test%hinichi%02.txt" ・・・・・・・ と31個のファイルを圧縮するバッチです。 体裁の問題ですが、 for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do ( set hinichi=%%a%%b ) "C:\Program Files\Lhaca\Lhaca.exe" ? "test%hinichi%01.txt" ? "test%hinichi%02.txt" ・・・ としたいのですが各行のつなぎの記号?がわかりません。 ご存知の方、よろしくお願いいたします。

  • msdosのfor /fのtokens=の挙動

    Windows7のmsdosのfor /fのtokens=の挙動ですが、 tokens=1,3とした時は1番目と3番目のトークンが取り出され tokens=1-3とした時は1番目~3番目のトークンが取り出される のではないのでしょうか。 例えば、以下のような例の場合、 test1.batでは、 a b d f test2.batでは、 a b c d e f となるように思うのですが 実際には、どちらも、 a b d となり、1番目のトークンしか 取り出されていないのですがなぜなのでしょうか。 ---test.txt--------------------------- a b,c d,e,f ---test1.bat------------------ for /f "tokens=1,3 delims=," %%a in (test.txt) do ( echo %%a ) ---test2.bat------------------ for /f "tokens=1-3 delims=," %%a in (test.txt) do ( echo %%a ) ------------------------------

  • コマンドプロンプトでファイル読み込み

    For文を使って、パラメータファイルから値を読み込みたいのですが、 "C:\Documents and Settings\~"等(パスにスペースが含まれる場合)に置かれた場合、 ファイルを読み込んでくれず困っております。 ()内のファイル指定で、""(ダブルクォーテーション) や'(シングルクォーテーション)で囲むこともしてみましたが、ダメでした。。 どう指定すればよいのかご教授下さい。 よろしくお願いいたします。 【パラメータファイル(tmp.txt)】 ABC=12345 【バッチファイル(test.bat)】 for /F "delims== tokens=1,2" %%A in (D:\tmp.txt) do if %%A==ABC set value_1=%%B echo %value_1% pause

  • DOSコマンドバッチのFOR文の記述

    FOR文で以下のように記述しています。 SET FILENAME=aaa.txt FOR /F "tokens=1,2" %%i IN (revs.txt) DO SET FILENAME=%%i-%%j.txt & echo %FILENAME% echoで直前でSETした値を表示したいのですが、どうしても変化しません。(aaa.txtのまま) ※%i,%jには正しく値が設定されています。 以下を教えてください。 ・FILENAMEに値を設定する方法 ・コマンドが長い場合に改行する方法(もしあれば) よろしくお願いします

  • windows batの一部分を繰り返し実行したい

    以下の部分を繰り返しbatで実行したいのですが、どうすればよいでしょうか? REM 取得したい行数-1を指定 FOR /F "tokens=1-9 skip=%LINE%" %%i in (dakoku_data.csv) DO ( SET B=%%i%%j%%k%%l%%m%%n%%o%%p%%q ECHO %%i%%j%%k%%l%%m%%n%%o%%p%%q>>insert.txt GOTO EXIT_FOR ) :EXIT_FOR ECHO %B% FOR /F "tokens=7-9 delims=," %%i in (insert.txt) DO set RR=%%i%%j if %RR%==000 FOR /F "tokens=1-3 delims=," %%i in (insert.txt) DO set C=20%%i-%%j-%%k if %RR%==000 FOR /F "tokens=4-5 delims=," %%l in (insert.txt) DO set D=%%l:%%m:00 if %RR%==000 FOR /F "tokens=6 delims=," %%i in (insert.txt) DO set E=%%i REM MySQL PATH set PATH="C:\Program Files\MySQL\MySQL Server 5.0\bin" REM CHARACTER ECHO set character set sjis;>__sql.sql REM if %RR%==000 ECHO INSERT INTO `XXX` VALUES ('%E%','2011-11-15 14:33:19', '%C%', '0', '%C%', '%D%', , '8',null, null, , '8', '1', '1', null, '', null);>>__sql.sql

  • バッチ処理(for文)について

    set echo off pause set TEST="1,2,3,4" pause for /f "delims=," %%i in (%TEST%) do echo %%i pause ------------------------------------------- 結果(希望):  1  2  3  4 の様な出力を行いたいのですが、 結果(現実)  1 のような出力になってしまいます。 [TEST]の値は固定(ダブルクォーテーションで囲まれた文字列)で何とか、カンマ区切りで取得したデータの回数、回す事は出来無いでしょうか。 稚拙な文章ですが、宜しくお願い致します。

  • コマンドプロンプトのFOR文がダブルクリックで実行できない

    お世話になります。 まず当方の環境は以下になります。 OS:Windows XP Pro SP2 C:\tempにtest.batというバッチファイルを作成し以下を記述しました。 FOR /F "usebackq delims==" %%i IN (`set`) DO @echo %%i で、このtest.batをダブルクリックすると実行できないんです。 ただしコマンドプロンプトからでは問題なく実行できます。 また別PCではダブルクリック&コマンドプロンプトで問題なく実行できます。 どのようにすれば解決できるのかわからずに困っております。 どなたかアドバイスお願いできますでしょうか。

  • コマンドプロンプトのFOR文がダブルクリックで実行できない。

    コマンドプロンプトのFOR文がダブルクリックで実行できない。 お世話になります。 まず当方の環境は以下になります。 OS:Windows XP Pro SP2 C:\tempにtest.batというバッチファイルを作成し以下を記述しました。 FOR /F "usebackq delims==" %%i IN (`set`) DO @echo %%i で、このtest.batをダブルクリックすると実行できないんです。 ただしコマンドプロンプトからでは問題なく実行できます。 また別PCではダブルクリック&コマンドプロンプトで問題なく実行できます。 どのようにすれば解決できるのかわからずに困っております。 どなたかアドバイスお願いできますでしょうか。

  • FORコマンドで不定期に表示される意味不明なメッセージを回避する方法は?

    (「Windows/Windows Vistaフォーラム/Answersアシスタント」から飛ばされてきました。よろしくお願いします) 以下の様なバッチファイル(for1.bat, for2.bat)を作成して、コマンドプロンプトで何回か実行すると、正常な出力と同時に、不定期に「ファイル が見つかりません。」という意味不明なメッセージが表示されます。 これは何で、どうすれば回避できるのでしょうか? コマンドラインオプションとしてダブルクォートされた文字列を引数にとるバッチファイルを作りたいのですが、 > foo.bat " a""a " のような呼び出し方をした時に挙動がおかしくなったので、その原因を調べていたら、FOR文が時々不可解な動作をしていて、その典型的な例をfor1.batとfor2.batにまとめた次第です。 ---8<---8<---8<---[for1.bat:ここから ]---8<---8<---8<---8<--- @ECHO OFF CALL :SUB "a""a" CALL :SUB " a""a" CALL :SUB "a ""a" CALL :SUB " a ""a" CALL :SUB "a"" a" CALL :SUB "a""a " CALL :SUB "a"" a " CALL :SUB " a"" a" CALL :SUB "a ""a " CALL :SUB " a "" a " CALL :SUB " a""a " CALL :SUB "a "" a" CALL :SUB " a "" a" CALL :SUB " a ""a " CALL :SUB " a"" a " CALL :SUB "a "" a " GOTO EOF :SUB FOR /F "tokens=*" %%a IN ("%1") DO ECHO %%a EXIT /B 0 :EOF ---8<---8<---8<---[for1.bat:ここまで ]---8<---8<---8<---8<--- ---8<---8<---8<---[for2.bat:ここから ]---8<---8<---8<---8<--- @ECHO OFF FOR /F "tokens=*" %%a IN (""a""a"") DO ECHO %%a FOR /F "tokens=*" %%a IN ("" a""a"") DO ECHO %%a FOR /F "tokens=*" %%a IN (""a ""a"") DO ECHO %%a FOR /F "tokens=*" %%a IN ("" a ""a"") DO ECHO %%a FOR /F "tokens=*" %%a IN (""a"" a"") DO ECHO %%a FOR /F "tokens=*" %%a IN (""a""a "") DO ECHO %%a FOR /F "tokens=*" %%a IN (""a"" a "") DO ECHO %%a FOR /F "tokens=*" %%a IN ("" a"" a"") DO ECHO %%a FOR /F "tokens=*" %%a IN (""a ""a "") DO ECHO %%a FOR /F "tokens=*" %%a IN ("" a "" a "") DO ECHO %%a FOR /F "tokens=*" %%a IN ("" a""a "") DO ECHO %%a FOR /F "tokens=*" %%a IN (""a "" a"") DO ECHO %%a FOR /F "tokens=*" %%a IN ("" a "" a"") DO ECHO %%a FOR /F "tokens=*" %%a IN ("" a ""a "") DO ECHO %%a FOR /F "tokens=*" %%a IN ("" a"" a "") DO ECHO %%a FOR /F "tokens=*" %%a IN (""a "" a "") DO ECHO %%a ---8<---8<---8<---[for2.bat:ここまで ]---8<---8<---8<---8<---

  • forコマンドのdelimsオプションで「","」を指定したい

    以下のような データにコンマが含まれる(単価の項目)CSVファイルから 特定の列を抽出したCSVファイルを作ります。 "顧客ID","住所(送先)","商品ID","商品名","単価","数量","出荷日", "001","○○市○○町○○","202","□□","1,500","10","2009/7/7" "顧客ID","住所(送先)","商品ID","商品名","単価","数量","出荷日", "002","○○市○○町△△","503","◎◎","1,980","5","2009/7/6" 現在は以下のようなバッチファイルで対応しています。 @echo off :顧客ごとのヘッダ情報の行を削除 type syukjnminohyo.csv | find /v "顧客" > temp1.txt :ファイルデータを環境変数に代入し :subでデータの区切りである「","」をタブに変換 for /f "tokens=1,* delims=" %%a in (temp1.txt) do ( set line=%%a call :sub ) :タブを区切りとして特定の列を抽出 for /f "tokens=1,2,5,6 delims= " %%a in (temp2.txt) do ( @echo "%%a","%%b","%%c","%%d" >> out.txt ) :sub set line=%line:","= % echo %line:"=% >> temp2.txt 途中でファイルも作られるなど エレガントでない部分が多いため 皆様のお力をお貸し頂きたく質問いたしました。 よろしくお願いします。

このQ&Aのポイント
  • LX10000Fのランニングコストについて知りたいです。
  • EPSONのLX10000Fのランニングコストを教えてください。
  • LX10000Fのランニングコストに関する情報を教えてください。
回答を見る