<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Vadims Podans's blog - PowerShell | Scripting Games</title>
    <link>http://www.sysadmins.lv/</link>
    <description>PowerShell powered</description>
    <image>
      <url>http://www.sysadmins.lv/images/imgusr/bilde.jpg</url>
      <title>Vadims Podans's blog - PowerShell | Scripting Games</title>
      <link>http://www.sysadmins.lv/</link>
    </image>
    <language>en-us</language>
    <copyright>Vadims Podāns</copyright>
    <lastBuildDate>Mon, 15 Jun 2009 21:15:38 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>vpodans@sysadmins.lv</managingEditor>
    <webMaster>vpodans@sysadmins.lv</webMaster>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=2fb222c6-20de-459b-ad2a-c3ccc1328d5c</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,2fb222c6-20de-459b-ad2a-c3ccc1328d5c.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,2fb222c6-20de-459b-ad2a-c3ccc1328d5c.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=2fb222c6-20de-459b-ad2a-c3ccc1328d5c</wfw:commentRss>
      <title>Scripting Games 2009 – Event6 (The 110-meter hurdles)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,2fb222c6-20de-459b-ad2a-c3ccc1328d5c.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,2fb222c6-20de-459b-ad2a-c3ccc1328d5c.aspx</link>
      <pubDate>Mon, 15 Jun 2009 21:15:38 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 35px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Scripting Games 2009" border="0" alt="Scripting Games 2009" align="left" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/ScriptingGames2009Event6The110meterhurdl_106E9/scripto_torchrunner_6.gif" width="150" height="167" /&gt; Бег на 110 метров с барьерами.&lt;/p&gt;  &lt;h1 align="center"&gt;Beginner Division&lt;/h1&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;В исходном файле скрипта найти все ошибки и исправить их. При запуске скрипта на рабочем столе должны появиться 3 ярылка: на сам скрипт, на веб-сайт Hey, Scripting Guys! и ярлык на блокнот (notepad.exe). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Решение:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Всё копировать не буду, а только приведу уже готовый скрипт. Сам текст скрипта можно взять тут: &lt;a href="http://blogs.technet.com/heyscriptingguy/archive/2009/06/14/hey-scripting-guy-2009-scripting-games-event-6-details-released-beginner-and-advanced-110-meter-hurdles.aspx"&gt;Hey, Scripting Guy! Opening Ceremonies and 2009 Scripting Games Event 6 Details (Beginner and Advanced; 110-meter hurdles)&lt;/a&gt;. Исходные ошибочные строки привёл в комментарии:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt;==========================================================================&lt;/span&gt;&lt;span style="color: #008000"&gt;
#
#&lt;/span&gt;&lt;span style="color: #008000"&gt; PowerShell:  AUTHOR: Ed Wilson , msft,  6/15/2009&lt;/span&gt;&lt;span style="color: #008000"&gt;
#
#&lt;/span&gt;&lt;span style="color: #008000"&gt; NAME: Beg_6.ps1&lt;/span&gt;&lt;span style="color: #008000"&gt;
#
#&lt;/span&gt;&lt;span style="color: #008000"&gt; COMMENT: Key concepts are listed below:&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt;1. Uses wscript.shell to create three shortcuts on the desktop. The first is a shortcut&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt;2. to this actual script. It uses the scriptfullName property to assign the path.&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt;3. The second is a simple Web site URL shortcut. The third one is a shortcut to&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt;4. Notepad.&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt;==========================================================================&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000080"&gt;$ErrorActionPreference&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;SilentlyContinue&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Set-PSDebug&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Strict&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Variable&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;objShell&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt;instance of the wshSHell object&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Variable&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;strDesktop&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt;pointer to desktop special folder&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Variable&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt;used to set properties of the shortcut. Comes from using createShortCut&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Variable&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;objURL&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt;used to set properties of webshortcut.&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; было: $oShell = New-Object -ComObject (&amp;quot;WScript.Shell&amp;quot;) - ошибка в имени переменной&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShell&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ComObject&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;WScript.Shell&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #800080"&gt;$strDesktop&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$objShell&lt;/span&gt;&lt;span style="color: #000000"&gt;.SpecialFolders.item(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Desktop&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)

