LoginSignup
14
7

More than 5 years have passed since last update.

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

Posted at

要約

  • 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"

おしまい

14
7
0

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
  3. You can use dark theme
What you can do with signing up
14
7