コマンドプロンプトでFOR /F "delims=にタブを入れたいが、 タブが補完キーに解釈されて、入力できない場合は、 サブシェルを開いて一時的に、補完を無効にする。 CMD /F:OFF FOR /F "delims=タブ EXIT 環境変数にタブ文字を設定しておいて置換する。 FOR /F "delims=" %0 IN ('TYPE CON') DO SET tab=%0 (タブ)(改行) ^Z FOR /F "delims=%tab%
※ 見ての通り記事がだいぶ古いです。更新しておりません。エラーが発生する可能性があります。悪しからず。 Windows バッチファイルでファイルの内容を読み込みたい。 一行ずつ読み込んだデータをコンソールに出力してみる。 @echo off FOR /F "delims=" %%a IN (sample.txt) DO ( @ECHO %%a ) ※ delims オプションは区切り文字を設定 ※ 既定の区切り文字はスペース(半角・全角)とタブ 下記を追加してみる。 詳細 sample.txt のデータは半角カンマ区切りで作成する 各行の 1 番目と 3 番目のトークンを出力する @echo off FOR /F "tokens=1,3 delims=," %%a IN (sample.txt) DO ( @ECHO %%a %%b ) ※ %a は for 文で明示的に宣言される ※ %
ファイル内の文字列置換 test.txt --------------------------- aiueo,kakikukeko あいうえお,かきくけこ --------------------------- カンマをハイフンに置換 cmd /v:on for /f %i in (test.txt) do @set test=%i&echo !test:,=-! <実行結果> aiueo-kakikukeko あいうえお-かきくけこ <解説> cmd /v:on で遅延環境変数の展開を有効にしてから行う for /f %i in (test.txt) do コマンド で、test.txtの内容を1行ずつ%i環境変数にセット (バッチファイルの場合は%%iとなる) setの前に@を付けるとコマンドのエコーが表示されなくなる。 遅延環境変数の場合は!で括る 環境変数の:,=-はカンマをハイフ
forステートメントの最大の拡張機能ともいえるのが“/F”オプションによるファイル解析による繰り返し処理である。これは、括弧内で指定されたファイルの内容を解析して、それを変数に代入したうえで、コマンドを繰り返し実行する機能である。書式としては、
今まで、コマンドプロンプトと一貫して呼んできましたが、Win98 までは確か 「MS-DOS プロンプト」 って言われていました。そして、Win2000 から 「コマンドプロンプト」 って呼ばれるようになりました。一体何が変わったのでしょう? って、さも知ったように書いてますが、詳細までは解かりません (^^; が、その実体が command.com から cmd.exe に変わり、機能が追加されたことは解かります。 メニューの 「コマンドプロンプト」 を右クリックしてプロパティを表示すれば、何が起動されているか調べられますよ。 cmd.exe だと思いますが・・・ /? でヘルプを表示したとき、拡張機能がどうの・・・って、よく出てきますよね。これも追加された部分です。デフォルトではこの拡張機能は ON なので、cmd.exe では使用して問題ありません。これに関しては既に色々使ってきまし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く