USB闪存驱动器批处理文件分配

时间:2013-11-07 14:52:14

标签: batch-file batch-processing batch-rename

我想知道是否有人可以提供帮助。 我编写了一个java程序,在usb闪存驱动器上加载.cvs。该程序很可能用于几种不同的Windows笔记本电脑,但程序使用固定的文件位置,即:F盘。

我想知道当插入闪存驱动器时是否有办法将字母分配固定为类似drive:T,这样无论驱动器插入哪个端口或计算机,都可以通过java自动读取程序。我想在usb上的批处理文件中执行此操作,以便用户无需手动设置计算机来更改闪存驱动器。由于某些程序用户非常老,即使提供了分步说明,也不太可能这样做。

我之前从未写过批处理文件,所以任何帮助都会很棒

亲切的问候

2 个答案:

答案 0 :(得分:1)

您可以使用subst执行此操作:

subst T: %~d0\

只要你知道T:没有使用。既然您正在为一个位置硬编码Java程序,我认为这不是问题。

答案 1 :(得分:0)

此批处理将搜索包含“密钥”文件或文件夹的驱动器,并且驱动器#:(是的,这是一个有效的驱动器号,并且非常罕见,不会与任何东西发生冲突)到正确的驱动器。只需在程序中使用drive#:.如果批处理文件在执行其工作时退出,则errorlevel将为0,否则errorlevel将为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)