&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$objShell&lt;/span&gt;&lt;span style="color: #000000"&gt;.CreateShortcut(&lt;/span&gt;&lt;span style="color: #800080"&gt;$strDesktop&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;\Shortcut Script.lnk&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; было: $objShortCut.TargetPath = $MyInvocation.ScriptName - неверное свойство&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.TargetPath &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$MyInvocation&lt;/span&gt;&lt;span style="color: #000000"&gt;.MyCommand
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.WindowStyle &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.Hotkey &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;CTRL+SHIFT+F&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.IconLocation &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;notepad.exe, 2&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.Description &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Shortcut Script&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.WorkingDirectory &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$strDesktop&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; было: $objShortCut.Save - при вызове метода забыли скобки&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.Save()

&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; $wshShell = New-Object -ComObject wscript.shell - не нужно совсем&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; было: $objURL = $objShell.CreateShortcut($strDesktop &amp;amp; &amp;quot;\The Microsoft Scripting Guys.url&amp;quot;)&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; вместо + поставили &amp;amp; из VBS&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objURL&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$objShell&lt;/span&gt;&lt;span style="color: #000000"&gt;.CreateShortcut(&lt;/span&gt;&lt;span style="color: #800080"&gt;$strDesktop&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;\The Microsoft Scripting Guys.url&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objURL&lt;/span&gt;&lt;span style="color: #000000"&gt;.TargetPath &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;http://www.ScriptingGuys.com&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; было: $objURL.Discription = &amp;quot;Scripting Guys&amp;quot;. Такого свойства в URL файлах нету.&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objURL&lt;/span&gt;&lt;span style="color: #000000"&gt;.Save()

&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; было: $wshNetwork = New-Object -ComObject wscript.network - не нужно свсем&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; было: $objShortCut = $objShell.CreateShortcut($strDesktop + &amp;quot;\notepad.link&amp;quot;)&lt;/span&gt;&lt;span style="color: #008000"&gt;
#&lt;/span&gt;&lt;span style="color: #008000"&gt; расширение не LNK, а LINK&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$objShell&lt;/span&gt;&lt;span style="color: #000000"&gt;.CreateShortcut(&lt;/span&gt;&lt;span style="color: #800080"&gt;$strDesktop&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;\notepad.lnk&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; было: $objShortCut.TargetPath = &amp;quot;notpad.exe&amp;quot; - пропустили букву E&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.TargetPath &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;notepad.exe&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.IconLocation &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;notepad.exe, 0&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.description &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;notepad&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$objShortCut&lt;/span&gt;&lt;span style="color: #000000"&gt;.Save()&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Если запустить этот скрипт из файла, то получится 3 ярлыка и первый будет вести именно на файл самого скрипта.&lt;/p&gt;

&lt;h1 align="center"&gt;Advanced Division&lt;/h1&gt;

&lt;p&gt;и снова задача на парсинг текста. Потребуется файл &lt;b&gt;network trace_adv6.txt&lt;/b&gt; из Competitors pack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;распарсить вывод tracert и показать участки, на которых наблюдается замедление скорости (т.е. время прыжка увеличивается) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Решение:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Самая первая задача, которая перед нами встаёт – создание регулярного выражения. Выражение у меня получилось вот такое:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#0000ff"&gt;^\d+\W+(\d+)\D+(\d+)\D+(\d+) ms&amp;#160; (.*)&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Что оно делает: оно откидывает порядковый номер прыжка (&lt;strong&gt;hop&lt;/strong&gt;), любую небуквенную последовательность (в общем смысле [A-Za-z0-9]) и выбирает первую последовательность чисел. Эта последовательность будет будет являться временем первой попытки посылки ICMP пакета. Далее откидывается любая нечисловая последовательность и выбирается первая же числовая последовательность, которая будет являться второй попыткой посылки ICMP пакета. То же самое делаем до 3-й попытки текущего прыжка включительно. После выкидываем пробел и последовательность букв “ms”, за ней 2 пробела и захватываем всё до конца строки, что будет являеться адресом и/или именем маршрутизатора. Т.к. перед порядковыми номерами прыжков (до 9 включительно) присуствует пробел, то его можно средать методом &lt;strong&gt;Trim()&lt;/strong&gt; и уже подставлять выражение. Из захваченного времени нужно на лету посчитать среднее значение. И вот что у меня вышло:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] gc &amp;quot;Network Trace_Adv6.txt&amp;quot; | ?{$_.trim() -match &amp;quot;^\d+\W+(\d+)\D+(\d+)\D+(\d+) ms  (.*)&amp;quot;} | %{
&amp;gt;&amp;gt;     $current = &amp;quot;&amp;quot; | Select @{n='Average';e={[int](([int]$matches[1]+[int]$matches[2]+[int]$matches[3])/3)}},
&amp;gt;&amp;gt;     @{n='Name';e={$matches[4]}}
&amp;gt;&amp;gt;     $current
&amp;gt;&amp;gt; } | ft -a
&amp;gt;&amp;gt;

Average Name
------- ----
      1 r10.ntwk.nwtraders.com [192.168.227.82]
      1 r20.ntwk.nwtraders.com [192.168.169.1]
      1 r50.ntwk.nwtraders.com [192.226.42.47]
     13 r70.ntwk.nwtraders.com [192.226.42.12]
     34 r12.ntwk.nwtraders.com [192.226.42.9]
     34 r40.ntwk.nwtraders.com [192.226.42.22]
    104 r22.ntwk.nwtraders.com [192.226.34.80]
    105 r32.ntwk.nwtraders.com [192.226.47.10]
    125 r35.ntwk.nwtraders.com [192.226.41.198]
    173 r37.ntwk.nwtraders.com [192.226.38.14]
    173 r38.ntwk.nwtraders.com [192.226.226.119]
    389 192.168.216.5
    390 r60.ntwk.nwtraders.com [192.168.236.9]


&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Теперь нужно определить на каких участках происходит замедление. Я решил поэтапно циклом For проверять каждый элемент массива – меньше ли он, чем следующий элемент или нет. Если он равен или больше следующего элемента, то ничего делать не надо, т.к. замедления нету. Если меньше, то он является пограничным этапом, где происходит замедление и выводим его на экран. Привожу уже готовый код и полученный результат:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; @()
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;gc&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Network Trace_Adv6.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; | ?{&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.trim() &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-match&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;^\d+\W+(\d+)\D+(\d+)\D+(\d+) ms  (.*)&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;} | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$current&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Select&lt;/span&gt;&lt;span style="color: #000000"&gt; @{n&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Average&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{[&lt;/span&gt;&lt;span style="color: #008080"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;](([&lt;/span&gt;&lt;span style="color: #008080"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$matches&lt;/span&gt;&lt;span style="color: #000000"&gt;[1]+[&lt;/span&gt;&lt;span style="color: #008080"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$matches&lt;/span&gt;&lt;span style="color: #000000"&gt;[2]+[&lt;/span&gt;&lt;span style="color: #008080"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$matches&lt;/span&gt;&lt;span style="color: #000000"&gt;[3])&lt;/span&gt;&lt;span style="color: #ff0000"&gt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;3&lt;/span&gt;&lt;span style="color: #000000"&gt;)}},
    @{n&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800080"&gt;$matches&lt;/span&gt;&lt;span style="color: #000000"&gt;[4]}}
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$current&lt;/span&gt;&lt;span style="color: #000000"&gt;
}
$(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$i&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;/span&gt;&lt;span style="color: #800080"&gt;$i&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-le&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt;.Count; &lt;/span&gt;&lt;span style="color: #800080"&gt;$i&lt;/span&gt;&lt;span style="color: #ff0000"&gt;++&lt;/span&gt;&lt;span style="color: #000000"&gt; ) {
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #800080"&gt;$i&lt;/span&gt;&lt;span style="color: #000000"&gt;].Average &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-lt&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #800080"&gt;$i&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;].Average) {&lt;/span&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #800080"&gt;$i&lt;/span&gt;&lt;span style="color: #000000"&gt;]}
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$i&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt;.Count &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;)) {&lt;/span&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #800080"&gt;$i&lt;/span&gt;&lt;span style="color: #000000"&gt;]}
}) | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;ft&lt;/span&gt;&lt;span style="color: #000000"&gt; @{l&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Average&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.Average};a&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;left&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;}, @{l&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.name}} &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-AutoSize&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $sum = @()
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] gc &amp;quot;Network Trace_Adv6.txt&amp;quot; | ?{$_.trim() -match &amp;quot;^\d+\W+(\d+)\D+(\d+)\D+(\d+) ms  (.*)&amp;quot;} | %{
&amp;gt;&amp;gt;     $current = &amp;quot;&amp;quot; | Select @{n='Average';e={[int](([int]$matches[1]+[int]$matches[2]+[int]$matches[3])/3)}},
&amp;gt;&amp;gt;     @{n='Name';e={$matches[4]}}
&amp;gt;&amp;gt;     $sum += $current
&amp;gt;&amp;gt; }
&amp;gt;&amp;gt; $(for ($i = 0; $i -le $sum.Count; $i++ ) {
&amp;gt;&amp;gt;     if ($sum[$i].Average -lt $sum[$i + 1].Average) {$sum[$i]}
&amp;gt;&amp;gt;     if ($i -eq ($sum.Count - 1)) {$sum[$i]}
&amp;gt;&amp;gt; }) | ft @{l='Average';e={$_.Average};a='left'}, @{l='Name';e={$_.name}} -AutoSize
&amp;gt;&amp;gt;

Average Name
------- ----
1       r50.ntwk.nwtraders.com [192.226.42.47]
13      r70.ntwk.nwtraders.com [192.226.42.12]
34      r40.ntwk.nwtraders.com [192.226.42.22]
104     r22.ntwk.nwtraders.com [192.226.34.80]
105     r32.ntwk.nwtraders.com [192.226.47.10]
125     r35.ntwk.nwtraders.com [192.226.41.198]
173     r38.ntwk.nwtraders.com [192.226.226.119]
389     192.168.216.5
390     r60.ntwk.nwtraders.com [192.168.236.9]


