Pregunta

Me preguntaba si alguien podría ayudar. He escrito un programa Java que carga A .CVS en una unidad flash USB. Es probable que este programa se use en varias computadoras portátiles de Windows diferentes, pero el programa utiliza un archivo fijo Locataion IE: F Drive.

Me preguntaba si había manera de que cuando la unidad flash esté conectada en la asignación de letras se solucione a algo así como la unidad: t para que no importa en qué puerto o computadora esté conectado en ella, el programa Java pueda leer automáticamente. Quería hacer esto en un archivo por lotes en el USB para que el usuario no tenga que configurar manualmente la computadora para cambiar la unidad flash. Como algunos de los usuarios del programa son muy antiguos y es poco probable que puedan hacerlo, incluso si se proporciona instrucciones paso a paso.

Nunca he escrito un archivo por lotes antes, por lo que cualquier ayuda sería genial

Saludos cordiales

¿Fue útil?

Solución 2

Este lote buscará una unidad que contenga un archivo o carpeta de "clave", y Sust Drive N. Solo use la unidad #: en su programa. Si el archivo por lotes ha salido al hacer su trabajo, ErrorLevel será 0, de lo contrario, 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)

Otros consejos

Puedes usar subst para hacer esto:

subst T: %~d0\

Mientras sepa T: no está en uso. Como está codificando su programa Java para una ubicación, no creo que sea un problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top