こんにちわlisです!
前回コマンドプロンプトを管理者権限で実行する方法を書いたのですが……
それとは別の方法でコマンドプロンプトを管理者権限で実行、さらにカスタマイズした状態で起動する方法についてです!
- いつも実行するコマンドを短い入力にしたい
- 毎回同じオプションをつけるのに長くて面倒
なんてとき、カスタマイズが火を吹きます。
管理者権限で実行する
前回、管理者権限で実行するための方法について書いたのですが、こちらでもっといい感じの方法がわかりました。
どうやらコマンドプロンプトから、PowerShellからプロセスを起動して、そのときに「-verb runas」を付与してあげると、管理者権限で実行された状態になるのです。
> powershell start-process 実行対象 -verb runas
ということで
> powershell start-process cmd -verb runas
としてあげれば、コマンドプロンプトが管理者権限で起動します!
めっちゃスバラシイ。
これを使えば、コマンドプロンプトどころか、管理者権限が実行時に必要なものは何でもできちゃいますね。
コマンドをカスタマイズする
コマンドプロンプトには「DOSKEY」という、「あるコマンドを別の名称で実行できるようにする」ということができるコマンドがあります。
Linuxでいうところの「alias」ですね。
例えばこんな感じになります。
> dir /b sample.txt > show 'show' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 > doskey show=dir /b > show sample.txt
存在しない「show」というコマンドに「dir /b」を割当てています。
すると設定後は「show」で「dir /b」と同じ表示がされていますね!
めっちゃステキーー!!と思いますが、これはウィンドウを閉じると設定が消えます。
ということで起動時に読み込むようにします。
設定ファイルを作る
「doskey.txt」という名称で設定ファイルを作りました。
ここに
登録する名称,割り当てるコマンド
を列挙していきます。
work,cd /d "C:\work\" py,python $* list,doskey /macros ip,ipconfig ipa,ipconfig /all
カスタマイズバッチファイルを作る
先程作成した設定ファイルを読み込みます。
@echo off REM 設定ファイルのあるフォルダに移動 cd C:\Users\user\Documents\settings REM 設定ファイルを適用 for /f "tokens=1,2 delims=," %%a in (doskey.txt) do ( doskey %%a=%%b ) REM 起動時に表示したいフォルダに移動 cd c:\
forのファイル指定はフルパスで指定すれば、事前に移動しなくてもOKです。
ただし、パスにスペースが入る場合はNGなので、事前に移動する方法を取りましょう。
管理者コマンドプロンプト実行バッチを作る
さて、本命のバッチファイルの作成です。
@echo off REM 実行したいバッチを/kで指定することで、管理者権限とともにカスタマイズが可能 powershell start-process cmd -ArgumentList '/k "cmd-custom.batのフルパス"' -verb runas
「-ArgumentList」で、引数を渡すことができます。
なので「'/k "cmd-custom.batのフルパス"'」という形で、実行するコマンドプロンプトに引数を渡しています。
ちなみに「/k」とは
/K "文字列" に指定されたコマンドを実行しますが、終了しません。
というオプションです。
参考
コチラを参考にしました。ありがとうございました!
あとがき
コマンドプロンプトを管理者権限で実行、さらにカスタマイズした状態で起動する方法でした!
これで結構楽することができました!
よければお試しください!