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 命令行应用程序。
我正在编写一个 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 命令行应用程序。