Powershell Archive脚本win2008r2问题

时间:2013-07-19 14:56:41

标签: powershell

我创建了一个ps脚本来将MS SCCM备份文件夹移动到另一个位置并删除超过2天的文件夹:

$Date = Get-Date -format d.M.yyyy
$BackupDir = "\\Source_Servername\Folder1\Folder2"
$ArchiveDir = "\\Destination_Servername\Folder1\Folder2"
set-alias 7za "$ArchiveDir\7za.exe"    
Get-Item "$ArchiveDir\*" |? {$_.psiscontainer -and $_.lastwritetime -le (get-date).adddays(-2)} |% {remove-item $_ -Recurse -Confirm:$false}
7za a -r "$ArchiveDir\$Date\$BackupDir.7z" $BackupDir

我使用Win 8创建了这个,当我尝试在win2008r2服务器上应用它时,它失败并出现以下错误:

错误的数字常数:7。     在E:\ xxxxx \ xxxxx \ xxxx \ Afterbackup.ps1:9 char:2     + 7<<<< za a -r“$ ArchiveDir \ $ Date \ $ BackupDir.7z”$ BackupDir     + CategoryInfo:ParserError:(7:String)[],ParseException     + FullyQualifiedErrorId:BadNumericConstant

当我像这样输入7za.exe的完整路径时,它可以正常工作: \ Destination_Servername \ Folder1 \ Folder2 \ 7za a -r“$ ArchiveDir \ $ Date \ $ BackupDir.7z”$ BackupDir

我是PowerShell的新手所以我会帮助任何帮助:)

1 个答案:

答案 0 :(得分:2)

PowerShell v1& v2不喜欢以数字开头的命令。这个问题似乎已在v3中得到解决,这可能是它在您的工作站上运行的原因。您可以通过在执行时在别名前面放置反引号来解决此问题:

`7za a -r "$ArchiveDir\$Date\$BackupDir.7z" $BackupDir

或者,您可以将别名更改为不以数字开头。