Powershell递增名称并执行cmdline

时间:2012-10-18 16:31:54

标签: windows powershell exchange-server increment

我正在尝试编写一个powershell脚本,它将从本地客户端到Exchange服务器创建Outlook日志(使用NETMON)。问题是文件名没有正确递增。我在网上找到了这个递增的脚本,我理解逻辑(有点)。我用正确的方法来初始化计数器吗?它没有正确重命名文件。它给第二个文件一个_然后第三个文件得到_2然后它停止重命名文件。

也是invoke-expression等待我的cmd退出,或者它只是转到$ count的下一步 - ?

#Directory to complete script in
$path = "c:\Outlook_Logs\" 
cd $path
$cmdline = "Nmcap.exe /network * /captureipv4.address==X.X.X.X /file :\outlook_logs\client_$count.chn:100MB"

#Writes out number of files in directory to console
$count = (get-childitem $path -name).count
Write-Host "Number of Files: $count"

#Sorts items by decsending order
$items = Get-ChildItem | Sort Extension -desc 

#Deletes oldest file by file extension number
del $items[0]

#Copy file from original directory to backup directory
Copy-Item c:\Outlook_Logs\* c:\Outlook_Logs_Temp\

#Sorts items by decsending order
$items = Get-ChildItem | Sort Extension -desc

#Renames files in quotes after NewName argument
$items | ForEach-Object  -begin { $count= (get-childitem $path -name).count }  -process { rename-    item $_ -NewName "client_$count.cap";Invoke-Expression "$cmdline"; $count-- }

1 个答案:

答案 0 :(得分:0)

没有必要自己增加名字。当chn捕获文件达到冒号后指定的大小时,会自动创建并自动命名。

将大小降低到1MB并执行命令会发生什么?