LoginSignup
7

More than 3 years have passed since last update.

posted at

WindowsのDOS窓でls叩いたらdirして欲しい、ほか

要約

  • WindowsのDOS窓でうっかりls叩いたら代わりにdirが動く、など
  • Qiitaの類似記事をまとめ
  • 類似記事たちのタグが揃ってないから情報が分散しがちだけど、タグが5個までの制約があるので、参考タグもリンクしちゃう

参考リンクたち

まとめ

  1. 擬似コマンドの表現は自作batにPATHをとおすまたはエイリアスをはるに二分類される。
  2. エイリアスをはるbatの読み込み方法はレジストリまたはcmdのkオプションの二通りがメジャー。
  3. すぐに素の環境に戻せる 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"

おしまい

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7