&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;А теперь обратите внимание на одну вещь, о которой не все знают:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;pre&gt;  &lt;p&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;ft&lt;/span&gt;&lt;span style="color: #000000"&gt; @{l&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Average&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.Average};a&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;left&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;при форматировании &lt;strong&gt;Format-Table&lt;/strong&gt; вы можете атрибутум &lt;strong&gt;A&lt;/strong&gt; (от слова align) двигать содержимое колонки относительно названия. В первом примере у меня стандартное форматирование и выравнивание &lt;strong&gt;Avarage&lt;/strong&gt; по правому краю. Здесь же я содержимое выравнил по левому краю, чтобы не сливались цифры. Хотя это решается удалением &lt;strong&gt;–AutoSize&lt;/strong&gt;, но мне нравится этот ключ &lt;img alt=":)" src="/smilies/happy.gif"&gt; вобщем, об этой фиче не забывайте.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=2fb222c6-20de-459b-ad2a-c3ccc1328d5c"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,2fb222c6-20de-459b-ad2a-c3ccc1328d5c.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / Scripting Games</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=3e718992-80e2-458a-b2a6-ad293c46fe0c</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,3e718992-80e2-458a-b2a6-ad293c46fe0c.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,3e718992-80e2-458a-b2a6-ad293c46fe0c.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=3e718992-80e2-458a-b2a6-ad293c46fe0c</wfw:commentRss>
      <title>Scripting Games 2009 – Event5 (The 400-meter race)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,3e718992-80e2-458a-b2a6-ad293c46fe0c.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,3e718992-80e2-458a-b2a6-ad293c46fe0c.aspx</link>
      <pubDate>Sun, 14 Jun 2009 10:16:39 GMT</pubDate>
      <description>&lt;div&gt;&lt;h1 align="center"&gt;Beginner Division&lt;/h1&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 30px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="Summer Scripting Games 2009" border="0" alt="Summer Scripting Games 2009" align="left" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/ScriptingGames2009The400meterrace_14888/scripto_torchrunner_3.gif" width="150" height="167" /&gt; задача на работу с реестром.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Найти текущее значение максимального количества закачек в Internet Explorer &lt;/li&gt;    &lt;li&gt;Увеличить это число на другое значение &lt;/li&gt;    &lt;li&gt;при чтении этого значения предусмотреть проверку существования этого параметра &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Решение:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Ключи и значения реестра для этой задачи можно найти тут: &lt;a title="http://support.microsoft.com/kb/282402" href="http://support.microsoft.com/kb/282402"&gt;http://support.microsoft.com/kb/282402&lt;/a&gt;. В принципе, очень просто тут:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #800080"&gt;$path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #ff0000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Test-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$path&lt;/span&gt;&lt;span style="color: #000000"&gt;)) {&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Item&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ItemType&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Registry&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Force&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;}
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #ff0000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Get-ItemProperty&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$path&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;).MaxConnectionsPer1_0Server) {
    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Warning&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;MaxConnectionsPer1_0Server property doesn't exist&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    [&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008080"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;](&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-ItemProperty&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;MaxConnectionsPer1_0Server&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Value&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-PropertyType&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;DWord&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
} &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt; {&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;MaxConnectionsPer1_0Server is: &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Get-ItemProperty&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$path&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;).MaxConnectionsPer1_0Server}
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #ff0000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Get-ItemProperty&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$path&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;).MaxConnectionsPerServer) {
    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Warning&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;MaxConnectionsPerServer property doesn't exist&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    [&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008080"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;](&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-ItemProperty&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$path&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;MaxConnectionsPerServer&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Value&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-PropertyType&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;DWord&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
} &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt; {&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;MaxConnectionsPerServer is: &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Get-ItemProperty&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$path&lt;/span&gt;&lt;span style="color: #000000"&gt;).MaxConnectionsPerServer}&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;и вот вывод:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $path = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] if (!(Test-Path $path)) {New-Item -ItemType Registry -Path $path -Force}
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] if (!(Get-ItemProperty $path).MaxConnectionsPer1_0Server) {
&amp;gt;&amp;gt;     Write-Warning &amp;quot;MaxConnectionsPer1_0Server property doesn't exist&amp;quot;
&amp;gt;&amp;gt;     [void](New-ItemProperty -Path $path -Name 'MaxConnectionsPer1_0Server' -Value 10 -PropertyType 'DWord')
&amp;gt;&amp;gt; } else {&amp;quot;MaxConnectionsPer1_0Server is: &amp;quot; + (Get-ItemProperty $path).MaxConnectionsPer1_0Server}
&amp;gt;&amp;gt; if (!(Get-ItemProperty $path).MaxConnectionsPerServer) {
&amp;gt;&amp;gt;     Write-Warning &amp;quot;MaxConnectionsPerServer property doesn't exist&amp;quot;
&amp;gt;&amp;gt;     [void](New-ItemProperty -Path $path -Name 'MaxConnectionsPerServer' -Value 10 -PropertyType 'DWord')
&amp;gt;&amp;gt; } else {&amp;quot;MaxConnectionsPerServer is: &amp;quot; + (Get-ItemProperty $path).MaxConnectionsPerServer}
&amp;gt;&amp;gt;
&lt;font color="#ffff00"&gt;WARNING: MaxConnectionsPer1_0Server property doesn't exist
WARNING: MaxConnectionsPerServer property doesn't exist&lt;/font&gt;
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $path = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] if (!(Test-Path $path)) {New-Item -ItemType Registry -Path $path -Force}
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] if (!(Get-ItemProperty $path).MaxConnectionsPer1_0Server) {
&amp;gt;&amp;gt;     Write-Warning &amp;quot;MaxConnectionsPer1_0Server property doesn't exist&amp;quot;
&amp;gt;&amp;gt;     [void](New-ItemProperty -Path $path -Name 'MaxConnectionsPer1_0Server' -Value 10 -PropertyType 'DWord')
&amp;gt;&amp;gt; } else {&amp;quot;MaxConnectionsPer1_0Server is: &amp;quot; + (Get-ItemProperty $path).MaxConnectionsPer1_0Server}
&amp;gt;&amp;gt; if (!(Get-ItemProperty $path).MaxConnectionsPerServer) {
&amp;gt;&amp;gt;     Write-Warning &amp;quot;MaxConnectionsPerServer property doesn't exist&amp;quot;
&amp;gt;&amp;gt;     [void](New-ItemProperty -Path $path -Name 'MaxConnectionsPerServer' -Value 10 -PropertyType 'DWord')
&amp;gt;&amp;gt; } else {&amp;quot;MaxConnectionsPerServer is: &amp;quot; + (Get-ItemProperty $path).MaxConnectionsPerServer}
&amp;gt;&amp;gt;
MaxConnectionsPer1_0Server is: 10
MaxConnectionsPerServer is: 10
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;как бы ничего сложного.&lt;/p&gt;

&lt;h1 align="center"&gt;Advanced Division&lt;/h1&gt;

&lt;p&gt;работа с тэгами файлов. Потребуются файлы &lt;strong&gt;TechEd1.JPG&lt;/strong&gt;, &lt;strong&gt;TechEd2.JPG&lt;/strong&gt; и &lt;strong&gt;TechEd3.JPG&lt;/strong&gt; из Competitors Pack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;прочитать следующие EXIF свойства файлов: &lt;/li&gt;

  &lt;li&gt;Имя &lt;/li&gt;

  &lt;li&gt;когда снимок был сделан &lt;/li&gt;

  &lt;li&gt;свойство Make &lt;/li&gt;

  &lt;li&gt;и модель камеры, которой был сделан снимок &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Решение:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p align="justify"&gt;Задача не такая и сложная, на самом деле, как кажется. Для начала нам потребуется класс &lt;a href="http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.aspx" target="_blank"&gt;System.Drawing.Bitmap&lt;/a&gt; и его метод &lt;a href="http://msdn.microsoft.com/en-us/library/system.drawing.image.getpropertyitem.aspx" target="_blank"&gt;GetPropertyItem&lt;/a&gt;. Для работы с этим классом нужно подключить библиотеку System.Drawing.dll:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #008080"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;][&lt;/span&gt;&lt;span style="color: #008080"&gt;reflection.assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;]::&lt;/span&gt;&lt;span style="color: #8b4513"&gt;loadfile&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;и создать объект &lt;a href="http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.aspx" target="_blank"&gt;System.Drawing.Bitmap&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #800080"&gt;$drawing&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;system.drawing.bitmap&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ArgumentList&lt;/span&gt;&lt;span style="color: #000000"&gt; .\&lt;/span&gt;&lt;span style="color: #800000"&gt;TechEd1.jpg&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p align="justify"&gt;Этот объект будет содержать всё нам необходимое. Чтобы посмотреть нужные нам свойства, нужно получить где-то список всех ID, которым соответствуют эти свойства. К сожалению я не нашёл такого списка на MSDN, а только отдельными частями в интернете: 
  &lt;br /&gt;&lt;a title="http://www.exif.org/specifications.html" href="http://www.exif.org/specifications.html"&gt;http://www.exif.org/specifications.html&lt;/a&gt;&lt;/p&gt;

