Tengo problemas con .bat cuando trabajo con diferentes discos

Este bat funciona perfecto

@echo off

REM *******************************

REM Obtener fecha formateada
for /F "tokens=2 delims==" %%G in ('wmic OS Get localdatetime /value') do set "fecha=%%G"
set "fecha=%fecha:~0,8%"

REM ****************************

REM Rutas y nombres de archivo
set "ruta_winrar=C:\Program Files (x86)\WinRAR"
set "ruta_archivo=C:\Users\Usuario\Documents"
set "nom_archivo=Memorias.txt"
set "ruta_guardar=C:\Users\Usuario\Desktop\Backup"
set "nom_guardar=Memorias"

REM **********************

REM Crear archivo comprimido usando WinRAR
"%ruta_winrar%\WinRAR.exe" a -r "%ruta_guardar%\%nom_guardar%_%fecha%.rar" "%ruta_archivo%\%nom_archivo%"

REM ***********************

REM Verificar el código de salida de WinRAR y mostrar mensaje de error
if %errorlevel% equ 0 (
echo Archivo comprimido creado correctamente.
) else (
echo Ocurrio un error al crear el archivo comprimido.
echo Mensaje de error:
type "%ruta_guardar%\rar.log"
)

REM *******************************

Pause
Pero cuando quiero comprimir un archivo del disco D y pasarlo a una ruta del C, no lo hace, tampoco me deja hacerlo de D a D

Respuesta
1

Como no me parece lógico que se den los problemas que comentas esté donde esté al archivo a comprimir, o el archivo comprimido, te sugiero que pruebes en primer lugar directamente. Algo como

"C:\Program Files (x86)\WinRAR\WinRAR.exe" a -r D:\prueba.rar D:\<archivo>

Donde <archivo> sería el nombre (path y extensión incluidas) de un archivo existente en la unidad D:

Si este comando directo da problemas pon por aquí el mensaje de error o el pantallazo. Si va bien ya tendremos que ir al detalle del BAT. Para ello te sugiero que hagas ECHO del comando de compresión, antes de ejecutarlo. Podría ser algo así:

@echo off
REM *******************************
REM Obtener fecha formateada
for /F "tokens=2 delims==" %%G in ('wmic OS Get localdatetime /value') do set "fecha=%%G"
set "fecha=%fecha:~0,8%"
REM ****************************
REM Rutas y nombres de archivo
set "ruta_winrar=C:\Program Files (x86)\WinRAR"
set "ruta_archivo=C:\Users\Usuario\Documents"
set "nom_archivo=Memorias.txt"
set "ruta_guardar=C:\Users\Usuario\Desktop\Backup"
set "nom_guardar=Memorias"
REM **********************
REM Crear archivo comprimido usando WinRAR
echo "%ruta_winrar%\WinRAR.exe" a -r "%ruta_guardar%\%nom_guardar%_%fecha%.rar" "%ruta_archivo%\%nom_archivo%"
"%ruta_winrar%\WinRAR.exe" a -r "%ruta_guardar%\%nom_guardar%_%fecha%.rar" "%ruta_archivo%\%nom_archivo%"
REM ***********************
REM Verificar el código de salida de WinRAR y mostrar mensaje de error
if %errorlevel% equ 0 (
echo Archivo comprimido creado correctamente.
) else (
echo Ocurrio un error al crear el archivo comprimido.
echo Mensaje de error:
type "%ruta_guardar%\rar.log"
)
REM *******************************
Pause

Por si te interesa la forma de poner algo en una ventanita independiente (que suele hacer más legible la parte de código) es utilizando el icono "<>" de la barra de herramientas de la página, tercer icono desde la derecha.

Buen día!! Gracias por tu respuesta. (Gracias por el consejo "<>")
Probé tu código con un archivo con ubicación en Disco C y lo comprimió y guardo en forma correcta, pero lo probé con otro archivo en disco D y tiró error.

@echo off
REM **********************************************************************************************************
REM Obtener fecha formateada
for /F "tokens=2 delims==" %%G in ('wmic OS Get localdatetime /value') do set "fecha=%%G"
set "fecha=%fecha:~0,8%"
REM **********************************************************************************************************
REM Rutas y nombres de archivo
set "ruta_winrar=C:\Program Files (x86)\WinRAR"
set "ruta_archivo=D:\Usuario\Documents\Programas"
set "nom_archivo=Facturación.accdb"
set "ruta_guardar=C:\Users\Usuario\Desktop\Backup COCU"
set "nom_guardar=Facturación"
REM **********************************************************************************************************
REM Crear archivo comprimido usando WinRAR
echo "%ruta_winrar%\WinRAR.exe" a -r "%ruta_guardar%\%nom_guardar%_%fecha%.rar" "%ruta_archivo%\%nom_archivo%"
"%ruta_winrar%\WinRAR.exe" a -r "%ruta_guardar%\%nom_guardar%_%fecha%.rar" "%ruta_archivo%\%nom_archivo%"
REM **********************************************************************************************************
REM Verificar el código de salida de WinRAR y mostrar mensaje de error
if %errorlevel% equ 0 (
echo Archivo comprimido creado correctamente.
) else (
echo Ocurrio un error al crear el archivo comprimido.
echo Mensaje de error:
type "%ruta_guardar%\rar.log"
)
REM **********************************************************************************************************
Pause

Probé también hacerlo directo según tu sugerencia

@echo off
REM **********************************************************************************************************
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a -r "D:\Usuario\Documents\Programas\Facturación.rar" "D:\Usuario\Documents\Programas\Facturación.accdb"
REM Verificar el código de salida de WinRAR y mostrar mensaje de error
if %errorlevel% equ 0 (
echo Archivo comprimido creado correctamente.
) else (
echo Ocurrio un error al crear el archivo comprimido.
echo Mensaje de error:
type "%ruta_guardar%\rar.log"
)
REM **********************************************************************************************************
Pause

lo probé con comillas y sin ellas y me da el mismo error
Ocurrio un error al crear el archivo comprimido.
Mensaje de error:
El sistema no puede encontrar el archivo especificado.
Presione una tecla para continuar . . .

Intuyo que el problema está en los caracteres acentuados, concretamente la "ó" de "Facturación". Para asegurarnos de que voy por buen camino creo que podrías probar con archivos que no incluyan esos caracteres. Si se confirma mi intuición ya veríamos luego como podemos abordar el problema.

¡Gracias! Sabés que Sí!! el problema en está maquina era los caracteres especiales

Pues si ya está claro cierra la consulta. Si queda algo por aclarar seguimos con ello.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas