日曜エンジニア

仕事・趣味のメモ置き場です。皆様のお役に立てれば幸いです。

【初心者向け】客先作業で使うと捗るコマンド集

客先でフリーソフトExcelがない環境でのトラブルシューティング、バッチ作成。
そんな時にググっている使っているコマンドを箇条書きに書き出してみた。
なんかもっといいコマンドあるよって人はコメントください。

コマンド結果でループ

>for /f "usebackq tokens=1 " %f in (`findstr  "#" ^<C:\Windows\System32\drivers\etc\hosts`) do ping -n 1 %f

私の十八番。バッチ処理で多用。
上記例はhostsファイル*1に設定されているIPアドレスPINGを疎通するコマンド。

TEXTのカウントアップ

>type hoge.txt | find /c /v ""

エクセルもさくらエディターもないそんな時に。*2

>type hoge.txt | find /c /v "" | find "foo"

hoge.txtの中でfooという単語を含む行をカウントアップ

空いてるドライブレターにマウント

BATを作っているレターを固定してしまうとローカル環境に依存*3して失敗するため色々不便。
レター指定の部分を*にするだけで自動で空いているドライブレターにマウントしてくれる。
この例は、☆☆.△△.××.○○のCドライブをマウントしようとしてる。

>net use * ¥¥☆☆.△△.××.○○¥C$ password /user:USERNAME

NULLに捨てる

ぐぐればどこにでもあるものですが。

>コマンド >NUL 2>&1

時刻正規化

DOSだとUNIXみたいに、echo hoge > `date '+%Y/%m/%d' `.logとか一行でできないので、
以下の通り2行でやるといい感じになります。

>for /F "tokens=1,2 delims=:" %i in ('time /T') do set NOW_TIME=%i%j
>echo hoge > %NOW_TIME%.log

プロンプトに時刻を表示させたいとき

>prompt $T$H$H$H $P$G

作業ログの補完に。

思いついたら、また書きます。

2015月3月1日 また増えたので追記します。

任意のサイズのファイルを生成させたいとき

>fsutil file createnew ファイル名 ファイルサイズ

カレントディレクトリ以下にあるファイル全ての容量が知りたい

>for /f "usebackq tokens=3-4 " %f in (`dir /s /a^| findstr -v /c:"<DIR>" /c:"個の" /c:"ラベルがありません" /c:"です" /c:"のディレクトリ"`) do @echo %g:%f>hoge.txt 2>&1

パソコンのシリアルナンバーを知りたいとき*4

>wmic csproduct get IdentifyingNumber

*1:空改行があると別途対応が必要。

*2:これは対象がCR+LFじゃないと多分できない。

*3:BATでオンコードでドライブレターを固定すると既にマウントされています。とか残念なことになりBATがマウント出来ずにこける。

*4:実機のシールを見ればいいってのもあるんですが、数百台あると面倒なのでBAT化してスタートアップ仕込んだりしてます。