terminalと親睦


Cli mini Hack!#1 ~Terminalとの親睦を深めよう~ // Speaker Deck

  • 直感的にはvimでタブが開いて作業していけるのが一番アツい
    • vim -p
    • ヤンクしたのを他のタブでペーストできるとかアツい
    • でもタブ切り替えとか立ち回りきれないのですぐは使えない
  • awk,sedはまだこわい
  • いろいろ拡張して幸せになりたいけど、急いでやるとゴチャゴチャになって汚くなってわけわからなくなるのを忌避してるのが障害

WSHに触れました

コマンドプロンプトで、IPに関する詳細情報を表示する場合、このようなコマンドをうちます。

>ipconfig /all

さらにこのようにすると、詳細情報がテキストファイルで保存されます。

>ipconfig /all > hoge.txt

この一文をバッチファイルにすると、IP詳細情報をテキストで保存することができます。
しかしファイル名が固定なので、PC固有の情報をファイル名にしたいところです。
ちょうどいい具合に、このようなコマンドでコンピュータ名が分かります。

>hostname

IPの詳細情報は得られた。コンピュータ名も得られた。

では、ファイル名をコンピュータ名にするには?

取得したコンピュータ名を何か変数に保管して、リネームのコマンドを使って…
リネームのコマンド自体はありましたが、探しているうちに、『変数』はこういったシンプルなコマンドでは扱えないのではないか、と思いました。

そこでたどり着いたのがWSHです。
今日は二つ消化。

VBScriptの基本を押さえよう(その1) 文字列の入出力 − @IT

とりあえず、目下の目標は、以下の実行スクリプトを書くことです。
『ワンクリックで、PCのIP詳細情報をコンピュータ名をファイル名にして保存する』

リトライしたら解決した

前回トライした項目はこれ。

コマンドプロンプトで,暗記するべき10の必須コマンド (前半) ファイル処理系 - 主に言語とシステム開発に関して

そして詰んだところは、この写経がうまくいかないこと。
下を打鍵すると、こう出る。

for %V in ( *.txt ) do %V

\test>hoge.bat
V の使い方が誤っています。

しかし、エントリをスクロールしていくとこの記述が…

なお上記で % の記号が出てきたが,バッチファイル中で同じ事をやりたい場合は,% を %% と表記するのを忘れないこと。

oh...
下のように書き直したら動きました

ファイルの一括処理:for 文

for %%V in ( *.txt ) do %%V
空のテキストを作成する

これもできました

echo:> temp.txt

ファイルを検索:dir

dir /s /b *.txt

「ファイル名」を再帰検索なんですね。

ファイル内を検索:findstr

findstarに見えた

findstr /n /s "hoge foo" *.txt
findstr /n /s /c:"hoge foo" *.txt

上が「hoge」または「foo」で、下が「hoge hoo」での検索。
オプションも覚えなきゃですね。

ファイルのフルパスと,行番号と,行全体が抽出されるので便利

なるほど。

ファイルの差分を検出:fc

fc /n a.txt b.txt

テキストファイルの差分を行数付きで表示

\test>fc /n aaa.txt aaaaa.txt
ファイル aaa.txt と AAAAA.TXT を比較しています
***** aaa.txt
    1:  hagehage
    2:  poge
    3:  pepepe
***** AAAAA.TXT
    1:  hoge
    2:  popopo
    3:  pepepe
*****

linuxのdiffのように、色を使って差分まで、という感じではないんですね。

フォルダ構造を表示:tree

tree /f

これいいですね。テキスト出力すれば、樹形図が保存できますね。
はい~
次回はここへ~

バッチファイルの作成にチャレンジしたけど早速詰んだ

Windows上での反復業務を自動化できるように、バッチファイルの作成やVBAを操れるようになりたい。
WEB上で毎日すること。ローカル上で毎日すること。
それらを、バッチファイルの実行やエクセル内のボタンで済ませて幸せになる。

このエントリ集を参考にしたくなった。

コマンドプロンプトで,暗記するべき10の必須コマンド (前半) ファイル処理系 - 主に言語とシステム開発に関して

[Shift] + 右クリック で「コマンドウインドウをここで開く」というメニューが出る!
Windows7だけかな。
コマンドプロンプトのカレントディレクトリを、開いているフォルダから始められる。

だがしかし、さっそく最初で詰む

for %V in ( *.txt ) do %V

複数のテキストファイルを用意。
上記のコードでbatファイルを作成。
うまくいかず。
また明日やろう。このやろう。

「コンピューターの基本的な情報の表示」のショートカットキー

デスクトップの場合

[Windows] + [Pause]

ノートPCの場合

[Fn] + [Windows] + [Pause]

「コンピューターの基本的な情報の表示」画面って、なんだか覚えにくいですね。
XPだと「コンピューターのプロパティ」だったような?
7の場合、"コントロール パネル\システムとセキュリティ\システム"でもアクセスできるみたいです。