タグ

Windowsとバッチファイルに関するJohn_Kawanishiのブックマーク (30)

  • コマンドプロンプト - k-tanaka.net

  • Robocopyの戻り値を知りたい - 履歴

    ファイルのコピーやフォルダの同期などのバッチファイルを以前まではXcopyコマンドを利用して作成していたのですが、 どうやらWindows2008ではXcopyではなく、Robocopyの使用を推奨しているようです。 Windows2003でのXcopy /?の実行結果 Windows2008でのXcopy /?の実行結果 そこでRobocopyを使用してバッチファイルを作成し始めたのですが、Robocopyの終了コードが良く分かりませんでした。 JP1などのジョブ管理ツールなどから実行すると、デフォルトの設定ではリターンコードが0以外が返ってくるとエラーとなります。 Robocopyで作成したバッチファイルが成功したり、失敗したりが続いたので調べることに。 Webで調べるとリソースキッドの中にドキュメントがあるとのことなので、以下のURLからリソースキッドをダウンロードしました。 htt

    Robocopyの戻り値を知りたい - 履歴
  • 開発に役立つ,BATファイルの書き方・パターン集 (コマンドプロンプトの定石を体系的に学び,バッチ中級者になろう) - 主に言語とシステム開発に関して

    バッチのまとめTOPWindows上の処理を自動化するプログラムが,BATファイルである。 「コマンドプロンプト」上での手作業を省略し,自動実行できる。 Windowsが存続する限り,BATファイルはなくならないだろう。 バッチ・プログラミングの需要は,何があろうとこの先生きのこる。 このWindows 10の時代でもそうだ。 BATは,MS-DOSの時代から長く使われてきた。 そのため,各コマンドに関する個別のノウハウや情報は多い。 だが,実用的なノウハウを体系的に整理したものは,あまり見かけない。 そこで以下では,BATをコーディングする際の良質なパターンを列挙する。 (0) BATプログラミングの特徴 (1) BATファイルの雛型 (1−1) 冒頭と末尾のテンプレート (1−2) 反復して実行可能に (2) バッチの構造化 (2−1) ルーチンの分割 (2−2) 実行ファイルや実

    開発に役立つ,BATファイルの書き方・パターン集 (コマンドプロンプトの定石を体系的に学び,バッチ中級者になろう) - 主に言語とシステム開発に関して
  • unixコマンド擬似バッチファイル(nl,wc-l,tail,reverse,head) - Windows Script Programming

    バッチファイルでunix風のコマンドを幾つか作ってみました。 nl.CMD 行番号を振る。 @ECHO OFF REM Usage: nl file FIND /N /V "" <%1 wc-l.CMD 行数をカウントする。 @ECHO OFF REM Usage: wc-l file FIND /C /V "" <%1 tail +n ファイルの先頭からn行目以降を表示する。 MORE +# file ここで、n-1を指定する。 tail.CMD ファイルの末尾からn行を表示する。 @ECHO OFF REM Usage: tail [-#] file SETLOCAL SET /A k=-1 SET n=%~1 IF NOT %n:~0,1%==- GOTO :1 SET /A k=n SHIFT :1 (FOR /F %%n IN ('FIND /C /V ""') DO SET n

    unixコマンド擬似バッチファイル(nl,wc-l,tail,reverse,head) - Windows Script Programming
    John_Kawanishi
    John_Kawanishi 2013/07/08
    「FIND /N /V "" <%1」この一行のBATファイルでテキストファイルを行番号付きで表示する事ができるなんて
  • Tech TIPS:Windowsのforfilesコマンドで条件に合うファイルを取り出して処理する - @IT

    解説 あるフォルダーの下にあるファイルを全て走査して、例えば6カ月以上更新されていないものを抽出/削除したり、特定のテキスト処理(パイプによるコマンドの連続適用など)を行ったりしたい場合、どのようにすればよいだろうか。 コマンドプロンプト上でfor /rコマンドを使えば再帰的なファイルの走査は可能だ。しかし、forコマンドでは特定の更新日付を持つファイルだけを抽出することはできない。 PowerShellを使えば、特定の条件を満たすファイルだけを抽出できる(具体的な手順は右側の関連記事を参照)。しかし、これはPowerShellがインストールされている環境でしか使えないし、何よりPowerShellを新たに覚える必要もある。 従来のコマンドプロンプトでの操作に馴れたユーザーなら、このような場合はforfiles.exeコマンドを利用するとよいだろう。これは指定されたフォルダーの下を(必要な

    Tech TIPS:Windowsのforfilesコマンドで条件に合うファイルを取り出して処理する - @IT
  • Windows NTのコンソール

    NTのコマンドプロンプトをちょっと便利にするテクニックをご紹介しましょう。 …と、その前に。コマンドプロンプトを頻繁に使うのなら、まずここをチェックしてください。間違って大事なファイルを失ってしまう前に。 さて気を取り直して。 NTでは、UNIXのkshなどに比べてコマンドプロンプトがお馬鹿さんなので困りもの。 CygnusのGNUポートの中にあるbashが便利そうなんだけど、 たまにお亡くなりになることがあってちょっと不幸。 というわけで、cmd.exeとコマンドプロンプトのちょっと便利な使い方をまとめてみます。 コマンドプロンプトのプロパティは、コントロールパネルの「コンソール」アプレットから設定します。 個々のコマンドプロンプトからシステムメニュー→プロパティでもいいんだけど、コントロールパネルから設定すると、全ての コマンドプロンプトで設定が有効になります。 まずぜひとも設定したい

  • Windowsバッチのかゆいところメモ - cloned.log

    Windowsバッチを久しぶりに書いたら、小学校の同級生の名前くらい思い出せなかったので、かゆいところをメモ。 実行コマンドを出力しない デフォルトでシェルの-x付けたときと同じような状態なので、抑制するときには次のようにする。 @ECHO OFF 変数の代入 SETを使う。次の例では「B」と表示される。%date%とかみたいな標準で使える環境変数も上書きできるので注意。 SET A=B ECHO %A% 変数の参照は「%変数名%」とする。あと、こんな感じで最後にセミコロンとかはつけないし、文字列をダブルクォートで括ったりしない。 エスケープシーケンス エスケープシーケンスは「%」。「%」を表示したい場合などでは「%%」とする。次の例では「%」と表示される。 ECHO %% コメントアウト REMを使う、もしくは「::」を使う。次の例はコメントアウトなので何も実行されない。 REM SET

    Windowsバッチのかゆいところメモ - cloned.log
  • メモ帳:エラーレベルは%ERRORLEVEL%ではない

    ERRORLEVEL is not %ERRORLEVEL% http://blogs.msdn.com/oldnewthing/archive/2008/09/26/8965755.aspx コマンドインタープリターcmd.exeにはエラーレベルとして知られている概念がある。それはもっとも最近に実行されたプログラムの戻り値である。IF ERRORLEVELコマンドでエラーレベルを調べることができる: IF ERRORLEVEL 1 ECHO エラーレベルが1以上 <sidebar> エラーレベルがn以上であればIF ERRORLEVEL nは成功する。より高い戻り値で異なる失敗の程度を表すプログラムがあるので、これは恐らくそうなる。たとえば、diffプログラムには3つの戻り値がある: 0はファイルが同じことであることを意味する; 1はファイルが異なることを意味する; 2はひどい何かが起き

  • カレントディレクトリをバッチファイルのディレクトリにする - 強火で進め

    %0 にバッチファイル自身のファイルパスが格納されているため以下の様に記述し、ドライブの変更、ディレクトリの変更を行う。 %~d0 cd %~d0%~p0追記: id:nanmo さんよりコメント欄にてもっと短い方法を教えて貰いました。 cd /d %~dp0cd で /d のオプションを指定すると通常、ディレクトリの変更だけでドライブの変更は行ってくれない cd コマンドでドライブの変更も同時に行うようになります。 たとえば現在、Dドライブの d:\test にいて Cドライブの c:\test2 に移動したい様なドライブが異なる場所への移動も以下の1行を実行するだけでOKです。 cd /d c:\test2ちなみにコマンドのヘルプはコマンドプロンプト上で「help (コマンド)」とタイプすると確認できます。cd について知りたい場合は help cd で確認できます。 %~dp0 は

    カレントディレクトリをバッチファイルのディレクトリにする - 強火で進め
  • @IT Tips:バッチ・ファイル中で日付をファイル名に使用する

    バッチファイル中で、数字や時刻などをファイル名として使いたい バッチファイルの中で、日付や時間をベースにしたファイル名のファイルを作成し、そこに結果を保存したいといった場合は意外と多いだろう。 例えば、システムデータやユーザーファイルをバックアップし、バックアップ先のフォルダやファイル名に、その日の日付を反映した名前を付けたいといった場合である。例えば、「systemconfig-20221221」「user1-20230501」などと付ければ、いつバックアップしたかすぐ分かるだろう。 Tech TIPSでは、バッチファイル内で日付と時刻の情報を取得して、ファイル名やフォルダ名として利用するためのテクニックを紹介する。鍵となるのは「date」「time」という変数の扱い方である。 まずバッチファイルの基から知りたいなら、Tech TIPS「Windowsのバッチファイルの基的な使い方

    @IT Tips:バッチ・ファイル中で日付をファイル名に使用する
    John_Kawanishi
    John_Kawanishi 2009/04/07
    バッドノウハウだよなぁ…UNIXのシェルだともっと簡単なのかなぁ