我正在尝试编写一个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-- }
答案 0 :(得分:0)
没有必要自己增加名字。当chn捕获文件达到冒号后指定的大小时,会自动创建并自动命名。
将大小降低到1MB并执行命令会发生什么?