まとめ

バッチファイルの作成 | JavaDrive

シェルスクリプトに慣れた人に贈るバッチファイルの書き方 | hymkor

バッチメモ | ひしだま’s ホームページ

リダイレクト/パイプ/文字列の操作/ファイルの操作まとめ | Web Creators Hub

分岐と選択でまとまるバッチファイルの作成 | Kibekin Blog

Tips

バッチファイルを書くときに気をつけていること – Qiita

バッチファイルでの試行錯誤を回避するためのメモ – Qiita

安全なバッチファイルを書くために | hymkor

cmd.exe のコマンドラインの仕様を解析してみた | 永遠に未完成

バッチファイルの置かれたディレクトリを取得する

参考:

「%~dp0」とは | ぺんたん info

「%~dp0」を理解すれば、バッチ中でディレクトリ名やファイル名を自由に使えるから便利 | ぱーくん plus idea

How to call a batch file that is one level up from the current directory? – Stack Overflow

Get the path two directories up in batch file – Stack Overflow

how to navigate in range of parent folder without full path? – Super User

引数からファイル名を取得する

  • %~nx1 ファイル名と拡張子
  • %~x1 拡張子のみ
  • %~n1 拡張子を取り除いたファイル名

参考:

バッチファイルで basename – Qiita

ゼロ埋め

数字をゼロ埋めして4桁の文字列にフォーマットする。

setlocal enabledelayedexpansion
for /L %%i in (1, 1, 10) do (
    set "n=0000%%i"
    set "n=!n:~-4!"
    echo Loop_!n!
)

参考:

バッチファイルでゼロ埋めをする時に遅延展開でハマった – Qiita

引数の数を判定する

参考:

バッチ起動時の引数の個数の数え方 | DOS プロンプト活用相談室 LOG

バッチファイル内で引数が渡されているか確認するサンプルプログラム | FAQ Center

日時を出力する

echo コマンドで日時を表示する。

>echo %DATE% %TIME%

参考:

date / time – 日付と時刻 | 知識ゼロからの Windows バッチファイル超入門

コマンドの実行結果を変数に入れる

こちらのページを参照

参考:

コマンド実行結果を環境変数に代入する方法 – Qiita

cmd.exe で Bash のバックティックのようにコマンドの出力を埋め込む – Qiita

バッチファイルでコマンドの実行結果を変数に格納する | まくまくノート

コマンドの実行結果を変数にセットする | コマンドプロンプトの予感

バッチファイルでコマンド出力展開 | 幸熱日記

変数に空白文字を追加する

参考:

バッチファイルの環境変数定義の際、頭に空白を入れたい – Microsoft Technet フォーラム

特定のプロセスが起動しているか確認する

参考:

バッチファイルでプロセスチェックを行う方法 | 俺の開発研究所

管理者権限で実行する

管理者権限でバッチファイルを実行した場合、システムディレクトリから実行される。

C:\Windows\System32

参考:

バッチファイルを管理者として実行した場合のカレントディレクトリ | シスメモ

管理者として実行するバッチファイルを作るときの注意事項 | マコトのおもちゃ箱

バッチファイルを管理者として実行したときの問題点と回避方法 | サラリーマン IT 技術者の調査レポート

管理者権限で実行されているか判定する

参考:

PowerShell やバッチファイルで管理者特権をチェック – Qiita

管理者権限で実行しているか判定する | ぱそまき

how to check for admin rights – Stack Overflow

How to detect if CMD is running as Administrator/has elevated privileges? – Stack Overflow

ファイルのパスに空白が含まれるとエラーになる

参考:

バッチファイルでのスペースを含んだ文字列の取り扱い | 知識ゼロからの Windows バッチファイル超入門

CMD.exe でパス名に空白が入ってどうしても解決できないときのオカルト技 – Qiita

コマンドプロンプトで「コマンドの構文が間違っています」というエラーになります – Yahoo! 知恵袋

日本語が文字化けする

文字コードに「UTF-8」を使用する。

chcp 65001Code language: DOS .bat (dos)

または、「Shift-JIS」を使用する。

chcp 932Code language: DOS .bat (dos)

ドキュメント:

コードページ識別子 | Microsoft Docs [公式]

参考:

CHCP – 文字コードの設定 | JavaDrive

UTF-8 のバッチファイルが文字化けする時の対処 3選 | なゆたり

chcp | Programming Field

バッチファイルが文字化けする原因 | そまちょブログ

文字コードを変更する方法を解説します | たいらのエンジニアノート

コマンドプロンプトで bat ファイルを実行したら文字化けする | t8

特殊文字/ダメ文字

ファイル名に使えない文字
  • < 小なり記号
  • > 大なり記号
  • : コロン
  • " 二重引用符
  • / スラッシュ
  • \ バックスラッシュ/円記号
  • | 縦棒
  • ? 疑問符
  • * アスタリスク
特殊文字

パスに含まれる場合、クォーテーションで囲う必要がある。

  • & アンパサンド
  • () 丸括弧
  • [] 角括弧
  • {} 波括弧
  • ^ キャレット
  • = イコール
  • ; セミコロン
  • ! 感嘆符
  • ' 引用符
  • + 正符号
  • , コンマ
  • ` バッククォート
  • ~ チルダ

ドキュメント:

ファイル/パス/名前空間の名前付け | Microsoft Learn [公式]

参考:

バッチファイルを書くときに気をつけていること – Qiita

バッチファイルでファイル名に感嘆符があるときの処理 – Qiita

Windows でファイルやフォルダーに使わない方がいい文字 | ASCII.jp

ダメ文字一覧表 | fudist

日本語ファイル名が扱えない

現象:

指定したファイルが見つからない旨のエラーが発生して、ファイルが処理できない。

File Not Found
The system cannot find the file specified.

原因:

ファイルのパスに含まれている日本語が文字化けしている。

対処法:

  • 全体を通して、適切な文字コードを使用する。
  • 「Shift-JIS」を使用する。
手順
  1. バッチファイルの文字コードを Shift-JIS に設定して保存する。
  2. バッチファイル内で実行時に使用する文字コードを指定する。

使用する文字コードを「Shift-JIS」に切り替える。

chcp 932

参考:

バッチファイルを起動すると文字化けする現象の対策 – Qiita

バッチで日本語ファイルが開けない/文字化けする時の対処法 | Web Work Plus

コマンドプロンプトで bat ファイルを実行したら文字化けする | ライトリ

コマンドプロンプトで漢字表記のシステムファイルが扱えない – Visual Studio フォーラム

UTF-8

参考:

Windows 11、Windows 10 の 21H2 からファイル名の文字コードの扱いが UTF-8 に | エーオーシステム

ファイルの文字コードを変換したい

参考:

えっ、UTF-8 じゃなくて Shift-JIS で? お手軽文字コード変換方法まとめ | @IT

tee コマンド

参考:

tee コマンド – Qiita

バッチファイルで作る tee コマンド | Windows Script Programming

コマンドプロンプトで画面出力した上でログにも出力したい – スタック・オーバーフロー

ZIP ファイルを作成する

  • PowerShell の Compress-Archive コマンドを呼び出す。

ドキュメント:

Compress-Archive – PowerShell | Microsoft Learn [公式]

参考:

Compress-Archive – コマンドラインで ZIP ファイルを作成する | まくろぐ

コマンドで ZIP ファイルを作る | softel メモ

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA