web-dev-qa-db-ja.com

ドライブ文字を削除して再割り当てするバッチファイル

私は私がユニークな問題であると信じているものを持っています。私はバッチファイルで多くの仕事をしませんが、それが私の最良の選択肢だと思います。これが状況です。システムで特定のCDトレイを探し、その文字をソフトウェアに割り当てる特別なソフトウェアがあります。私が持っているドライブは機能していませんが、ソフトウェアがそのドライブをCDトレイとして割り当てることを許可しています。ソフトウェアが起動して実行されたら、ドライブ文字を管理し、動作しているものを表示されているものと交換すると、すべて正常に動作します。まず、起動バッチファイルを使用して起動時に実行できるドライブ文字が両方のドライブに設定されていることを確認する必要があります。

Drive 1 : Y
Drive 2 : X

次に、ソフトウェアがドライブを起動してロードするための設定された時間が経過した後、文字を交換します。

Drive 1 : X
Drive 2 : Y

これを行うために、diskpartスクリプトの使用を検討していましたが、バッチファイルを介して動作させることができないようです。

volume 0 remove drive letter
volume 1 remove drive letter // this way they are both blank so I don't have conflicting drive letters when I change one without the other
volume 0 set drive letter="Y"
volume 1 set drive letter="X"
wait 5 minutes // software will see volume 1 as X drive
volume 0 remove drive letter
volume 1 remove drive letter
volume 0 set drive letter="X"
volume 1 set drive letter="Y"
// now the software will see X drive as volume 0 making it all work OK.

奇妙に聞こえるかもしれませんが、すべて手動で行うと機能します。マシンを起動する人のためにプロセスを自動化する必要がありますが、手動でセットアップする方法がわからないか、時間がありません。

助けてくれてありがとう。

1
Steve Khalaf

Batch/cmdコマンドを使用してdiskpartでスクリプトを作成することはできません。またはPowerShell、そのことについて。また、diskpart.exeを呼び出すときに期待するような引数を受け入れません。非常に苛立たしいですが、 diskpartをプログラムで制御する場合は、「diskpartスクリプト」を使用する必要があります これは基本的にテキストファイル内の改行で区切られたdiskpartコマンドです。

diskpart /s scriptname.txtの構文でバッチファイルからdiskpartスクリプトを呼び出すことができるはずです。

2
HopelessN00b