0

誰かが助けてくれるかどうか疑問に思っていました。USB フラッシュ ドライブに .cvs をロードする Java プログラムを作成しました。このプログラムはいくつかの異なる Windows ラップトップで使用される可能性がありますが、プログラムは固定のファイル ロケーション、つまり :F ドライブを使用します。

フラッシュドライブが接続されているときにレター割り当てがドライブ:Tのようなものに固定される方法があるかどうか疑問に思っていたので、ドライブが接続されているポートまたはコンピューターに関係なく、Javaプログラムによって自動的に読み取られます。ユーザーがフラッシュドライブを変更するためにコンピューターを手動で設定する必要がないように、これをUSBのバッチファイルで実行したかったのです。一部のプログラム ユーザーは非常に古く、手順を追った説明が提供されたとしても、これを行うことができない可能性があります。

これまでバッチファイルを作成したことがないので、何か助けていただければ幸いです

敬具

4

2 に答える 2

1

これを行うために使用できますsubst

subst T: %~d0\

T: が使用されていないことを知っている限り。場所の Java プログラムをハードコーディングしているので、それは問題ではないと思います。

于 2013-11-07T15:21:49.373 に答える
0

このバッチは、「キー」ファイルまたはフォルダーを含むドライブを検索し、ドライブ #: (はい、これは有効なドライブ文字であり、何にも衝突しないほどまれです) を正しいドライブに置き換えます。プログラムで drive #: を使用するだけです。バッチ ファイルが処理中に終了した場合、エラーレベルは 0 になり、それ以外の場合はエラーレベルが 1 になります。

@echo off

    setlocal enableextensions

    rem if our special drive is assigned, release it
    if exist #:\ subst #: /d >nul

    rem if there are problems, exit
    if errorlevel 1 goto endSearch

    rem search drives for "key" file/folder
    set "keyFile=\data\mySpecialFile.csv"
    for %%d in (z y x w v u t s r q p o n m l k j i h g f e d c b a) do (
        vol %%d: >nul 2>nul && if exist "%%d:%keyFile%" (
            rem map our drive
            subst #: %%d:\ > nul 2> nul
            rem if everything ok end search
            if not errorlevel 1 goto endSearch
        )
    )

:endSearch
    rem cleanup and return errorcode as necessary
    endlocal && if exist "#:%keyFile%" ( exit /b 0 ) else (exit /b 1)
于 2013-11-07T19:01:57.680 に答える