powershell 7zip

Ejecutar 7-Zip desde dentro de un script de Powershell



7zip (5)

Encontré this guión y lo adapté a tus necesidades. ¿Puedes por favor intentar:

if (-not (test-path "$env:ProgramFiles/7-Zip/7z.exe")) {throw "$env:ProgramFiles/7-Zip/7z.exe needed"} set-alias sz "$env:ProgramFiles/7-Zip/7z.exe" $Source = "c:/BackupFrom/backMeUp.txt" $Target = "c:/BackupFolder/backup.zip" sz a -mx=9 $Target $Source

Estoy intentando usar 7-Zip para hacer una copia de seguridad de algunos archivos dentro de un script de Powershell (v2).

Yo tengo:

$zipPath = "C:/Program Files/7-Zip/7z.exe" [Array]$zipArgs = "-mx=9 a", "`"c:/BackupFolder/backup.zip`"", "`"c:/BackupFrom/backMeUp.txt`"" &$zipPath $zipArgs;

Pero cuando corro esto me sale:

7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 Error: Incorrect command line

Escribiendo esto en la pantalla me sale:

C:/Program Files/7-Zip/7z.exe -mx=9 a "c:/BackupFolder/backup.zip" "c:/BackupFrom/backMeUp.txt"

Así que asumí que necesitaba poner comillas alrededor de la ruta a 7z.exe, eso me dio:

$zipPath = "C:/Program Files/7-Zip/7z.exe" $zipPath = " `"$zipPath`" " [Array]$zipArgs = "-mx=9 a", "`"c:/BackupFolder/backup.zip`"", "`"c:/BackupFrom/backMeUp.txt`"" &$zipPath $zipArgs;

Pero luego me sale el siguiente error:

The term ''"C:/Program Files/7-Zip/7z.exe"'' is not recognized as the name of a cmdlet, function, script file , or operable program. Check the spelling of the name, or if a path was included, verify that the path is c orrect and try again. At C:/BackupScript/Backup.ps1:45 char:22 + & <<<< `"$zipPath`" $zipArgs; + CategoryInfo : ObjectNotFound: ("C:/Program Files/7-Zip/7z.exe":String) [], CommandNotFound Exception + FullyQualifiedErrorId : CommandNotFoundException

Escribirlo me da:

"C:/Program Files/7-Zip/7z.exe" -mx=9 a "c:/BackupFolder/backup.zip" "c:/BackupFrom/backMeUp.txt"

Que funciona como se espera cuando se pega directamente en una ventana de comando. He estado tratando de resolver esto por un tiempo, pero asumo que me estoy perdiendo algo (probablemente bastante obvio). ¿Alguien puede ver lo que necesito hacer para que esto funcione?


Simplemente el sufijo del comando con un signo

& "C:/Program Files/7-Zip/7z.exe" -mx=9 a "c:/BackupFolder/backup.zip" "c:/BackupFrom/backMeUp.txt"


Tal vez una solución más simple es ejecutar 7-zip en tu Powershell a través de cmd :

cmd /c 7za ...


intente usar el parámetro -archivo para especificar la ubicación del programa o script:

-file "C: / Archivos de programa / someting.exe"


poner "&" carácter especial antes del comando 7z. Ejemplo: & 7z ...