&lt;p align="justify"&gt;там в конце PDF файла есть Appendix с таблицой ID на эту тему. Если посмотреть в таблицу, то увидим, что Model находится под ID = 272. Глянем, что там есть:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $drawing = New-Object system.drawing.bitmap -ArgumentList .\TechEd1.jpg
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $drawing.GetPropertyItem(271).value
67
97
110
111
110
0
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p align="justify"&gt;Как-то не очень радует такой вывод. Но если внимательно посмотреть на эти цифры, то можно заметить, что они не превышают число 256, что подсказывает, что это массив &lt;strong&gt;ASCII&lt;/strong&gt; байтов. Эти ASCII байты можно сконвертировать в элемент вот так: &lt;strong&gt;[char]ASCII_Number&lt;/strong&gt;. А т.к. это массив, то его нужно собрать либо методом &lt;strong&gt;ToString()&lt;/strong&gt; или оператором &lt;strong&gt;–Join&lt;/strong&gt;, который есть в PowerShell V2:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $drawing = New-Object system.drawing.bitmap -ArgumentList .\TechEd1.jpg
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $drawing.GetPropertyItem(271).value
67
97
110
111
110
0
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] -join ($drawing.GetPropertyItem(271).value | %{[char]$_})
Canon
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p align="justify"&gt;Вот так оно всяко лучше стало. По такой же схеме выбираем и собираем все остальные свойства:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #008080"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;][&lt;/span&gt;&lt;span style="color: #008080"&gt;reflection.assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;]::&lt;/span&gt;&lt;span style="color: #8b4513"&gt;loadfile&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;dir&lt;/span&gt;&lt;span style="color: #000000"&gt; *.jpg | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;{
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$drawing&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;system.drawing.bitmap&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ArgumentList&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$photo&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800000"&gt;Author&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800000"&gt;Make&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800000"&gt;Model&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800000"&gt;DateTaken&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$photo&lt;/span&gt;&lt;span style="color: #000000"&gt;.Name &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;.Name
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$photo&lt;/span&gt;&lt;span style="color: #000000"&gt;.Author &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-join&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$drawing&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;GetPropertyItem&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;315&lt;/span&gt;&lt;span style="color: #000000"&gt;).&lt;/span&gt;&lt;span style="color: #8b4513"&gt;value&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{[&lt;/span&gt;&lt;span style="color: #008080"&gt;char&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;})
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$photo&lt;/span&gt;&lt;span style="color: #000000"&gt;.Make &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-join&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$drawing&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;GetPropertyItem&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;271&lt;/span&gt;&lt;span style="color: #000000"&gt;).&lt;/span&gt;&lt;span style="color: #8b4513"&gt;value&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{[&lt;/span&gt;&lt;span style="color: #008080"&gt;char&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;})
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$photo&lt;/span&gt;&lt;span style="color: #000000"&gt;.Model &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-join&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$drawing&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;GetPropertyItem&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;272&lt;/span&gt;&lt;span style="color: #000000"&gt;).&lt;/span&gt;&lt;span style="color: #8b4513"&gt;value&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{[&lt;/span&gt;&lt;span style="color: #008080"&gt;char&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;})
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$photo&lt;/span&gt;&lt;span style="color: #000000"&gt;.DateTaken &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-join&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$drawing&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;GetPropertyItem&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;36867&lt;/span&gt;&lt;span style="color: #000000"&gt;).&lt;/span&gt;&lt;span style="color: #8b4513"&gt;value&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{[&lt;/span&gt;&lt;span style="color: #008080"&gt;char&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;})
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$photo&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;} | &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;ft&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-AutoSize&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] [void][reflection.assembly]::loadfile(&amp;quot;C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll&amp;quot;)
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] dir *.jpg | %{
&amp;gt;&amp;gt;     $drawing = New-Object system.drawing.bitmap -ArgumentList $_
&amp;gt;&amp;gt;     $photo = &amp;quot;&amp;quot; | Select Name, Author, Make, Model, DateTaken
&amp;gt;&amp;gt;     $photo.Name = $_.Name
&amp;gt;&amp;gt;     $photo.Author = -join ($drawing.GetPropertyItem(315).value | %{[char]$_})
&amp;gt;&amp;gt;     $photo.Make = -join ($drawing.GetPropertyItem(271).value | %{[char]$_})
&amp;gt;&amp;gt;     $photo.Model = -join ($drawing.GetPropertyItem(272).value | %{[char]$_})
&amp;gt;&amp;gt;     $photo.DateTaken = -join ($drawing.GetPropertyItem(36867).value | %{[char]$_})
&amp;gt;&amp;gt;     $photo
&amp;gt;&amp;gt; } | ft -AutoSize
&amp;gt;&amp;gt;

Name        Author     Make   Model               DateTaken
----        ------     ----   -----               ---------
TechEd1.JPG Ed Wilson  Canon  Canon PowerShot G9  2009:05:12 10:41:03
TechEd2.JPG Ed Wilson  Canon  Canon PowerShot G7  2009:05:12 10:25:59
TechEd3.JPG Ed Wilson  Sony   A-9                 2009:05:12 10:26:48


