#author("2023-07-07T04:48:52+00:00","default:hotate","hotate") #author("2024-01-10T12:12:17+00:00","default:hotate","hotate") #contents &tag(Windows,コマンド); * 全般 [#p7995c90] - [[JenkinsユーザのためのWindowsバッチコマンド入門 - secretbase.log>http://cointoss.hatenablog.com/entry/20111213/1323702126]] Jenkinsでバッチコマンドを実行する場合、戻り値が重要です。 ビルドステップでのシェルやバッチでは、戻り値が0の場合、成功、それ以外は失敗と判断されます。 呼び出したバッチファイルやコマンドの戻り値は、環境変数のERRORLEVELに入りますのでそれで判定します。 - [[Windows&Mac両対応コマンド大事典:ITpro>http://itpro.nikkeibp.co.jp/atcl/column/15/042000103/?TOC=1]] - [[Windowsエクスプローラからコマンドプロンプトを一瞬にして開く方法 | ライフハッカー[日本版]>https://www.lifehacker.jp/2013/03/130320windows_cmd.html]] アドレスバーに「cmd」と入力するだけ。現状のフォルダへのパスが設定された状態で、すぐにコマンドプロンプトが表示されます。 * ファイル [#t37bd985] - [[ファイル数をコマンドで確認する(Windows):こっそりと。 - livedoor Blog(ブログ)>http://dynamic-one.com/archives/51570472.html]] dir /A-D /S /B | find /c /v "" /B ファイル名のみを表示します。(見出しや要約が付きません) /S 指定されたディレクトリおよびそのサブディレクトリのすべてのファイルを表示します。 ** サイズ [#f4e08216] - [[dosコマンド意外と知られてないこと パラメータ抽出 - yshのメモ日記>http://d.hatena.ne.jp/yshgt/20080619/1214721173]] - [[[バッチファイル]ファイルサイズを表示: へっぽこSEのメモメモ>http://heppoen.seesaa.net/article/152552693.html]] for %%i in ([ファイル名]) do echo %%~zi echo %~z1 (※バッチファイルの第1引数に指定した場合の例) - [[ファイルサイズが0かどうかの判定方法 (DOSプロンプト活用相談室LOG)>http://fpcu.on.coocan.jp/dosvcmd/bbs/log/cat3/if/4-1172.html]] for %%F in (ファイル名) do if %~zF==0 goto SIZEZERO - [[演算子 - コマンドプロンプトを使ってみよう!-バッチファイル->http://ykr414.com/dos/dos05.html]] -- ">"ではなく"GTR"を使う。 * フォルダ [#ofcd7342] - [[batch - 【バッチファイル】ファイル数のカウント【備忘録】 - Qiita>http://qiita.com/koryuohproject/items/0e485711e683db7053ba]] set /a counter=0 rem for /r にすると その下のものすべて対象 for %%A in (*) do ( if exist %%A (set /a counter=counter+1) ) - [[Dドライブに移動する - ねもぷらす>http://nemoplus.hateblo.jp/entry/20090130/1233321806]] もしくは /d スイッチを使う。 C:\> cd /d D: D:\> または pushd コマンドを使う。 pushd なら popd コマンドで元のフォルダに戻れるし、ネットワークフォルダを勝手にマウントしてくれる優れモノ。 - [[バッチでフォルダを作る際に存在チェックを行う | LaF-Tech>https://tech.la-fra.com/2019/01/24/post-484/]] If not exist フォルダ名 mkdir フォルダ名 * MOVE [#e0eb0749] - [[MOVE = ファイルやフォルダーを移動する - Windowsのコマンドプロンプト(bat,cmd) - to_dk notebook>http://tounderlinedk.blogspot.jp/2011/02/move-windowsbatcmd.html]] ファイルの無い所では、ワイルドカードは使用出来ません。 * RMDIR [#ec0498c2] - [[コマンドで指定したフォルダの中のファイル・フォルダーをすべて削除する方法 - Windows - Project Group>https://www.projectgroup.info/tips/Windows/cmd_0004.html]] 指定したフォルダは残して、その中のファイル・フォルダをすべて削除する場合は指定したフォルダの中のフォルダを順に rmdir する必要があります。 * fsutil [#rd93ecbb] - [[【Windows】ディスクの空き容量を取得するコマンド(+ディスク情報を取得する) | Correct-Log —コレログ—>https://correct-log.com/windows-get-free-space-by-commandline/]] ディスク容量を確認する以外にもたくさんのオプションがあります。ですが、空き容量を確認するためだけならば、下記のコマンドで十分です。 fsutil volume diskfree c: * GNU [#o86b43a0] - [[Windows用Linuxコマンド集「Gow」 - MOONGIFT>http://www.moongift.jp/2010/07/gow/]] * [[utf-8]] [#d24b679d] - [[Windows7でUTF-8のコンソール | 悠雀堂>http://wsf.mot.or.jp/yujakudo/develop/utf8-console-on-windows7/]] Windows7のcmd.exeはUTF-8での日本語表示は正式対応していないようです。FineView Software Labsさんの、「雑技>エディタ/ コンソール」のページの「コマンドプロンプト と Unicode」の章には、貴重なトライアルの様子が書かれています。 - [[コマンドプロンプトでUTF-8に設定する方法 - Yahoo!知恵袋>http://note.chiebukuro.yahoo.co.jp/detail/n312780]] UTF-8にして生じた問題点 × 日本語などが入力できなくなる。 - [[UTF8を表示するコマンドプロンプトを作ってみた : 実験ぶろぐ(仮)試供品>http://needtec.exblog.jp/20521120/]] WindowsでPythonとかを使っているとUTF8の文字が化けて出力されて厳しいので、コマンドプロンプトの出力をUTF8に変換する コマンドプロンプトもどきをつくってみた。 * 実行結果 [#i89aa29f] - [[コマンドプロンプトの errorlevel を確認してエラーなら処理を終了する方法 - HIDARI日記(右)>http://hidari-lab.hatenablog.com/entry/2016/04/24/113317]] if not %errorlevel% == 0 exit 1 というように展開した上で文字列での比較を行うことで「0ではないとき終了」するようになります。 - [[【bat】Windowsのバッチファイル(*.bat)の書き方自分用まとめ - Qiita>https://qiita.com/sksmnagisa/items/8c4c1788af44cc1dc63a]] 呼び出したバッチの戻り値を確認する ERRORLEVEL環境変数を見る。 - [[ERRORLEVELについてのメモ (1) - とあるソフトウェア開発者のブログ>http://d.hatena.ne.jp/simply-k/20100812/1281653517]] ERRORLEVELは、以下のような場合に設定されます。 - callしたバッチスクリプトが「exit /b 終了コード」の形式で終了した場合 * エイリアス [#sa39a602] - [[Windowsのコマンドプロンプトでaliasを設定する (cmderの設定含む) - Qiita>https://qiita.com/little_hand_s/items/91d6bcb680eba10da835]] Windowsのコマンドプロンプトにて、 doskey {マクロ名}={実行コマンド名} とすればよい。 * ループ [#n0bd7d4c] - [[bat初心者がハマった構文エラーetc & コーディングする上での教訓(初歩的) - Qiita>https://qiita.com/tamcchi103/items/da267cf983b39e28f2f0]] バッチのforにはbreak(forループ自体を強制終了する)やcontinue(このループだけ終了して次のループを実行する)といった仕様はないです。なので、そういったことをしたいのであればforではなくラベルを使ってループ処理を組むのがよさそうです。 * 管理者 [#a533f2fa] - [[[Windowsバッチ] 管理者権限で実行しているか判定する | ぱそまき>https://pasomaki.com/winbatch-check-admin/]] net sessionコマンドは管理者でないと実行できないことを利用しています。 * 関連 [#y302f098] #related - WindowsTerminal