Powershell 脚本错误 7-zip 运行

error 7-zip running on Powershell script

我正在编写一个 powershell 脚本来使用 7-zip 生成备份,但有些东西不起作用。当我运行下面的代码

if (-not (test-path "$env:ProgramFiles-Zipz.exe")) {throw "$env:ProgramFiles-Zipz.exe needed"} 
set-alias sz "$env:ProgramFiles-Zipz.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:\*

return 以下消息:

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.

怎么了?

-- 老掉牙的答案--

我知道这确实是 powershell 字符串插值的副本,但我现在找不到那个。

可行的替代方案:

$sz = "${env:ProgramFiles}-Zipz.exe"
$sz = $env:ProgramFiles + "-Zipz.exe"
$sz = '{0}-Zipz.exe' -f $env:ProgramFiles

你也可以试试Join-Path,不过我觉得很麻烦

-- 新热点--

您需要将 -Persist 选项添加到 New-PSDrive。如果您不使用 -Persist,则 "drive" 仅对 powershell cmdlet 可见。添加它使 "drive" 可用于所有命令,包括本机 windows 命令行应用程序。