
Estoy intentando crear un script por lotes que abrirá un programa en un entorno diferente (para poder crear una versión portátil).
Utilizo esto set APPDATA=%CD%\data
para decirle que haga eso. El problema al que me enfrento es que aparece el siguiente error cuando se inicia el lote:
CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory.
En su lugar, quiero usar el cd
comando para cambiarlo al directorio por lotes. ¿Hay una forma fácil de hacer esto?
Respuesta1
Si está en una unidad de red, es posible que aún tenga problemas a menos que asigne la unidad. ¿Por qué no hacer lo siguiente?
APPDATA=%~dp0
cd /d %APPDATA%
Al hacer un cls también puede borrar el error, pero si el script se ejecuta desde una ruta UNC, recibirá este error, solo tendrá que asignarlo o eliminar el error con CLS.
Respuesta2
Intenta poner esto en el lote:
pushd "%~p0" 2> nul
pushd "\\%~p0" 2> nul
Si se inicia desde una carpeta UNC, la primera línea fallará, pero la segunda funcionará.
Si se inicia desde una carpeta asignada a una unidad, la segunda línea fallará, pero la primera funcionará.
De cualquier manera, la carpeta actual será donde se encuentra el archivo por lotes y podrá cambiar las carpetas desde allí.
Más tarde, puede utilizar cd
para mostrar desde qué carpeta está trabajando.