こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

コマンドプロンプトですべてのUSBを取り出すには

コマンドプロンプトのコマンドで、現在接続されている全てのUSBやHDDなどのハードウェアを「安全に取り出せる状態」にしたいです。

要は、現在接続している外付けのハードウェア全てを、一気に解除したいわけです。

その後、ディスクの再スキャンもコマンドプロンプトで行いたいのですが、どなたか

「現在接続している全てのハードディスクの解除」のコマンドと、「ディスクの再スキャン」のコマンドを知っている方はいらっしゃらないでしょうか。

もしもご存知の方がいらっしゃったら、ご教授願います。

以上、よろしくお願いいたします。

投稿日時 - 2013-10-20 22:18:58

QNo.8313953

すぐに回答ほしいです

質問者が選んだベストアンサー

たぶん、mountvolコマンドでできます。
ただ、試したことはありません。

http://computermemo.blog33.fc2.com/blog-entry-70.html

もともとUNIX系OSにはumountコマンドがあって、デバイスファイルやボリュームラベルや
UUIDによって、マウントとアンマウントができるようになっていました。

後発のWindowsはUNIXを模倣した部分も多少あり
UNIXでのコマンド名を使うことで、検索できる場合があります。
ただ、よりシンプルにしようとするUNIX系OSがmount,umountで分けているのに対して
Windowsのmountvolはオプションで動作を切り替えるようになっています。


また、WindowsはGUIがメインで、OSとしての仕組み自体は、技術者向けOSとして作られている性質から
マウントする場合はUUIDで指定するようになっているようです。

Windowsを最も購入するのは消費者ではなくPCメーカー
ゆえにPCメーカーの技術者や、その他IT業務の技術者向けのOSなのです。


アンマウントはドライブレター指定でできるので簡単ですが
マウントする場合にはvolume-name(GUID,UUID)を使う必要があり、手入力は煩雑です。
(たとえば、Linuxではデバイスファイルやボリュームラベル指定のマウントもできます)

たぶんGUIDはファイルシステムの作成時に生成されているので
通常は変化しません。
ですから、運用の効率化にはバッチファイルなどの活用が良いでしょう。


ディスクの再スキャンは、システムに接続されているストレージデバイスを
再確認し、デバイスの有無と、パーティション変更などを確認する操作だと思いますが
これについては、Windows用のコマンドは知りません。

ちなみにLinuxにはpartprobeコマンドがありますが
"windows partporbe"でググっても有用な情報は見つけにくいようです。

投稿日時 - 2013-10-21 09:33:42

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

コンソールアプリを2つ組み合わせるというのは
いかがでしょうか?

「現在接続している全てのハードディスクの解除」のコマンドの候補として
実行すると取り外し可能なドライブを取り外すインストール不要なプログラム
http://
homepage3.nifty.com/yamakox/UnplugDrivePortable/UNPP0412.ZIP

「ディスクの再スキャン」のコマンドの代用として
drives:ドライブの表示(コンソール)
http://
www2.ocn.ne.jp/~yks/data/drives010.lzh

この構成で drives と入力すると
C: ローカル ディスク (C:)
D: DVD-ROM
E: USBメモリ
S: ネットワークドライブ

こんな表示が出ます
C: DRIVE_FIXED
D: DRIVE_CDROM
E: DRIVE_REMOVABLE
S: DRIVE_REMOTE

「再スキャン」の定義から外れているとは思いますが
USBメモリ等を取り外してから drives を実行すると
外されたドライブが表示から消えているので
要件は満たしていると思います。

で、UnplugDrive.exe と drives.exe を
パスの通ったフォルダ(Windowsフォルダ等)に保存してから

for /f %%0 in ('drives ^| findstr /i /c:"REMOVABLE"') DO UnplugDrive %%0 /S

で取り外しができました。※ハードディスクは手元に無いので検証できてません。

実行前に
for /f %%0 in ('drives ^| findstr /i /c:"REMOVABLE"') DO echo;UnplugDrive %%0 /S
で、該当のドライブを指定しているかを確認してから
UnplugDrive 該当のドライブ /S
で取り外せるかを確認してみてください。

投稿日時 - 2013-10-23 04:39:35

あなたにオススメの質問