1. ホーム
  2. スクリプト・コラム
  3. パワーシェル

PowerShellで光学ドライブをオープン/クローズする

2022-01-05 16:26:10

ケース選びが悪かったのか、CD-ROMのアウト/インボタンが塞がれていて、使いづらかったです。光学ドライブのアウトとインを制御できる小さなソフトがあることを思い出しました。WindowsのAPIを検索して、以下のコードを書きました、気に入っていただけると幸いです。

PS C:\Users\Eden> $a = Add-Type -memberDefinition @"
>> [DllImport("winmm.dll", CharSet = CharSet.Ansi)]
>> public static extern int mciSendStringA(
>> string lpstrCommand,
>> string lpstrReturnString,
>> int uReturnLength,
>> IntPtr hwndCallback);
>> "@ -passthru -name mciSendString
>>
PS C:\Users\Eden> $a::mciSendStringA('set cdaudio door open', $null, 0,0); # open optical drive
0
PS C:\Users\Eden> $a::mciSendStringA('set cdaudio door closed', $null, 0,0); # Close the CD-ROM drive
0



最後に、今日からPowerShellで使えるショートカットをまとめてみました。これらのショートカットは、実はCmd.exeやどのコンソールでもサポートされているのです。

<テーブル

<スパン ボタンを押す <スパン {{o:p /o:p

<スパン 機能 {{o:p /o:p

<スパン ← {{o:p /o:p

<スパン カーソルを1文字左に移動させる {{o:p /o:p

<スパン Ctrl + (日本語) <スパン <スパン ← {{o:p /o:p

<スパン カーソルを1ワード分左に移動させる {{o:p /o:p

<スパン → {{o:p /o:p

<スパン カーソルを1文字分右に移動させる {{o:p /o:p

<スパン Ctrl + (日本語) <スパン <スパン → {{o:p /o:p

<スパン カーソルを1ワード分右に移動させる <スパン {{o:p /o:p

<スパン ホーム キー {{o:p /o:p

<スパン カーソルを行頭に移動させる {{o:p /o:p

<スパン 終了 キー {{o:p /o:p

<スパン カーソルを行末に移動させる {{o:p /o:p

<スパン 削除 <スパン キー {{o:p /o:p

<スパン カーソルが指す文字を削除する {{o:p /o:p

<スパン バックスペース <スパン キーまたは <スパン Ctrl + H {{o:p /o:p

<スパン カーソルの左側の1文字を削除する {{o:p /o:p

<スパン Ctrl + 終了 <スパン キー <スパン {{o:p /o:p

<スパン カーソルから行末までの全文字を削除する {{o:p /o:p

<スパン エスケープ <スパン キー <スパン {{o:p /o:p

<スパン 現在入力されている文字をすべて消去する {{o:p /o:p

<スパン 挿入 キー {{o:p /o:p

<スパン 挿入・書換モード切替 {{o:p /o:p

<スパン タブ <スパン キー {{o:p /o:p

<スパン タブ キーのオートコンプリートコマンドの名前、例えば コマンドレット パラメータ、コマンドのパスです。最初にプロンプトが表示されたオブジェクトが期待したものでない場合は、続けて次のように入力します。 タブ キーを押すと、次の候補が自動的に表示されます。 {{o:p /o:p

<スパン ↑ {{o:p /o:p

<スパン 履歴コマンドを検索する {{o:p /o:p

<スパン {{o:p /o:p

<スパン 履歴コマンドを下に検索 {{o:p /o:p

<スパン F7 <スパン キー <スパン {{o:p /o:p

<スパン コマンド履歴を表示し、これまでに入力されたすべてのコマンドをグラフィカルなリストウィンドウで表示します。 上下の矢印キーで、再度実行するコマンドを選択します。 <スパン {{o:p /o:p

<スパン F8 <スパン キー <スパン {{o:p /o:p

<スパン コマンドに対応する履歴を検索し、コマンド上でコマンドの一部を入力した後に <スパン F8 キーを押すと、その入力にマッチしたコマンドの履歴が表示されます。複数のコマンドにマッチする場合は、繰り返し F8 を選択すると、これまでに入力されたすべてのコマンドをループすることができます。コマンドラインが空の場合、過去に入力されたすべてのコマンドがデフォルトでマッチングされます。 {{o:p /o:p

<スパン F9 <スパン キー <スパン {{o:p /o:p

<スパン 履歴コマンドを番号で選択すると、コマンドに対応する番号をグラフィカルなダイアログボックスに入力するよう求められます(以下、「番号入力」)。 0 <スパン start)を実行し、画面にコマンドを表示します。 {{o:p /o:p

<スパン 入力 キーまたは <スパン Ctrl + M {{o:p /o:p

<スパン キャリッジリターン( 入力 <スパン ) {{o:p /o:p

<フォント Ctrl + C {{o:p /o:p

現在実行中のコマンドを終了させる

<フォント Ctrl + ブレーク {{o:p /o:p

<スパン 現在実行中のコマンドを終了させる

<スパン Alt + F7 <スパン キー <スパン {{o:p /o:p

過去に入力したすべてのコマンドの履歴を消去する