要約
- WindowsのDOS窓でうっかりls叩いたら代わりにdirが動く、など
- Qiitaの類似記事をまとめ
- 類似記事たちのタグが揃ってないから情報が分散しがちだけど、タグが5個までの制約があるので、参考タグもリンクしちゃう
- dos
- cmd
- cmd.exe
- コマンドプロンプト
- bat
- batch
- バッチファイル
参考リンクたち
- ついついwindowsでlsとか叩いちゃう時って、あるじゃん?
- tee、ls
- Windowsで「cd -」や「ls」
- pwd、cat、ls、ll、la、mv、rm、ln、clear
- windowsでunixコマンドを使う準備
- pwd、ls、grep、head
- Windowsのコマンド忘れてて使いづらかったのでMacやLinuxのコマンドぽく使えるようにしてみた
- alias、unalias、h、history、ls、pwd、ll、lv、cat、cp、mv、touch、rm、ifconfig、open、ps、kill
- Linux/WindowsでもMacOSXみたいにopenでファイルを開きたい
- open
- 【Windows】コマンドプロンプトをLinuxライクに設定
- cd、ps
- バッチファイルでよく使う書き方まとめ
- pwd
- 【備忘録】新しいPCにセットアップするものまとめ
- ls、history、quit
- windowsをwindowsのままで使う開発環境備忘録
- cat、history、ll、touch
まとめ
- 擬似コマンドの表現は自作batにPATHをとおすまたはエイリアスをはるに二分類される。
- エイリアスをはるbatの読み込み方法はレジストリまたはcmdのkオプションの二通りがメジャー。
- すぐに素の環境に戻せる or ポータビリティがある or 権限の制約等を受けづらいなどの観点から、エイリアスを代替コマンドや自作batにはる、そのbatをcmdのkオプションで渡す、この方法が幸せになれそう。
以下に構成例をしめし、参考リンクから気に入ったエイリアスを「.doskeys」へ追加してください。
タスクバーやデスクトップにショートカット作成
%windir%\system32\cmd.exe /k %HOMEDRIVE%%HOMEPATH%\cmdrc.bat
tree
%HOMEDRIVE%%HOMEPATH%
│ .doskeys
│ cmdrc.bat
│
└─bin
_grep.bat
_cd.bat
_sudo.cmd
cmdrc.bat
@echo off
set PATH=%~dp0bin;%PATH%
doskey /MACROFILE=%~dp0.doskeys
_cd
.doskeys
alias=if "$1"=="" (doskey /macros) else for /f "delims== tokens=1,*" %i in ("$*") do @if "%j" neq "" ( doskey $* ) else ( doskey /macros $b findstr /b /c:"%i=" )
unalias=doskey $*=
history=doskey /history $*
man=help $*
cp=copy $*$b find /v "個のファイルをコピーしました"
mv=move $*$b find /v "個のファイルを移動しました"
cd=_cd $*
sudo=_sudo $*
grep=_grep $*
_cd.bat
@echo off
if "%1x"=="x" pushd %HOMEDRIVE%%HOMEPATH% && goto :_view
if "%1x"=="-x" popd && goto :_view
pushd %1
:_view
title %CD%
call :_getcd "%CD%"
if %HOMEDRIVE%%HOMEPATH%==%CD% (
prompt [%USERNAME%@%COMPUTERNAME%$S~]$$
) else (
prompt [%USERNAME%@%COMPUTERNAME%$S%xcd%]$$
)
set xcd=
goto :eof
:_getcd
set xcd=%~nx1
exit /b
_grep.bat
@echo off
if "x"=="x%2" goto usage
if "x"=="x%1" goto usage
call :write_ps %1 %2
call :run_ps
call :del_ps
goto :eof
:write_ps
set XSCRIPT=Select-String -Path %1 -Pattern "%2"
>%~dpn0.ps1 echo %XSCRIPT%
set XSCRIPT=
exit /b
:run_ps
powershell -NoProfile -ExecutionPolicy Unrestricted %~dpn0.ps1
exit /b
:del_ps
del %~dpn0.ps1
exit /b
:usage
echo usage: %~nx0 filepath pattern
>nul pause
goto :eof
_sudo.cmd
@powershell -command "Start-Process -Verb runas %1"
おしまい