私は普段Macで開発しているのですが、
Macが壊れてSurface(Windows10)にNodeJS入れたのですが
ターミナルで叩いてたコマンドがコマンドプロンプトでことごとく使えなくて~~(久しぶりすぎて忘れてた)~~
イラッとしたので基本的なコマンドはマクロ作成してMacぽくしました。
Windowsつらい・・・
(ぁ、でもEdgeのWebノート機能はMacにはなくてイケてると思います。)
コマンド代用バッチ
最低限これくらいほしいよねってことでマクロ作成しました。
あくまでそれっぽいってだけでそもそも違うので完全に代用は無理です。
- ファイル操作(cd,ls,pwd,cat,touch,mkdir,mv,cp,rm)
- ネットワーク(ifconfig)
- プロセス制御(open,ps,kill)
chcp 65001
doskey alias=if "$1"=="" (doskey /macros) else (doskey $*)
doskey unalias=doskey $*=
doskey h=doskey /history $*
doskey history=doskey /history $*
doskey ls=dir /w $*
doskey pwd=echo %CD%
doskey ll=dir /ad $*
doskey lv=more /E $*
doskey cat=type $*
doskey cp=if exist $*\nul (echo d $b xcopy /E $*) else (copy $*)
doskey mv=move $*
doskey touch=type nul $g $*
doskey rm=if exist $*\nul (rd /s /q $*) else (del /q $*)
doskey ifconfig=ipconfig
doskey open=start
doskey ps=tasklist $*
doskey kill=Taskkill /PID $* /F
cd,mkdirはそのまま使えるので作る必要なし
sshはTeraTermとかソフトウェア使ったほうがよさげ
初期設定
regedit(レジストリ)のHKEY_LOCAL_MACHINEにAutoRunとして上記init.batのパスを設定するとコマンドプロンプトを開いたタイミングでinit.bat内のdoskeyが適用されます。
ここ参考:
http://qiita.com/yufu/items/86a455f948a3e1c0ef97
解説
コマンドプロンプトのdoskeyコマンドはalias的な感じでコマンドのマクロを登録ができます。
文字化けを防ぐための設定
chcp 65001
ディレクトリかの判定
if exist $*\nul
$gは特殊文字>に該当、ファイル出力
$bは特殊文字&に該当、複数コマンド実行
補足
~でホームディレクトリパスなんてないので環境変数%USERPOROFILE%にホームディレクトリのパスが入ってます。
なのでホームディレクトリ移動は下記コマンド
cd %USERPROFILE%
あとよくハマるのが
WindowsのパスはMacやLinuxのように/スラッシュでなく、\バックスラッシュ
結果の絞り込みは
grepなんて便利ものはないのでfindもしくはfindstrを使います。
history | find 'ls'
おまけ1:エクスプローラをタブ化する
下記のソフトウェアでできます。
ウィンドウ増やしたくない
QTTabBar
おまけ2:コマンドプロンプトをタブ化する
下記のソフトウェアでできます。
やっぱりNodeJSのプロセスとか立ち上げてると複数開きたいですよね。
ConEmu
おまけ3:ウィンドウ半透明化
下記のソフトウェアでできます。
エディタとかのウィンドウを半透明化できます。
なんでもすけ
結論
完全代用とかなると
PowerShellやexe作って呼び出すんだろうな・・・
手間の割が合わないので必要に駆られない限りやりませんが・・・
Bash on WindowsとかGit for Windows(MSYS2)とか
あるのですが、結局エミュレータでエミュレータ外のパスの操作とか
コマンド自体が微妙に対応しきれてなかったり中途半端な感じがするので
やっぱりMacが一番開発しやすい
(なんか良い手があったら教えてください)