ドライバの設定のような複数のプログラムを開くバッチファイルを作りたい このように
cd\
D: (the usb drive letter )
start sound driver.exe
start tochpad driver.exe
USBペンドライブではなく、コンピュータのハードドライブからバッチファイルを開くだけです。
そして問題は、USBはすべての単一のコンピュータ上でそのドライブ文字を変更することです。
ドライバの設定のような複数のプログラムを開くバッチファイルを作りたい このように
cd\
D: (the usb drive letter )
start sound driver.exe
start tochpad driver.exe
USBペンドライブではなく、コンピュータのハードドライブからバッチファイルを開くだけです。
そして問題は、USBはすべての単一のコンピュータ上でそのドライブ文字を変更することです。
回答:
ある種の識別ファイルをドライブに置き、ドライブを繰り返します。あなたがそのファイルを見つけたなら、あなたはあなたがpendriveを見つけたことを知っています。上記のファイルが存在しない場合、これは機能しなくなります。
この例は次のようになります。 USBを検出してコピーする 。 スクリプトを使用してUSBドライブに
それによると、 "USB.txt"というファイルを想定した簡単な方法は次のようになります。
@echo off
for %%d in (D: E: F: G: H: I: etc...) do (
if exist %%d\USB.txt (
echo USB at drive %%d connected
%%d
start sound driver.exe
start tochpad driver.exe
)
)
より良い解決策は、 質問 私はリンクしました。通常のドライブ名としてA:とB:を使用しているかUSB.txtが存在していない可能性があるため、上記には既にいくつかの落とし穴があります。
その質問から「修正された」解決策を見れば、それは次のようになります。
@echo off
for /F "tokens=1*" %%a in ('fsutil fsinfo drives') do (
for %%c in (%%b) do (
for /F "tokens=3" %%d in ('fsutil fsinfo drivetype %%c') do (
if %%d equ Removable (
echo Drive %%c is Removable (USB^)
%%c
start sound driver.exe
start tochpad driver.exe
)
)
)
)
私が言えることから fsutil
管理者権限で実行する必要があるので、あなたがしていることに応じてそれに注意する必要があります。
エクスプローラからbatファイルをクリック(実行)すると、カレントディレクトリはバッチファイルの場所に設定されると思います。
あなたのバッチファイルがUSBスティックのディレクトリから保存されて実行されるのであれば、あなたはすでにそのドライブ名を持っているディレクトリにいます。ドライブを切り替える必要はないので、指定する必要はありません。
だからちょうど使う CD \
これにより、自分がいるドライブのルートレベルにいることが保証されます。
同じドライブ上の他のディレクトリにアクセスするためにドライブ文字を使用する必要もありません。あなたがフォルダにいる場合 c:\temp
:
123\file.txt
と同等です c:\temp\123\file.txt
(先頭にスラッシュがないので、パスは現在のパスに追加されます)
\123\file.txt
と同等です c:\123\file.txt
(先頭のスラッシュ。パスはドライブ文字にのみ追加されます(「ルート」と呼ばれます)。
バッチファイル内から他のバッチファイルを起動していて、それらのディレクトリがどのディレクトリにあるかを知る必要がある場合、これは少し複雑になる可能性があります。
また見なさい( https://stackoverflow.com/questions/16255184/ 現在の作業ディレクトリを見つける方法に関するより詳細な議論のために)。
cd
。あなたの例では、とにかくうまくいったでしょうが、 cd \temp
その後 d:
するでしょう ではない されている d:\temp