バッチファイル作成時に初心者/独学さんがはまる動かない罠。
記事の執筆に AI な類は使用しておりません。
【 目次 】
はじめに説明的なバッチファイルのダウンロード
ファイルの拡張子が .bat.txt
forでファイルが読み込めない
文字コードを変換
他の言語でアプリを作っている場合
おすすめリンク/関連記事
はじめに
皆様は、Windows でバッチファイル ( .bat ) を作成しますか?勉強中だよ!という人もいるかもしれませんね。
頼もしいことです。
私も自分がやろうとする事は、自分で書いていますが
初心者さん/独学さんからみて
どうしても動かない?てきな詰まる/はまる罠といいますか。
ブログネタです。
【 目次へ戻る 】
説明的なバッチファイルのダウンロード
説明の前にバッチファイルをダウンロードできます。これは、ここで説明しているお話の例を
実例としてバッチファイルにて作ったよ!的な。
Bat_txt v1.00.zip ( 2021/03/07 )
MD5:6B98865671B5336377BC3093D51D3289
ファイルはすべてメモ帳へドラッグすれば
内容を確認できます。
*** ご注意 ***
ブログに書いてあることや
ブログで配布しているファイルを使用する場合は
自己責任にてお願いいたします。
このブログの管理者 気ままさん は
ブログに書いてあること、ブログで配布している
ファイルを使用して発生した
すべての事柄において責任を負いません。
これに同意をいただけない方へのご使用は許可いたしかねます。
【 目次へ戻る 】
ファイルの拡張子が .bat.txt
さて、最初はバッチファイルを作成しようとしてネットなどのコマンドをそのままコピペしても
メモ帳が開いてしまうという初心者あるある。
簡単に説明すると、ファイルの拡張子という区別するもの。
.txt なら テキスト
.bmp / .jpg / .jpeg / .gif / .png なら画像
.avi / .mpg / .mpeg / .mkv / .mp4 なら動画
そして .bat / .cmd ならバッチファイル
メモ帳で作る場合にそのまま保存すると
.bat ではなく .txt で保存してしまうのです。
種類が違うのでメモ帳などが開いてしまう。
それを防ぐにはメモ帳を保存するウィンドウで
1.ファイル名は 適当な名前.bat と最後尾に .bat を追加する
2.必ずファイルの種類は すべてのファイル に
3.文字コードは ANSI に

