プログラマ38の日記

主にプログラムメモです。

雑記: Windowsのバッチ開発で便利なコマンド

Windowsサーバでバッチ処理を開発したり、バッチ処理の稼動を確認する時に便利だなと思ったコマンドのメモです。

 

よく使うコマンド(引数込み) コマンドで実現できること 利用したい時 備考
CERTUTIL -decode  [intputfile] [outputfile] base64形式のテキストファイル[intputfile]からバイナリファイル[outputfile]へ変更する。 Salesforceのデータローダで添付ファイルをCSV出力した後、CSV内の添付ファイル内容(base64形式)をファイルに変換する。

Windodws標準コマンド

 

もちろんCSV出力時にはヘッダやダブルクオテーションなど不要な文字が含まれているので純粋にbase64部分だけのテキストにする必要はあります。

xcopy /T /E /I [inputdirectory] [outputdirectory] ディレクトリの構成だけをコピーする。 中に含まれているファイルのサイズが大きい、またはファイルの数が多い場合に、ディレクトリの構造だけコピーする。 Windodws標準コマンド
[標準出力に表示するコマンド] | clip コマンドの標準出力をクリップボードにコピーする。 例えば「 dir /b | clip」などでファイルの一覧をクリップボードへコピーする。 Windodws標準コマンド
tail -n50 -f [inputfile] ファイルの末尾を表示する。 ログファイルの確認をする。 gnuコマンド
cygwinなどでコマンドのインストールが必要

利用する際には環境変数「LANG」に「ja_JP.SJIS」を指定するとShift_JISのファイルが文字化けしません。
[標準出力に表示するコマンド] | tee -a [outputfile] 標準出力をそのまま表示しつつ、ファイルにも出力する。 コマンドの実行結果を標準出力で確認しつつ、ログファイルにも保存する。 gnuコマンド
cygwinなどでコマンドのインストールが必要

 

unix系でバッチ処理の開発を行う際には当たり前のように使うコマンドがWindowsだと使えなくて不便なのですが、cygwinなどでgnuコマンドを使えばもどかしい思いをしなくてすみます。(もちろん完全に問題なく動作するわけではないので、確認しながらになりますが)

cygwin使うならbase64コマンドもあるからCERTUTILもいらないんですけど、標準で使えるのでいいかなと思います。

 

最後に

PowerShell使えばいいんだと思いますが、今さら感が強くて覚える気にならないんです。PowerShell駆使したいなら、最初からunixでいいのでは?と思ってしまいますし。