在Powershell脚本上运行错误7-zip

时间:2015-08-31 17:50:17

标签: powershell 7zip

我正在编写一个PowerShell脚本来使用7-zip生成备份,但是有些东西无效。当我运行下面的代码时

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"
$BACKUP_DATE = Get-Date -UFormat "%Y-%m-%d"
$LOCAL_BKP = 'E:\_Bkp_Producao'

New-PSDrive –Name "s" –PSProvider FileSystem –Root "\\server\myfolder"
sz a $LOCAL_BKP\bkp_siemens_$BACKUP_DATE.7z S:\*

返回以下消息:

7-Zip [64] 9.38 beta  Copyright (c) 1999-2014 Igor Pavlov  2015-01-03
Scanning
S:\:  WARNING: The system cannot find the path specified.
Creating archive E:\_Bkp_Producao\bkp_siemens_2015-08-31.7z
WARNINGS for files:
S:\ : The system cannot find the path specified.

怎么了?

1 个答案:

答案 0 :(得分:1)

- 旧&抨击答案 -

我知道这真的是PowerShell字符串插值的重复,但我现在找不到那个。

有效的替代方案:

$sz = "${env:ProgramFiles}\7-Zip\7z.exe"
$sz = $env:ProgramFiles + "\7-Zip\7z.exe"
$sz = '{0}\7-Zip\7z.exe' -f $env:ProgramFiles

您也可以尝试使用Join-Path,但我觉得很麻烦。

- 新的热度 -

您需要将-Persist选项添加到New-PSDrive。如果您不使用-Persist,则只有powershell cmdlet可以看到“驱动器”。添加它使“驱动器”可用于所有命令,包括本机Windows命令行应用程序。