我是PowerShell的新手,我需要创建一个脚本(也将通过调度程序来使用),该脚本将:
- 将网络路径作为驱动器(我认为我都使用以下代码做到这一点)
#Machine hostname - needed for archive creation and identification
$hname = hostname
#Map network drive
$net = $(New-Object -Com WScript.Network)
$net.MapNetworkDrive("X:", "\your network shareyour folder",
$false, "domainuser", "password")
#Network folder where archive will be moved and stored
$newdir = "X:your folder$hname"
- 创建一个带有昨天日志的邮政编码,该文件的格式名称:
$today = (Get-Date).AddDays(-1).ToString('yyyyMMdd')
something_$today_something.w3c
- 在临时本地文件夹中的邮政编码
- 将邮政编码移至配置的网络路径
- 删除原始日志文件
任何帮助完成和优化此脚本的帮助将不胜感激。
谢谢。
,由于您已经使用了dastardly com对象,因此可以尝试以下来进行zipping:
$zipFileName = "c:templogs.zip"
$shell = New-Object -Com Shell.Application
New-Item $zipFileName -Type f
$zipItem = $shell.NameSpace($zipFileName)
$zipItem.CopyHere( "PathToYourLogFile",16)
因此,如果您有一个装满日志文件的文件夹,则可以运行此
$pathToYourLogsFolder = "c:somepath"
ls $pathToYourLogsFolder | % { $zipItem.CopyHere( $_.FullName,16) }
,然后按照您的要求处理zip和剩余文件。您可以在MSDN上阅读有关 COPYHERE 函数的更多信息,这将在Win2012
上不起作用http://msdn.microsoft.com/en-us/library/windows/desktop/bb787866(v = vs.85).aspx