• ベストアンサー

バッチファイルでの特殊文字列削除方法

バッチファイルでの特殊文字列削除についてです。 count.txt "2011/05/23 11:54 xxxxxxxxxxxxxxx" の一行のみ格納してあります。 最初と最後の””(ダブルクオート) のみ削除し上書き保存したいです。 できれば外部ソフトを使わずにバッチ処理で解決したいです。 いろいろ調べましたがうまく削除できないため 教えていただきたいと思います。 よろしくお願いします。

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

  • ベストアンサー
  • dscripty
  • ベストアンサー率51% (166/325)
回答No.1

一つしかない count.txt を手動ではなくバッチファイルで操作する意図はわからないけれど。。。 下のバッチファイルを作成すればできるよ。 作成したバッチファイルは count.txt と同じフォルダで実行してね。 [count.txtの内容の先頭と最後の一文字を削除する.bat] @Echo Off REM - count.txt の内容を COUNT 変数に代入 For /F "usebackq" %%i In (count.txt) Do Set COUNT=%%i REM - 先頭の一文字を削除 Set COUNT=%COUNT:~1% REM - 最後の一文字を削除 Set COUNT=%COUNT:~0,-1% REM - 結果を count.txt へ書込 Echo.%COUNT%>count.txt

hamuwawa
質問者

お礼

ありがとうございます。無事この方法で完了しました。 一分ごとに更新されているファイルを随時抜き出して保存、整形利用しています。 助かりました。

その他の回答 (2)

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.3

[ANo.2] さん突っ込みありがとう! > For /F "usebackq tokens=*" %%i In ( count.txt ) Do Echo %%~i>count2.txt > > の1行でいけますよ。 確かに! 以下「For /?」からの引用。 | また、FOR 変数参照の置換も拡張されました。 | 次のオプション構文を使うことができます: | | %~I - すべての引用句 (") を削除して、I を展開します。 > tokens=*をつけないとスペースで区切られたところで切れてしまいます。 確かに! 以下「For /?」からの引用。 | tokens=x,y,m-n - 各繰り返しに対して、各行から for 本体に渡すトー | クンを指定します。これにより、追加の変数名が割り当 | てられます。m-n の形式は範囲で、m 番目から n 番目の | トークンを指定します。tokens= 文字列の最後の文字が | アスタリスクである場合は、追加の変数が割り当てられ、 | 最後のトークンが解析された後、行に含まれている残り | のテキストを受け取ります。 tokens=* もつけてね!

回答No.2

For /F "usebackq tokens=*" %%i In ( count.txt ) Do Echo %%~i>count2.txt の1行でいけますよ。 tokens=*をつけないとスペースで区切られたところで切れてしまいます。

hamuwawa
質問者

お礼

ありがとうございます。 dscriptyさんの方法でうまくいきました。 何かの時にこちらの方法も試してみます。 ありがとうございました。

関連するQ&A