これを守るだけでバッチファイルになります。
起動すると黒い画面、コマンドプロンプト ( cmd.exe ) が出ます。
これで超初心者は脱しました。
おめでとうございます!
ちなみに、2.を選択しないと 適当な名前.bat.txt と
最後尾が .txt となってしまい、テキスト扱いになります。
脱超初心者は適いません、もう一踏ん張りです!
上の配布しているファイルを解凍して
拡張子txtをbatに変換 のバッチファイルを使うと
最後尾の .txt を .bat に変換いたします。
【 目次へ戻る 】
forでファイルが読み込めない
上の超初心者的なお約束さえ学んでしまえばあとはネットで書き込んである情報を組み立てるだけですね。
私やこのブログの出る幕ではない。
そもそも私もそんなに腕があるわけではなく。
以下はあまり注意書きとして書いていない。
その筋の学校や教材であれば書いてあるかもしれなく
知っているべきなのだが
初心者や独学が詰まる、原因がわかりにくいものを。
for を外部ファイルのテキスト内容を読む場合は
Shift-JIS でないと読み込まない。
テキストを2つ用意して、一つは UTF-8 、
もう一つは Shift-JIS にて保存して for で読み込みます。
前者はどうやっても読めなく、後者は読めます。
UTF のファイル形式系は読めません。なので
・ファイルの位置が悪いのか?
・"" で囲うのか?
・遅延環境変数を使わないと駄目?
・変数に代入するのか?
・%% を !! にしても動かないぞ?
それとも他の設定があるのか?
迷いに迷いまくってしまい数時間単位で時間が奪われる地獄。
特にバッチファイル形式でテキストに出力したファイルは
バッチファイルで出力したのだからそのまま読めるはずという
エンコードが違って読めないとは夢にも思わないので
何気に初心者殺しです。
親切なサイト様であれば書いてあると思いますが
通常サイトであるとほぼメモ的な事なので
ここまで書いてあるは希です。
サイト様の管理者が悪いではなく
自分と訪問者様とで、やる事が違うので
そもそも想定をしていない話なので求めるのは酷。
上の配布しているファイルを解凍して
for のバッチファイルを使うと
Shift-JIS.txt のファイルは内容が出るのに
UTF-16.txt のファイルは内容は出ないの見本ファイルになります。
【 目次へ戻る 】
文字コードを変換
上にて、for で外部のテキストファイルを読み込む場合に文字コードを Shift-JIS へ変更しましょう。
ではありますが、バッチファイルで動作中に
どうやって変換するねん!
バッチファイルで出力したて、ホヤホヤやねん!
( なぜかエセ大阪弁 )
になりますが powershell で変換可能。
バッチファイルでファイルを出力 →
powershell で変換 → for で読むという流れになります。
上の配布しているファイルを解凍して
文字コード変換 UTF-8からShift-JISに変換 の
バッチファイルを使うと UTF-8 のテキストが
Shift-JIS に変換されます。
【 目次へ戻る 】
他の言語でアプリを作っている場合
以下は、初心者さんではなく複数の言語といいますか開発環境を使っている場合など。
プログラムの開発言語によりますが
バッチファイルとある程度共通しているものがあり
バッチファイルだと
GOTO :a_001
この様に書きますが、とある開発言語では
GOTO *a_001
と書きます、バッチファイルで GOTO *a_001 とやると
この行の時点で急にコマンドプロンプト自体が落ちます。
どこかの行が悪いのか?と確認していって
どこも悪くなく、数時間悩んだあと
上の書き間違えを発見するとこれまた地獄であります。
同じくバッチファイルでは
IF EXIST "R:\001.txt" echo 存在
とある開発言語では
IF EXIST "R:\001.txt" : mes "存在"
:が、ついている/いないかではありますが
混じって書いてしまうと、とても判別しづらい。
特に終了間際でこれらが入ってしまうと
エラーで終了しているのか正常終了しているのか
勘違いしていて、後に??となり本当に地獄です。
-----
とまあ、数は少ないですけれど
あまり書いていないことを。
ほか、色々は他者様のブログなどを見れば探せば
やりたい似たようなことが書いてあるので。
あとは根性と、頭の中で応用できるかの
パズルの組み立てでしょうか?
バッチファイルは便利ではありますが
大小細かいルールがあり、
○○は出来ないなども追加され
頭の中がパニックになるわけではありますが
自分のやりたいことだけ、学んでいけばいいので
無理して自分のやろうとする範囲外は学ばなくて大丈夫。
私も、自分のやる事の範囲外は全く知りません、エッヘン!
( 威張ることではない )
ですので、コメント欄に
○○をしたいのですがどうした方がいいですか?
という質問は、申し訳ありませんがご容赦ください。
わかりません!と書くのは簡単ではありますが
とても、とても私は後味が悪いので。
それでは、皆様にプログラムの筆が進むよう
プログラムの神様にお願いをいたしまして
これにて終了です。
以上。
おすすめリンク
・Amazon関連リンク
・1つのバッチファイルを複数のパソコンで使用し個別動作をさせる。・バッチファイル 入力した名前でテキストを作りメモ帳で開く。
・WinRARでパスワード付きファイルを解凍後パスなしで再圧縮 バッチファイル
・WinRAR で世代管理バックアップ&最新ファイルを
自動選択で復元 バッチファイル
・資格情報マネージャー に資格情報 (汎用資格) をバッチファイルで登録
・【簡単】 Win10 バッチファイルでドライブレターを変更 diskpart 不使用
・ブログ用 ドラッグしたファイルを自動リネームするバッチファイル
・IrfanView で画像サイズを変換、真ん中で横2分割するバッチファイル
・リストから特定文字を含む行を抜き出すバッチファイル
リンクの貼り付けを楽に
・7-ZIP バッチファイルで指定フォルダを日付つきバックアップ、復元
・ドラッグしたファイルを ( 拡張子別 )
任意のアプリを選択し起動するバッチファイル
・Win10 ディスプレイの電源が自動でOFFされONにしたら音が鳴らない devcon
・圧縮書庫に ( ZIP/RAR ) 特定の拡張子が存在したら表示するバッチファイル
・バッチファイルを ( コマンドプロンプト/cmd.exe ) 最小化/最大化/通常サイズで起動
・現在開いているフォルダでコマンドプロンプトを呼び出す/カレントディレクトリ移動不要
・バッチファイルへドラッグすると日時を付加してバックアップフォルダへコピー
・RAR.exe/WinRAR.exe でバッチファイルを実行ファイル形式にする方法
・バッチファイルへファイルをドラッグすると拡張子で分別しコピー/移動 ( 自動リネーム付き )
・ドラッグしたファイルをコピー先に存在する物のみ上書きするバッチファイル
・テキストに記載したバッチファイル命令を実行する/実行しないの選択が可能なバッチファイル
・Win10 ネットワークの状態 ( アダプタ ) が有効/無効かの確認と切り替えをするバッチファイル
・指定年度の1年分の日付テキストファイル ( 毎日/366個 ) を出力するバッチファイル
・バッチファイル choice や set /P でキーボードで選択や文字入力したらウィンドウを最小化する
- 関連記事
-
- Win10/Win11 指定フォルダ内にある今日の日付フォルダを開くバッチファイル (2023/06/23)
- SSD の書き込みを減らすために HDD のフォルダをシンボリックリンク設定し呼び出す。 (2023/05/08)
- 秀丸エディタ 正規表現で文字を検索し、指定範囲の文字を同期/置換するマクロ (2022/11/22)
- VeraCrypt 日本語化/使用方法/コンテナのマウント/アンマウントをバッチファイルで行う (2022/09/23)
- バッチファイル choice や set /P でキーボードで選択や文字入力したらウィンドウを最小化する (2022/08/05)
- 指定年度の1年分の日付テキストファイル ( 毎日/366個 ) を出力するバッチファイル (2022/06/25)
- バッチファイルに文字を渡すと指定ブラウザ・検索サイトで渡した文字を検索する (2022/05/21)
- 秀丸エディタ 作業中テキストのファイル名と行数を記載したバッチを作成し実行で指定行へ (2022/05/12)
- Win10 ネットワークの状態 ( アダプタ ) が有効/無効かの確認と切り替えをするバッチファイル (2022/04/29)
- テキストに記載したバッチファイル命令を実行する/実行しないの選択が可能なバッチファイル (2022/04/25)