- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Windows/コマンドプロンプト へ行く。
変数 †
変数 †
遅延変数 †
配列 †
文字列処理 †
抽出 †
%変数:~開始,文字数%
set var=This is a sample echo %var:~1,3% @rem => his set var=あいうえお echo %var:~1,2% @rem => いう echo %var:~-1% @rem => お echo %var:~-2% @rem => えお echo %var:~0,-2% @rem => あいう
置換 †
%変数:置換対象文字=置換後文字%
set var=あいうえお echo %var:あ=か% @rem => かいうえお echo %var:*お=か% @rem => か echo %var:*う=か% @rem => かえお
リテラル †
エスケープ †
エラーレベル †
- コマンドの終了コードは、%ERRORLEVEL%で確認できる。0~255の範囲。
- 0は成功、not 0は失敗。失敗は、通常1で表現される。
@echo off dir >NUL && echo success echo ERRORLEVEL: %ERRORLEVEL% type error.cat >NUL|| echo file not found echo ERRORLEVEL: %ERRORLEVEL%
制御構造 †
条件分岐 †
繰り返し †
コマンド呼び出し †
CALL †
START †
プログラム例 †
batからJScriptを実行 †
こんな使い方があるのか、知らなかったが便利なので備考録として書く。 JScriptの @if @endで、囲まれたところまでをbatプログラムとして実行するという方法。
@if(0)==(0) Echo Off @rem 上記はJScriptでfalseのため実行されない @rem 自分自身をJScriptとして実行、引数は全てそのまま渡す CScript //NoLogo //E:JScript "%~f0" %* @rem Begin Windows Batch @rem ------------------------------ Exit /b @rem ------------------------------ @rem End Windows Batch at next line @end @end /* メモなど(JScriptコメント) */ // JScriptコード // Do something
参考
( ) の中での ( ) のエスケープしてパイプでつなげる †
^
キャレットが3つ必要、パイプでcmdに送られるコマンドでエスケープが必要となるためだ。
@echo off echo create table if not exists foo (id int) | psql -a @rem Ex1: この方法はOK echo ^ insert into foo (id) values (9); ^ delete from foo; | psql -a @rem Ex2: )を^^^)でエスケープする必要あり ( echo insert into foo ^(id^^^) values ^(9^^^); )| psql -a
Ex2は可読性が悪い。。複数コマンドをつなげる場合は、Ex1の方法が良いだろう。
参考
- https://stackoverflow.com/questions/12976351/escaping-parentheses-within-parentheses-for-batch-file
- https://stackoverflow.com/questions/8192318/why-does-delayed-expansion-fail-when-inside-a-piped-block-of-code
コマンドプロンプトキー一覧 †
よく使うコマンドプロンプトのキー一覧。
キー | 意味 |
---|---|
ESC | 現在入力のコマンドをクリア |
Page up | コマンド履歴の先頭を表示(F7で見える最初) |
Page down | コマンド履歴の最後を表示(F7で見える最後) |
Home | カーソルを行頭に移動 |
End | カーソルを行末に移動 |
Tab | 補完 |
↑ | 前のコマンド |
↓ | 次のコマンド |
Ctrl + Home | カーソル位置から行頭までを削除 |
Ctrl + End | カーソル位置から行末までを削除 |
Ctrl + → | 単語単位で右に移動 |
Ctrl + ← | 単語単位で左に移動 |
F7 | 履歴表示 |
F9 | 履歴番号を指定してコマンド実行 |
役立つリンク †
- Bat
- Windows Batch Scripting - on https://en.wikibooks.org/wiki/Windows_Batch_Scripting
- Windows Environment Variables - on https://ss64.com/nt/syntax-variables.html
- バッチファイル基礎文法リファレンス - on https://qiita.com/kshibamo/items/9368b0b2a4a2f40b61f1
- バッチファイルでの試行錯誤を回避するためのメモ - on https://qiita.com/yz2cm/items/8058d503a1b84688af09
- Command-line reference A-Z - on https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands
- Windows 10対応:これだけは覚えておきたいWindowsのコマンドプロンプトの使い方 - on http://www.atmarkit.co.jp/ait/articles/1502/13/news147.html
- キーボードショートカット
- Keyboard shortcuts in Windows - on https://support.microsoft.com/en-us/help/12445/windows-keyboard-shortcuts
- Windows のキーボード ショートカット - on https://support.microsoft.com/ja-jp/help/12445/windows-keyboard-shortcuts
- 34 Useful Keyboard Shortcuts for the Windows Command Prompt - on https://www.howtogeek.com/254401/34-useful-keyboard-shortcuts-for-the-windows-command-prompt/