&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p align="justify"&gt;Вобщем, как видите, тут тоже ничего сверхсложного нету.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=3e718992-80e2-458a-b2a6-ad293c46fe0c"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,3e718992-80e2-458a-b2a6-ad293c46fe0c.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / PowerShell V2</category>
      <category>PowerShell / Scripting Games</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=7c0ba133-e2ee-47b8-a14d-9bb3943fb45f</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,7c0ba133-e2ee-47b8-a14d-9bb3943fb45f.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,7c0ba133-e2ee-47b8-a14d-9bb3943fb45f.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=7c0ba133-e2ee-47b8-a14d-9bb3943fb45f</wfw:commentRss>
      <title>Scripting Games 2009 – Event4 (The high jump)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,7c0ba133-e2ee-47b8-a14d-9bb3943fb45f.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,7c0ba133-e2ee-47b8-a14d-9bb3943fb45f.aspx</link>
      <pubDate>Sat, 13 Jun 2009 21:17:31 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 30px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="Summer Scripting Games 2009" border="0" alt="Summer Scripting Games 2009" align="left" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/ScriptingGames2009Event4Thehighjump_86F6/scripto_torchrunner_3.gif" width="150" height="167" /&gt; Прыжки с шестом.&lt;/p&gt;  &lt;h1 align="center"&gt;Beginner Division&lt;/h1&gt;  &lt;p&gt;Потребуется файл &lt;strong&gt;HighJumperDatabase.mdb&lt;/strong&gt; из Competitors Pack.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;опросить MDB файл и вывести имя лучшего прыгуна c шестом (хотя там цифры немного странные для этой дисциплины). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Решение:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Никогда не приходилось работать с Access, поэтому пришлось честно гуглить: &lt;a title="http://www.visualbasicscript.com/m_43134/tm.htm" href="http://www.visualbasicscript.com/m_43134/tm.htm"&gt;http://www.visualbasicscript.com/m_43134/tm.htm&lt;/a&gt;. Его я взял за основу, только немного подрихтовал и вот что получилось:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; создаём массив, который будет содержать все результаты&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt; @()
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; подключения к БД. Наглый копипаст с форума.&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt; более-менее внятное описание этого кода тут:&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt; http://technet.microsoft.com/en-us/magazine/2009.05.scriptingguys.aspx&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$adOpenStatic&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;3&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$adLockOptimistic&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;3&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$MDBConn&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-comobject&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;ADODB.Connection&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$MDBConn&lt;/span&gt;&lt;span style="color: #000000"&gt;.Open(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;provider=microsoft.jet.oledb.4.0;data source=$pwd\HighJumperDatabase.mdb&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #800080"&gt;$Record&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-comobject&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;ADODB.RecordSet&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$Record&lt;/span&gt;&lt;span style="color: #000000"&gt;.Open(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;select * from [High Jumper Data]&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800080"&gt;$MDBConn&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800080"&gt;$adOpenStatic&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800080"&gt;$adLockOptimistic&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #800080"&gt;$Record&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;.MoveFirst()
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt; {
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; делаем объект текущего атлета и забиваем в него нужные значения&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$current&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Select&lt;/span&gt;&lt;span style="color: #000000"&gt; @{n&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800080"&gt;$Record&lt;/span&gt;&lt;span style="color: #000000"&gt;.Fields.Item(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;).Value}},
    @{n&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Personal Best&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800080"&gt;$Record&lt;/span&gt;&lt;span style="color: #000000"&gt;.Fields.Item(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Personal Best&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;).Value}},
    @{n&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Season Best&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800080"&gt;$Record&lt;/span&gt;&lt;span style="color: #000000"&gt;.Fields.Item(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Season Best&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;).Value}}
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; добавляем текущего участника в массив&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$current&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; переходим на следующую итерацию&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$Record&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;.MoveNext()
} &lt;/span&gt;&lt;span style="color: #0000ff"&gt;until&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$Record&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;.EOF)
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; закрываем все подключения&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;&lt;font size="2" face="Consolas"&gt;$Record&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;.Close() 
&lt;/span&gt;&lt;span style="color: #800080"&gt;$MDBConn&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;.Close()
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; сортируем и выводим лучшего спортсмена&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$sum&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Sort&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Season Best&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Personal Best&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Last&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Кстати, отличное решение этой задачи нашёл на VBS. Человек уложился в 4(!) строчки:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#0000ff"&gt;Set adoCon = CreateObject(&amp;quot;ADODB.Connection&amp;quot;) 
      &lt;br /&gt;adoCon.Open &amp;quot;DRIVER=Microsoft Access Driver (*.mdb);DBQ=HighJumperDatabase.mdb&amp;quot; 

      &lt;br /&gt;Winner = adoCon.Execute(&amp;quot;SELECT TOP 1 Name FROM [High Jumper Data] ORDER BY [Personal Best] DESC&amp;quot;)(&amp;quot;Name&amp;quot;) 

      &lt;br /&gt;WScript.Echo &amp;quot;Expected Winner: &amp;quot; &amp;amp; Winner&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Есть мнение, что фанаты PowerShell должны дружно застрелиться &lt;img alt=":)" src="/smilies/happy.gif"&gt; хотя это просто вопрос запроса к базе Access.&lt;/p&gt;

&lt;h1 align="center"&gt;Advanced Division&lt;/h1&gt;

&lt;p&gt;потребуется файл High &lt;strong&gt;Jump Stats_Adv4.txt&lt;/strong&gt; из Competitors Pack.&lt;/p&gt;

&lt;p&gt;В файле перечислены имена прыгунов с шестом и через запятую перечислены высОты планки.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;на основании этих данных построить произвольный (желательно красивы) график в Excel. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Решение:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p align="justify"&gt;Т.к. я графики тоже никогда не рисовал, поэтому тоже пришлось обратиться к гуглу. И вышло примерно такое:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; переименовываем txt файл в CSV. Теперь не нужно конвертировать тектовый файл в&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt; формат Excel, т.к. при переименовании Excel сам это сделает&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;ren&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;High Jump Stats_Adv4.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;High Jump Stats_Adv4.csv&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; выполняем обычную рутину для создания COM объекта для Excel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ComObject&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;excel.application&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Workbooks&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Open&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;$pwd\High Jump Stats_Adv4.csv&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; | Out-Null&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Visible&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;$false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.DisplayAlerts &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;$false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$sheet&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.Worksheets.Item(&lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; добавляем диаграмму&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt;$chart = $excel.Charts.Add()&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt; задаём диапазон для диаграммы&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$Range&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$sheet&lt;/span&gt;&lt;span style="color: #000000"&gt;.Range(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;A1:l1&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; добавляем элемент Chart с нужным диапазоном. Я выбрал 10 первых попыток&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt; для первого атлета. &lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$chart&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Charts&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Add&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;()
&lt;/span&gt;&lt;span style="color: #800080"&gt;$chart&lt;/span&gt;&lt;span style="color: #000000"&gt;.SetSourceData(&lt;/span&gt;&lt;span style="color: #800080"&gt;$Range&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #800080"&gt;$chart&lt;/span&gt;&lt;span style="color: #000000"&gt;.ChartStyle &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;27&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; сохраняем Chart в файл формата Excel и закрываем работу&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt;.SaveAs(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;$pwd\High Jump Stats_Adv4.xlsx&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Quit&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;()
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;gps&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;excel&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;stop-process&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; переименовываем CSV файл обратно в TXT&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;ren&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;High Jump Stats_Adv4.csv&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;High Jump Stats_Adv4.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=7c0ba133-e2ee-47b8-a14d-9bb3943fb45f"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,7c0ba133-e2ee-47b8-a14d-9bb3943fb45f.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / Scripting Games</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=b3db9b44-5009-4490-b110-0d1dc9ad90bc</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,b3db9b44-5009-4490-b110-0d1dc9ad90bc.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,b3db9b44-5009-4490-b110-0d1dc9ad90bc.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=b3db9b44-5009-4490-b110-0d1dc9ad90bc</wfw:commentRss>
      <title>Scripting Games 2009 – Event3 (The shot put)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,b3db9b44-5009-4490-b110-0d1dc9ad90bc.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,b3db9b44-5009-4490-b110-0d1dc9ad90bc.aspx</link>
      <pubDate>Fri, 12 Jun 2009 07:07:50 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 30px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="Summer Scripting Games 2009" border="0" alt="Summer Scripting Games 2009" align="left" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/ScriptingGames2009Event3Theshotput_9F/scripto_torchrunner_3.gif" width="150" height="167" /&gt; 3-е задание на парсинг текста.&lt;/p&gt;  &lt;h1 align="center"&gt;Beginner Division&lt;/h1&gt;  &lt;p&gt;Потребуется файл &lt;strong&gt;Shot Put.txt&lt;/strong&gt; из Competitors Pack.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;В файле есть 2 абзаца. Нужно первый абзац записать в файл &lt;strong&gt;Shot Put A.txt&lt;/strong&gt;, а второй абзац записать в &lt;strong&gt;Shot Put B.txt&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Переименовать файл Shot Put.txt в &lt;strong&gt;Shot Put.old&lt;/strong&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Решение:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Если внимательно посмотреть на файл, то в нём можно найти одну уникальную последовательность - &lt;strong&gt;`r`n`r`n&lt;/strong&gt;. Она разделяет 2 абзаца. Поэтому эту последовательность можно использовать в качестве разделителя для Get-Content:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $file = gc '.\Shot Put.txt' -Delimiter &amp;quot;`r`n`r`n&amp;quot;
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $file[0]
This is the first paragraph of the shot put text file. It will
need to be placed into the first text file which you will create.
The shot put is an event involving putting and heavy metal ball.
The object of the event is to throw the put as far as possible,
or to put the shot : anyway, you get the idea.




&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $file[1]
This is the second paragraph of the shot put text file. it
contains information you will need to put into the second
file which you will also create.
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Если со вторым абзацем понятно, то у первого очень много пробелов и пустых строк. Их можно удалить при помощи метода Trim(), который использовался уже в Event1. Собственно, само решение:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;gc&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;.\Shot Put.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Delimiter&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;`r`n`r`n&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;.trim()}
&lt;/span&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt;[0] &amp;gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Shot Put A.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt;[1] &amp;gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Shot Put B.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;ren&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;.\Shot Put.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Shot Put.old&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;h1 align="center"&gt;Advanced Division&lt;/h1&gt;

&lt;p&gt;потребуется файл &lt;strong&gt;Wordlist_ADV3.txt&lt;/strong&gt; из Competitors Pack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;распарсить текстовый файл и вытащить из них слова, в которых используется не более одной уникальной гласной буквы. &lt;/li&gt;

  &lt;li&gt;записать эти слова в новый текстовый файл. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Решение:&lt;/p&gt;

&lt;p&gt;В принципе, тут есть только одно простое решение (считайте, что нагло стырено у Васи):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;gc&lt;/span&gt;&lt;span style="color: #000000"&gt; .\&lt;/span&gt;&lt;span style="color: #800000"&gt;Wordlist_ADV3.txt&lt;/span&gt;&lt;span style="color: #000000"&gt; | ?{&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-replace&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;[^AEIOUY]&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-match&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;^(.)\1*$&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;} &amp;gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Wordlist_ADV3_new.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;суть решения заключается в том, чтобы из каждого слова убрать все согласные и проверить, что в слове используется только одна гласная 1 или более раз. Этот регексп описан в PowerShell Cookbook на странице 494.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=b3db9b44-5009-4490-b110-0d1dc9ad90bc"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,b3db9b44-5009-4490-b110-0d1dc9ad90bc.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / Scripting Games</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=eed0d8e0-ecea-4368-9b9e-3db78514d0d3</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,eed0d8e0-ecea-4368-9b9e-3db78514d0d3.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,eed0d8e0-ecea-4368-9b9e-3db78514d0d3.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=eed0d8e0-ecea-4368-9b9e-3db78514d0d3</wfw:commentRss>
      <title>Scripting Games 2009 – Event2 (The long jump)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,eed0d8e0-ecea-4368-9b9e-3db78514d0d3.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,eed0d8e0-ecea-4368-9b9e-3db78514d0d3.aspx</link>
      <pubDate>Thu, 11 Jun 2009 07:00:41 GMT</pubDate>
      <description>&lt;div&gt;&lt;h1 align="center"&gt;Beginner Division&lt;/h1&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 30px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Summer Scripting Games 2009" border="0" alt="Summer Scripting Games 2009" align="left" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/ScriptingGames2009Event2_AC1B/scripto_torchrunner_3.gif" width="150" height="167" /&gt; Тут очень простое задание из серии фаллометрии &lt;img alt=":)" src="/smilies/happy.gif"&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Задача:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Показать данные своего процессора (процессоров) в соответствии с рисунком &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://img.microsoft.com/library/media/1033/technet/images/scriptcenter/games/2009/beg_02_01.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Решение:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Тут нам потребуется WMI класс Win32_Processor. И из него выберем нужные данные. При этом я проверю, что значения не равны $null или нулю. Если это так, то в это поле впишу текст N/A для читабельности. Вот что получилось:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #000080"&gt;$Host&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;UI&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;RawUI&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;BackgroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Black&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;&lt;font size="2" face="Consolas"&gt;cls&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;gwmi&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;win32_processor&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;AddressWidth&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800000"&gt;L2CacheSize&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800000"&gt;L2CacheSpeed&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #800000"&gt;L3CacheSize&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;,
L3CacheSpeed, MaxClockSpeed, Name, NumberOfCores, NumberOfLogicalProcessors
&lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;gm&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-MemberType&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;NoteProperty&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;{
    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.$(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.name) &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$null&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-or&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.$(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.name) &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.$(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.name) &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;N/A&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;}
}
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Strength evaluation for LocalHost&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Green&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Speed ... &lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.MaxClockSpeed &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;`&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;`n&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;L2 Cache Size:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.L2CacheSize &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;`&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;`n&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;L2 Cache Speed:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.L2CacheSpeed &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;`&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;`n&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;L3 Cache Size:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.L3CacheSize &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;`&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;`n&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;L3 Cache Speed:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.L3CacheSpeed &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Yellow&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Strength&lt;/span&gt;&lt;span style="color: #000000"&gt; ... &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;`&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;`n&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Number of Cores:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.NumberOfCores &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;`&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;`n&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Number of Logical Processors:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.NumberOfLogicalProcessors &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;`&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;`n&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Name: `t`t`t`t&lt;/span&gt;&lt;span style="color: #800000"&gt;' &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.Name &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Magenta&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Write-Host&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Agility&lt;/span&gt;&lt;span style="color: #000000"&gt; ... &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;`&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;`n&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Address Width:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$processor&lt;/span&gt;&lt;span style="color: #000000"&gt;.AddressWidth &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ForegroundColor&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Cyan&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;И вот вывод:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: black; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $processor = gwmi win32_processor | Select AddressWidth, L2CacheSize, L2CacheSpeed, L3CacheSize,
&amp;gt;&amp;gt; L3CacheSpeed, MaxClockSpeed, Name, NumberOfCores, NumberOfLogicalProcessors
&amp;gt;&amp;gt; $processor | gm -MemberType NoteProperty | %{
&amp;gt;&amp;gt;  if ($processor.$($_.name) -eq $null -or $processor.$($_.name) -eq 0) {$processor.$($_.name) = &amp;quot;N/A&amp;quot;}
&amp;gt;&amp;gt; }
&amp;gt;&amp;gt; Write-Host 'Strength evaluation for LocalHost' -ForegroundColor Green
&amp;gt;&amp;gt; Write-Host 'Speed ... ' $processor.MaxClockSpeed `
&amp;gt;&amp;gt; `n'L2 Cache Size:' $processor.L2CacheSize `
&amp;gt;&amp;gt; `n'L2 Cache Speed:' $processor.L2CacheSpeed `
&amp;gt;&amp;gt; `n'L3 Cache Size:' $processor.L3CacheSize `
&amp;gt;&amp;gt; `n'L3 Cache Speed:' $processor.L3CacheSpeed -ForegroundColor Yellow
&amp;gt;&amp;gt; Write-Host Strength ... `
&amp;gt;&amp;gt; `n'Number of Cores:' $processor.NumberOfCores `
&amp;gt;&amp;gt; `n'Number of Logical Processors:' $processor.NumberOfLogicalProcessors `
&amp;gt;&amp;gt; `n'Name:  $processor.Name -ForegroundColor Magenta
&amp;gt;&amp;gt; Write-Host Agility ... `
&amp;gt;&amp;gt; `n&amp;quot;Address Width: `t`t`t`t&amp;quot; $processor.AddressWidth -ForegroundColor Cyan
&amp;gt;&amp;gt;
&lt;font color="#00ff00"&gt;Strength evaluation for LocalHost&lt;/font&gt;
&lt;font color="#ffff00"&gt;Speed ...  2834
L2 Cache Size: 6144
L2 Cache Speed: 2000
L3 Cache Size: N/A
L3 Cache Speed: N/A&lt;/font&gt;
&lt;font color="#ff00ff"&gt;Strength ...
Number of Cores: 4
Number of Logical Processors: 4
Name:                Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz&lt;/font&gt;
&lt;font color="#00ffff"&gt;Agility ...
Address Width: 64&lt;/font&gt;
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;По всей видимости оно получилось как и требовалось.&lt;/p&gt;

&lt;h1 align="center"&gt;Advanced Division&lt;/h1&gt;

&lt;p align="justify"&gt;И тут нас снова ждут соревнования. Здесь нам потребуется файл &lt;strong&gt;LongJump_Adv2.xls&lt;/strong&gt; из Competitors Pack. Файл содержит данные об участниках прыжков в длину и результаты их 3-х попыток.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;div align="justify"&gt;На основании результатов 3-х попыток в колонку Result записать лучший результат из 3-х попыток&lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;На основании результатов третей попытки для каждого участника, выбрать лучший результат из них и вывести на экран&lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;Сравнить лучший результат из 3-х попыток для каждого участника с их средним результатом в сезоне. Такой графы я не нашёл, есть только лучший результат в сезоне. Вот с ним я и сравнивал. Если прыгун превзошёл свой личный рекорд сезона, то в графу Exceed,Achieve,Under Perform вписать Exceed. Если повторил, то Achieve или Under Perform, если лучший результат сегодня был хуже результата по сезону.&lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;Отсортировать всю таблицу по графе Exceed,Achieve,Under Perform именно в таком порядке. Т.е. сперва идут те, кто улучшил свой показатель, потом – кто повторил и в самом конце те, кто не смог повторить свой результат в сезоне. И сохранить в файл с таким же именем.&lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p align="justify"&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Решение:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p align="justify"&gt;Вася Гусев решил окончательно сломать всем мозг разбором XLS в CSV, обработать его и собрать обратно в CSV – &lt;a href="http://xaegr.wordpress.com/2009/06/10/sg-2009-123/"&gt;тиснуть сюда&lt;/a&gt;. Когда я это увидел – стало как-то не очень хорошо. Я решил работать прямо с XLS. И вот что у меня получилось:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font size="2"&gt;&lt;font face="Consolas, lucida console"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; массив, который будет содержать результаты последней попытки прыжков, на основании&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt; которых нужно вывести лучший результат&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$lastattempt&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt; @()
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; создаём COM объект и прочую рутину.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-Object&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-ComObject&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Excel.Application&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.Visible &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;$false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;DisplayAlerts&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;$false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Workbooks&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Open&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;C:\Users\vPodans\LongJump_Adv2.xls&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;) | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Out-Null&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; у нас есть известное кол-во участников - 18. 19-я строка - это заголовки.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt; поэтому я исходя из этого решил работать с колонкой Result (8-я по счёту). Т.к.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt; некоторые попытки были провалены и в таблице стояли крестики. Чтобы вручную не парсить&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;font size="2" face="Consolas"&gt;#&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;font size="2" face="Consolas"&gt; это всё, я в ячейку воткнул экселовскую формулу MAX, которая всё за меня сделает.&lt;/font&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;.19&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;8&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;=max(e$_`:g$_)&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; заодно в $lastattempt запишем результат последней попытки для текущего прыгуна&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$lastattempt&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;7&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;).Value2
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; сравниваем лучший результат за сегодня с результатом за сезон&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;8&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-lt&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;4&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;).Value2) {
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; и в соответствующую графу пишем результат&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;9&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Under Perform&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; вот тут пришлось использовать читы. Я не очень силён в custom sort в экселе, поэтому&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; рядышком я для каждого статуса Exceed/Achieve/.. я приписываю число. Вот по этому числу&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; я потом буду сортировать таблицу&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;3&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    } &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #0000ff"&gt;elseif&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;8&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;4&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;).Value2) {
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;9&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Achieve&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;2&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    } &lt;/font&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&lt;font size="2" face="Consolas"&gt;else&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt; {
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;9&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Exceed&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;1&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font size="2" face="Consolas"&gt;    }
}
&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; выбираем из LastAttempt лучший результат, попутно заменяя крестики на нолики (лол) и выводя лучший результат&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$lastattempt&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;x&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;) {&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;};&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;} | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;sort&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-last&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; выбираем диапазон изменения таблицы при сортировке. Заголовки не трогаем, поэтому начинаем с 2&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$selection&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.Range(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;a2:j19&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; указываем колонку, по которой будем сортировать&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$range&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.Range(&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;j2:j19&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; сортируем&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;[&lt;/span&gt;&lt;span style="color: #008080"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;span style="color: #800080"&gt;$selection&lt;/span&gt;&lt;span style="color: #000000"&gt;.Sort(&lt;/span&gt;&lt;span style="color: #800080"&gt;$range&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;1&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;)
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; удаляем читерские числа, которые использовались для сортировки.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;.19&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Cells&lt;/span&gt;&lt;span style="color: #000000"&gt;.Item(&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value2 &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;}
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; готово.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Save&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Consolas"&gt;&lt;span style="color: #000000"&gt;()
&lt;/span&gt;&lt;span style="color: #800080"&gt;$excel&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Quit&lt;/span&gt;&lt;span style="color: #000000"&gt;()&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Не скажу, что получилось коротко и идеально, но задачу вполне решает.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=eed0d8e0-ecea-4368-9b9e-3db78514d0d3"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,eed0d8e0-ecea-4368-9b9e-3db78514d0d3.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / Scripting Games</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=eebb4566-4ff9-4ff8-81e2-e44cabb4192c</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,eebb4566-4ff9-4ff8-81e2-e44cabb4192c.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,eebb4566-4ff9-4ff8-81e2-e44cabb4192c.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=eebb4566-4ff9-4ff8-81e2-e44cabb4192c</wfw:commentRss>
      <title>Scripting Games 2009 – Event1 (The 100-meter dash)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,eebb4566-4ff9-4ff8-81e2-e44cabb4192c.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,eebb4566-4ff9-4ff8-81e2-e44cabb4192c.aspx</link>
      <pubDate>Wed, 10 Jun 2009 12:16:53 GMT</pubDate>
      <description>&lt;div&gt;&lt;p align="justify"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 25px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="Summer Scripting Games 2009" border="0" alt="Summer Scripting Games 2009" align="left" src="http://www.sysadmins.lv/content/binary/WindowsLiveWriter/ScriptingGames2009Event1_11E9F/scripto_torchrunner_3.gif" width="150" height="167" /&gt; И оно свершилось! Хотя официально Scripting Games начинаются только 15-го июня, но уже со вчерашнего дня стали известны уже 2 задания. Для начала немного информации, что и как:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Условия участия и публикации: &lt;a href="http://blogs.technet.com/heyscriptingguy/archive/2009/05/28/details-leaked-about-the-2009-summer-scripting-games.aspx"&gt;Details Leaked About the 2009 Summer Scripting Games!&lt;/a&gt;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Официальная страница Scripting Games: &lt;a title="Hey, Scripting Guy!" href="http://blogs.technet.com/heyscriptingguy/default.aspx"&gt;Hey, Scripting Guy!&lt;/a&gt; Там публикуются все задания&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Материал для заданий находится в &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c463eef9-f096-475c-9910-2788e6bdc189"&gt;the Competitor's Pack&lt;/a&gt;.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Публиковать свои решения нужно на сайте &lt;a title="http://scriptinggames.poshcode.org/" href="http://scriptinggames.poshcode.org/"&gt;http://scriptinggames.poshcode.org/&lt;/a&gt; Требуется аутентификация с OpenID (а почему не LiveID?).&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;В принципе, вы можете решать задания как угодно, т.к. засчитываются все, которые отвечают условиям задания.&lt;/p&gt;  &lt;p align="justify"&gt;Итак, Event1 и оба дивизиона: &lt;/p&gt;  &lt;h1 align="center"&gt;Beginner Division&lt;/h1&gt;  &lt;p&gt;Из Competitors Pack нам потребуется файл &lt;strong&gt;100 Meter Event.txt&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Задача&lt;/strong&gt;:&lt;/font&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Выяснить, как читать файл? &lt;/li&gt;    &lt;li&gt;Как прочитать из каждой строки поля Name, Country, Time? &lt;/li&gt;    &lt;li&gt;Как отсортировать содержимое файла по полю Name? &lt;/li&gt;    &lt;li&gt;Выбрать 3-х победителей из списка. Победителем считается тот, у кого самое маленькое время в колонке Time &lt;/li&gt;    &lt;li&gt;Показать поля Name, Country и Time для первых 3-х победителей. &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Решение:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Побегав курсором по файлу я обнаружил тот факт, что разделителем между столбцом &lt;strong&gt;Name&lt;/strong&gt; и &lt;strong&gt;Country&lt;/strong&gt; является табулятор (&lt;strong&gt;[Tab]&lt;/strong&gt;), а между &lt;strong&gt;Country&lt;/strong&gt; и &lt;strong&gt;Time&lt;/strong&gt; стоит один пробел во второй строке, а в остальных строках стоит &lt;strong&gt;[Tab]&lt;/strong&gt;. Следовательно, варианты использования командлетов с параметром –Delimeter не прокатят и нужно будет разбирать всё регулярными выражениями. Первый вопрос наталкивает на необходимость чтения файла не через Get-Content, а через &lt;strong&gt;[system.io.file]::ReadAllText()&lt;/strong&gt;. Но я не вижу особого криминала в использовании родного для PowerShell командлета &lt;strong&gt;Get-Content&lt;/strong&gt;. Это будет несложно. Основная проблема в том, как составить регулярное выражение. Я решил разобрать имя на &lt;strong&gt;First Name&lt;/strong&gt; и &lt;strong&gt;LastName&lt;/strong&gt; (т.к. правильней, всё же, будет, когда сначала идёт имя, а потом фамилия), далее выбрать &lt;strong&gt;Country&lt;/strong&gt; от табуляции до первого числа. Причём, тут потребуется каждую часть сделать именованной (&lt;em&gt;named capture&lt;/em&gt;). Если открыть PowerShell In Action на 111 странице, то там можно найти описание, как делать named captures. У меня регулярное выражение получилось вот такое: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;^(?&amp;lt;ln&amp;gt;\w+)..(?&amp;lt;fn&amp;gt;.*)\t(?&amp;lt;country&amp;gt;.+)(?&amp;lt;time&amp;gt;\d\.\d+)&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Что делает это выражение:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;в секцию &lt;strong&gt;LN&lt;/strong&gt; (&lt;em&gt;LastName&lt;/em&gt;) попадают все буквы до первого небуквенного знака. &lt;/li&gt;    &lt;li&gt;далее пропускаем 2 символа (запятую и пробел). &lt;/li&gt;    &lt;li&gt;в секцию &lt;strong&gt;FN&lt;/strong&gt; (&lt;em&gt;FirstName&lt;/em&gt;) попадает всё до первой табуляции. &lt;/li&gt;    &lt;li&gt;после табуляции идёт &lt;strong&gt;Country&lt;/strong&gt; и в него запишем всё, вплоть до первого числового знака. &lt;/li&gt;    &lt;li&gt;И числа записываем в секцию &lt;strong&gt;Time&lt;/strong&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Давайте проверим его: &lt;/p&gt;  &lt;blockquote&gt;   &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $file = gc '.\100 Meter Event.txt'
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $file[1] -match &amp;quot;^(?&amp;lt;ln&amp;gt;\w+)..(?&amp;lt;fn&amp;gt;.*)\t(?&amp;lt;country&amp;gt;.+)(?&amp;lt;time&amp;gt;\d\.\d+)&amp;quot;
True
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $matches

Name                           Value
----                           -----
country                        Australia
ln                             Aaberg
fn                             Jesper
time                           8.57
0                              Aaberg, Jesper    Australia 8.57


&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] $file[11] -match &amp;quot;^(?&amp;lt;ln&amp;gt;\w+)..(?&amp;lt;fn&amp;gt;.*)\t(?&amp;lt;country&amp;gt;.+)(?&amp;lt;time&amp;gt;\d\.\d+)&amp;quot;
True
[↓] [vPodans] $matches

Name                           Value
----                           -----
country                        Japan
ln                             Hansen
fn                             Anne Grethe
time                           8.85
0                              Hansen, Anne Grethe    Japan    8.85


&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;и теперь соберём объект с нужными свойствами и отправим его на выход. На выходе отсортируем объекты по параметру Time и выберем первые 3 объекта:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font face="consolas, lucida console"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;gc&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;100 Meter Event.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; | ?{&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-match&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;^(?&amp;lt;ln&amp;gt;\w+)..(?&amp;lt;fn&amp;gt;.*)\t(?&amp;lt;country&amp;gt;.+)(?&amp;lt;time&amp;gt;\d\.\d+)&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;} |&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;/font&gt;&lt;font face="cons"&gt;&lt;span style="color: #000000"&gt;{
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$obj&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Select&lt;/span&gt;&lt;span style="color: #000000"&gt; @{n&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800080"&gt;$matches&lt;/span&gt;&lt;span style="color: #000000"&gt;.fn &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$matches&lt;/span&gt;&lt;/font&gt;&lt;font face="cons"&gt;&lt;span style="color: #000000"&gt;.ln}},
    @{n&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Country&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800080"&gt;$matches&lt;/span&gt;&lt;span style="color: #000000"&gt;.country}},@{n&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Time&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;e&lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800080"&gt;$matches&lt;/span&gt;&lt;/font&gt;&lt;font face="cons"&gt;&lt;span style="color: #000000"&gt;.time}}
    &lt;/span&gt;&lt;span style="color: #800080"&gt;$obj&lt;/span&gt;&lt;/font&gt;&lt;span style="color: #000000"&gt;
&lt;font face="cons"&gt;} | &lt;/font&gt;&lt;/span&gt;&lt;font face="cons"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;sort&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;time&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-First&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;3 | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;ft&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-AutoSize&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;и вот вывод:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] gc &amp;quot;100 Meter Event.txt&amp;quot; | ?{$_ -match &amp;quot;^(?&lt;ln&gt;\w+)..(?&lt;fn&gt;.*)\t(?&lt;country&gt;.+)(?&lt;time&gt;\d\.\d+)&amp;quot;} |%{
&amp;gt;&amp;gt;     $obj = &amp;quot;&amp;quot; | Select @{n='Name';e={$matches.fn + &amp;quot; &amp;quot; + $matches.ln}},
&amp;gt;&amp;gt;     @{n='Country';e={$matches.country}},@{n='Time';e={$matches.time}}
&amp;gt;&amp;gt;     $obj
&amp;gt;&amp;gt; } | sort time | select -First 3 | ft -a
&amp;gt;&amp;gt;

Name          Country     Time
----          -------     ----
Jesper Aaberg Australia   8.57
David Pelton  Austria     8.6
Wilson Pais   Germany     8.62


&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p align="justify"&gt;решил ещё отформатировать в &lt;strong&gt;Format-Table&lt;/strong&gt; с ключом &lt;strong&gt;–AutoSize&lt;/strong&gt; для красоты. Признаюсь, что это задание меня сильно озадачило. Для меня оно оказалось очень непростым (такие дела).&lt;/p&gt;

&lt;h1&gt;&lt;/h1&gt;

&lt;h1 align="center"&gt;Advanced Division&lt;/h1&gt;

&lt;p&gt;Для этой задачи нам потребуется файл &lt;strong&gt;Personal Information Cards_ADV1.txt&lt;/strong&gt; из Competitors Pack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Задача:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;найти самую короткую строку в файле, которая содержит какой-либо текст. &lt;/li&gt;

  &lt;li&gt;вывести на экран 3 самые короткие строчки &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Решение:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;В файле много пустых строк, но это не проблема. Итак, one-liner решение:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;font face="consolas, lucida console"&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;gc&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Personal Information Cards_ADV1.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; | ?{&lt;/span&gt;&lt;span style="color: #000080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.trim().length &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-ne&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;} | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;sort&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;length&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-First&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;3&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans] gc &amp;quot;Personal Information Cards_ADV1.txt&amp;quot; | ?{$_.trim().length -ne 0} | select –First 3
PPID
Claims
Street
&lt;font color="#ff0000"&gt;[↓]&lt;/font&gt; [vPodans]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Странно, что в Advanced Division получилось такое простое задание.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=eebb4566-4ff9-4ff8-81e2-e44cabb4192c"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,eebb4566-4ff9-4ff8-81e2-e44cabb4192c.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / Scripting Games</category>
    </item>
  </channel>
</rss>