El script de copia de seguridad de la línea de comandos 7zip actúa de forma extraña

Estoy creando un pequeño script de respaldo para mi uso personal, y funciona al 99% en la última versión de 7zip, Win7x64:

:: u: Archivo de actualización

:: -t7z: usa el tipo de archivo 7z (menos compatible y resultados más pequeños)

:: -mx = 9: Compresión "Ultra"

:: -ms = off: no crea un archivo sólido (son incompatibles con el modo de archivo de actualización)

:: -mmt = off: habilitar subprocesos múltiples

:: -r: recursivo (atraviesa todos los subdirectorios)

:: -ssw: comprime archivos bloqueados

:: -w: Working dir to G: drive (sin copia de archivo temporal de disco a disco)

@echo "% userprofile% \ Desktop" >> list.txt

@echo "% perfil de usuario% \ Documentos" >> list.txt

@echo "% userprofile% \ Downloads" >> list.txt

@echo "% userprofile% \ Juegos guardados" >> list.txt

@echo "% perfil de usuario% \ Imágenes" >> list.txt

"C: \ Archivos de programa (x86) \ 7-Zip \ 7z.exe" u -t7z -mx = 9 -ms = off -mmt = on -r -ssw -wg: "G: \ AutoSaveC \ SaveC.7z" @ list.txt

del list.txt

shutdown-s-t 180

Aunque hay dos problemas:

1- Aunque el archivo contiene todas las carpetas y archivos esperados, también contiene cosas que nunca se pretendió que estuvieran allí (solo una parte de los archivos de las carpetas originales):

% perfil de usuario% \ AppData

% userprofile% \ Música

2- También me da advertencias sobre el acceso denegado a carpetas que NUNCA le dije que mirara:

C: \ Users \ LocalAdmin \ AppData \ Local \ Application Data \: ADVERTENCIA: Acceso denegado. C: \ Users \ LocalAdmin \ AppData \ Local \ ElevatedDiagnostics \: ADVERTENCIA: Acceso denegado. C: \ Users \ LocalAdmin \ AppData \ Local \ History \: ADVERTENCIA: Acceso denegado. C: \ Users \ LocalAdmin \ AppData \ Local \ Temp \ msdtadmin \: ADVERTENCIA: Acceso denegado. C: \ Users \ LocalAdmin \ AppData \ Local \ Temporary Internet Files \: ADVERTENCIA: Acceso denegado. C: \ Users \ LocalAdmin \ Application Data \: ADVERTENCIA: Acceso denegado. C: \ Users \ LocalAdmin \ Cookies \: ADVERTENCIA: Acceso denegado. C: \ Users \ LocalAdmin \ Local Settings \: ADVERTENCIA: Acceso denegado. C: \ Users \ LocalAdmin \ Recent \: ADVERTENCIA: Acceso denegado. C: \ Users \ LocalAdmin \ SendTo \: ADVERTENCIA: Acceso denegado.

¿Sabes lo que estoy haciendo mal? ¿O es un error de 7zip?

preguntado el 27 de agosto de 11 a las 19:08

2 Respuestas

Tenga en cuenta que puede haber enlaces blandos a archivos en esos directorios. La carpeta Usuarios en particular está llena de rutas virtuales. Hay rutas allí que existen únicamente para redirigir aplicaciones más antiguas que aún las usan a la ubicación adecuada.

Respondido 27 ago 11, 23:08

Por "enlaces blandos", ¿te refieres a archivos * .lnk? Porque si ese es el caso, ninguno de esos archivos en las carpetas que estoy tratando de guardar apuntan a ubicaciones fuera del alcance de mi copia de seguridad ... - Sin embargo, buena intuición ... - cxnull

Me refiero a enlaces suaves como en archivos que se muestran como archivos normales pero que en realidad están ubicados en otros directorios. A veces, las aplicaciones de Microsoft crean estos vínculos (y pueden ser archivos ocultos). Así es como puede tener una carpeta Documentos en el directorio del usuario que en realidad apunte a una carpeta ubicada en otro lugar. De esta manera, si tenía un programa o script que deseaba copiar algo a la carpeta Documentos, irá al lugar correcto. - Brendan

Oh no, entonces ¿tienes alguna idea de cómo podría reelaborar el guión para solucionar eso? Mi secuencia de comandos original no tenía ninguna de las variables% userprofile% llamadas, sino solo rutas explícitas, y actuaba de la misma manera ... ¿Qué podía hacer? - cxnull

No estoy seguro de que pueda hacer mucho sin hacer que su script sea realmente feo para agregar excepciones (que desafortunadamente no podría decirle cómo hacerlo). Sin embargo, tal como están, es seguro ignorar las advertencias. Si realmente desea deshacerse de esas carpetas adicionales, tal vez pueda eliminarlas del archivo después de agregar todo lo demás. - Brendan

Entonces, ¿no hay forma de que pueda visualizar estos enlaces y editarlos? Oh bien. Rápido y sucio servirá. - cxnull

En lugar de hacer eco del contenido del directorio de la forma en que lo está haciendo, ¿por qué no redirigir la salida de DIR a su archivo de texto? De esta manera, puede filtrar archivos ocultos, archivos .lnk, archivos del sistema y muchas otras opciones para el filtrado de archivos que están a su disposición. Por ejemplo, para eliminar archivos ocultos, del sistema y .lnk:

DIR "%userprofile%\Desktop" /b /s /a:-h-s | FIND /v "*.lnk">>"C:\some\file.txt"

el modificador / b devolverá solo el nombre de archivo.ext, el modificador / s devuelve todos los archivos en dicho directorio Y subdirectorios, y el modificador / a: -hs elimina todos los archivos ocultos y del sistema. Entonces, por supuesto, FIND / v significa buscar todos los archivos que NO contengan la siguiente cadena.

Respondido 31 ago 11, 17:08

Ah, esto podría resultar muy útil. Lo intentaré lo antes posible. Muchas gracias ! - cxnull

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.