Windows 7 システムのすべての DOS シェルにこのコマンド エイリアスを持たせる方法はありますか?
doskey h=doskey /history
Bash シェルが .bash_profile をロードできるのと同じように、これは可能ですか? PowerShell を必要としない回答を探しています。
Windows 7 システムのすべての DOS シェルにこのコマンド エイリアスを持たせる方法はありますか?
doskey h=doskey /history
Bash シェルが .bash_profile をロードできるのと同じように、これは可能ですか? PowerShell を必要としない回答を探しています。
ここでは DOS という言葉は適切ではありません。現在のバージョンの Windows には、DOS と同じコマンド (dir、copy など) の多くを備えた CMD.exe シェルがあります。PowerShell を使用している場合もあります。PowerShell では、エイリアスを常に使用できるように簡単に構成できます。というファイル$home\Documents\WindowsPowerShell\profile.ps1
を作成し、次のようにエイリアスを作成します。
New-Alias h Get-History # Don't execute as it already exists
ただし、PowerShell はこの特定のエイリアスを既に作成しています。PowerShell を開き、いくつかのコマンドを実行してから、h
.
CMD.exe については、このブログ投稿で、CMD.exe を同じように構成する方法について説明しています。
要するに: いいえ。コマンド プロセッサ (cmd.exe と command.com) は、bash や他のシェルで知っているエイリアスをサポートしていません。
より長い答え: 引数 (%1 など) を受け取り、それらを実際のコマンドに渡す巧妙なバッチ ファイルを作成することにより、「偽の」エイリアスを作成できます。これは多くの輝かしい方法で故障する可能性がありますが、状況に応じて実用的な回避策を提供する可能性があります.
Keith Hills の回答に基づいて、これを行うために作成したバッチ ファイルを次に示します。
@ECHO OFF
:: to install, place this dos_profile.bat script in the location you want
:: it to reside and then run this batch script with the argument "register"
ECHO Commands defined by dos_profile.bat : F7, h, ls, cp, mv
IF "%1"=="register" (
REG.exe ADD "HKCU\Software\Microsoft\Command Processor\Autorun" /ve /t REG_SZ /d "%CD%\dos_profile.bat" /f
ECHO The DOS profile is registered. Load a new command prompt and test a command.
)
@DOSKEY LS=DIR $*
@DOSKEY CP=COPY $*
@DOSKEY MV=MOVE $*
@DOSKEY H=DOSKEY /HISTORY