Pergunta

Eu queria saber se alguém poderia ajudar. Eu escrevi um programa Java que carrega um .cvs em uma unidade flash USB. É provável que este programa seja usado em vários laptops Windows diferentes, mas o programa usa uma unidade de locataion de arquivo fixo, isto é: f Drive.

Fiquei me perguntando se havia como a unidade flash está conectada na atribuição de letra é consertada a algo como unidade: T, independentemente de qual porta ou computador a unidade esteja conectada a ela pode ser lida automaticamente pelo programa Java. Eu queria fazer isso em um arquivo em lote no USB, para que o usuário não precise definir manualmente o computador para alterar a unidade flash. Como alguns dos usuários do programa são muito antigos e é improvável que seja capaz de fazer isso, mesmo que forneça instruções passo a passo.

Eu nunca escrevi um arquivo em lote antes, para que qualquer ajuda seria ótima

atenciosamente

Foi útil?

Solução 2

Este lote procurará uma unidade que contém um arquivo ou pasta "chave" e a unidade submarina #: (sim, esta é uma letra de unidade válida e rara o suficiente para não colidir com nada) na unidade correta. Basta usar o drive #: em seu programa. Se o arquivo em lote tiver saído em fazer seu trabalho, o ErrorLevel será 0, caso contrário, o ErrorLevel será 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)

Outras dicas

Você pode usar subst para fazer isso:

subst T: %~d0\

Contanto que você conheça T: não está em uso. Como você está codificando seu programa Java para um local, não acho que seja um problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top