lisz-works

プログラミングと興味を貴方に

コマンドプロンプトを管理者+カスタムで起動!

【スポンサーリンク】

コマンドプロンプト

こんにちわlisです!

前回コマンドプロンプトを管理者権限で実行する方法を書いたのですが……

それとは別の方法でコマンドプロンプトを管理者権限で実行、さらにカスタマイズした状態で起動する方法についてです!

  • いつも実行するコマンドを短い入力にしたい
  • 毎回同じオプションをつけるのに長くて面倒

なんてとき、カスタマイズが火を吹きます。

管理者権限で実行する

前回、管理者権限で実行するための方法について書いたのですが、こちらでもっといい感じの方法がわかりました。

qiita.com

どうやらコマンドプロンプトから、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 "文字列" に指定されたコマンドを実行しますが、終了しません。

というオプションです。

参考

コチラを参考にしました。ありがとうございました!

qiita.com

diarywind.com

あとがき

コマンドプロンプトを管理者権限で実行、さらにカスタマイズした状態で起動する方法でした!

これで結構楽することができました!

よければお試しください!

www.lisz-works.com

www.lisz-works.com

www.lisz-works.com