Un script por lotes diseñado para copiar otro script por lotes en las carpetas de Documentos de los usuarios en Windows tuvo el efecto no deseado de crear una carpeta de ~1 GB en la carpeta de Documentos de un usuario cuando lo ejecutó con privilegios de administrador. Después de revisar el script, todavía no estoy seguro de qué causó este comportamiento.
Esta es la fuente, llamada test1_install:
@echo off
mkdir %userprofile%\Documents\test1
copy *.* "%userprofile%\Documents\test1\" /Y
copy "test1 - Shortcut.lnk" "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup" /Y
Esto se coloca en una carpeta que contiene otros tres archivos: 'test1.bat', 'input.txt' y 'test1 - Shortcut.lnk'. La carpeta completa tiene un tamaño de sólo 16 KB.
Estoy seguro de que me debo perder algo obvio. ¿Qué es?
Respuesta1
La línea copy *.* "%userprofile%\Documents\test1\" /Y
hace que los datos de copia por lotes no sean del directorio en el que se encuentra.se almacena en, pero desde el directoriose llama desde. Inserte cd /d %~dp0%
después de la primera línea, para que el último directorio sea el primero.