{"id":2931,"date":"2010-06-04T19:16:00","date_gmt":"2010-06-04T19:16:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/powershell\/2010\/06\/04\/export-and-import-powershell-ise-opened-files\/"},"modified":"2019-02-18T13:05:55","modified_gmt":"2019-02-18T20:05:55","slug":"export-and-import-powershell-ise-opened-files","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/export-and-import-powershell-ise-opened-files\/","title":{"rendered":"Export and Import PowerShell ISE Opened Files"},"content":{"rendered":"<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">Unlike other tools, PowerShell ISE doesn&rsquo;t have project files. <\/span><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">Project files are a good way to set your environment up with a well known state.<\/span><span style=\"font-family: 'Times New Roman','serif';color: black;font-size: 12pt\"><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">Thanks to the ISE Object Model, it is possible to add some project functionality.<\/span><span style=\"font-family: 'Times New Roman','serif';color: black;font-size: 12pt\"><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">The script below has two main functions &ldquo;Export-ISEState&rdquo; and &ldquo;Import-ISEState&rdquo;. They can be used to save files and PowerShellTabs and reopen them later.<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">Even script contents for untitled files are saved.<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\"><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">To save the current state (state = files and PowerShellTabs), use something like:<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">&nbsp;&nbsp;&nbsp; Export-ISEState c:\\temp\\files.isexml<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">To load the state later run:<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">&nbsp;&nbsp;&nbsp; Import-ISEState c:\\temp\\files.isexml<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\"><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">When exporting the current state the all titled files are saved with the script from my <a href=\"http:\/\/blogs.msdn.com\/b\/powershell\/archive\/2010\/06\/05\/save-all-powershell-ise-files-for-thor-s-sake.aspx\">last post<\/a>. This ensures you will have the same content when importing the state later. <\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: 'Arial','sans-serif';color: black;font-size: 12pt\">For untitled files, the contents are saved. When untitled files are reloaded, new untitled files are created, if their contents are not already present in some untitled file.<\/span><\/p>\n<p><span style=\"font-size: small\"><span lang=\"EN\" style=\"font-family: 'Arial','sans-serif';color: black\">If you&nbsp;like it, you can add it to your profile (psedit $profile will edit the ISE profile) or to a module imported in your profile.<\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span lang=\"EN\" style=\"font-family: 'Arial','sans-serif';color: black\"><\/span><span lang=\"EN\" style=\"font-family: 'Segoe UI','sans-serif';color: #333333;font-size: 9pt\"><\/span><\/span><\/p>\n<p><span lang=\"EN\" style=\"font-family: 'Arial','sans-serif';color: black;font-size: 10pt\">Lucio Silveira [MSFT]<\/span><\/p>\n<p><span lang=\"EN\" style=\"font-family: 'Arial','sans-serif';color: black;font-size: 10pt\"><\/span><span lang=\"EN\" style=\"font-family: 'Segoe UI','sans-serif';color: #333333;font-size: 9pt\"><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkblue;font-size: 12pt\">function<\/span><span style=\"font-family: Consolas;font-size: 12pt\"> <span style=\"color: blueviolet\">Save-AllISEFiles<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\">{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">&lt;#<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">.SYNOPSIS <\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>Saves all ISE Files except for untitled files. If You have multiple PowerShellTabs, saves files in all tabs.<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">#&gt;<\/span><span style=\"font-family: Consolas;font-size: 12pt\"><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">foreach<\/span>(<span style=\"color: orangered\">$tab<\/span> <span style=\"color: darkblue\">in<\/span> <span style=\"color: orangered\">$psISE<\/span><span style=\"color: darkgray\">.<\/span>PowerShellTabs)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">foreach<\/span>(<span style=\"color: orangered\">$file<\/span> <span style=\"color: darkblue\">in<\/span> <span style=\"color: orangered\">$tab<\/span><span style=\"color: darkgray\">.<\/span>Files)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: darkblue\">if<\/span>(<span style=\"color: darkgray\">!<\/span><span style=\"color: orangered\">$file<\/span><span style=\"color: darkgray\">.<\/span>IsUntitled)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$file<\/span><span style=\"color: darkgray\">.<\/span>Save()<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\">}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkblue;font-size: 12pt\">function<\/span><span style=\"font-family: Consolas;font-size: 12pt\"> <span style=\"color: blueviolet\">Export-ISEState<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\">{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">&lt;#<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">.SYNOPSIS<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>Stores the opened files in a serialized xml so that later the same set can be opened<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">.DESCRIPTION<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>Creates an xml file with all PowerShell tabs and file information<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">.PARAMETER fileName<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>The name of the project to create a new version from. This will also be the name of the new project, but with a different version<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">.EXAMPLE<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>Stores current state into c:\\temp\\files.isexml<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>Export-ISEState c:\\temp\\files.isexml<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">#&gt;<\/span><span style=\"font-family: Consolas;font-size: 12pt\"><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">Param<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>(<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: lightblue\">Parameter<\/span>(Position<span style=\"color: darkgray\">=<\/span><span style=\"color: purple\">0<\/span><span style=\"color: darkgray\">,<\/span> Mandatory<span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$true<\/span>)<span style=\"color: darkgray\">]<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: lightblue\">ValidateNotNullOrEmpty<\/span>()<span style=\"color: darkgray\">]<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: teal\">[string]<\/span><span style=\"color: orangered\">$fileName<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># We are exporting a &#8220;tree&#8221; worth of information like this:<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp; <\/span>SelectedTabDisplayName: PowerShellTab 1<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp; <\/span>SelectedFilePath: c:\\temp\\a.ps1<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp; <\/span>TabInformation:<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>PowerShellTab 1:<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>File 1:<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>FullPath:<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>c:\\temp\\a.ps1 <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>FileContents: $null<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>File 2:<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>FullPath:<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Untitled.ps1<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>FileContents: $a=0&#8230;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>PowerShellTab 2:<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>&#8230;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp; <\/span>Hashtables and arraylists serialize rather well with export-clixml<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp; <\/span>We will keep the list of PowerShellTabs in one ArrayList and the list of files <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp; <\/span>and contents(for untitled files) inside each tab in a couple of ArrayList.<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#<span>&nbsp; <\/span>We will use Hashtables to group the information.<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$tabs<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: blue\">new-object<\/span> <span style=\"color: blueviolet\">collections.arraylist<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># before getting file information, save all untitled files to make sure their latest<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># text is on disk<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: blue\">Save-AllISEFiles<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">foreach<\/span> (<span style=\"color: orangered\">$tab<\/span> <span style=\"color: darkblue\">in<\/span> <span style=\"color: orangered\">$psISE<\/span><span style=\"color: darkgray\">.<\/span>PowerShellTabs)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$files<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: blue\">new-object<\/span> <span style=\"color: blueviolet\">collections.arraylist<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$filesContents<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: blue\">new-object<\/span> <span style=\"color: blueviolet\">collections.arraylist<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">foreach<\/span>(<span style=\"color: orangered\">$file<\/span> <span style=\"color: darkblue\">in<\/span> <span style=\"color: orangered\">$tab<\/span><span style=\"color: darkgray\">.<\/span>Files)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># $null = will avoid $files.Add from showing in the output<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$null<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$files<\/span><span style=\"color: darkgray\">.<\/span>Add(<span style=\"color: orangered\">$file<\/span><span style=\"color: darkgray\">.<\/span>FullPath)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">if<\/span>(<span style=\"color: orangered\">$file<\/span><span style=\"color: darkgray\">.<\/span>IsUntitled)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># untitled files are not yet on disk so we will save the file contents inside the xml<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># export-clixml performs the appropriate escaping for the contents to be inside the xml<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$null<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$filesContents<\/span><span style=\"color: darkgray\">.<\/span>Add(<span style=\"color: orangered\">$file<\/span><span style=\"color: darkgray\">.<\/span>Editor<span style=\"color: darkgray\">.<\/span>Text)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">else<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># titled files get their content from disk<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$null<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$filesContents<\/span><span style=\"color: darkgray\">.<\/span>Add(<span style=\"color: orangered\">$null<\/span>)<span>&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: orangered\">$simpleTab<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: blue\">new-object<\/span> <span style=\"color: blueviolet\">collections.hashtable<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># The DisplayName of a PowerShellTab can only be change with scripting<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># we want to maintain the chosen name<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$simpleTab<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: darkred\">&#8220;DisplayName&#8221;<\/span><span style=\"color: darkgray\">]=<\/span><span style=\"color: orangered\">$tab<\/span><span style=\"color: darkgray\">.<\/span>DisplayName<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># $files and $filesContents is the information gathered in the foreach $file above<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$simpleTab<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: darkred\">&#8220;Files&#8221;<\/span><span style=\"color: darkgray\">]=<\/span><span style=\"color: orangered\">$files<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$simpleTab<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: darkred\">&#8220;FilesContents&#8221;<\/span><span style=\"color: darkgray\">]=<\/span><span style=\"color: orangered\">$filesContents<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># add to the list of tabs<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$null<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$tabs<\/span><span style=\"color: darkgray\">.<\/span>Add(<span style=\"color: orangered\">$simpleTab<\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># tabsToSerialize will be a hashtable with all the information we want<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># it is the &#8220;root&#8221; of the information to be serialized in the hashtable we store&#8230;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$tabToSerialize<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: blue\">new-object<\/span> <span style=\"color: blueviolet\">collections.hashtable<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># the $tabs information gathered in the foreach $tab above&#8230;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$tabToSerialize<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: darkred\">&#8220;TabInformation&#8221;<\/span><span style=\"color: darkgray\">]<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$tabs<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># &#8230;and the selected tab and file.<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$tabToSerialize<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: darkred\">&#8220;SelectedTabDisplayName&#8221;<\/span><span style=\"color: darkgray\">]<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$psISE<\/span><span style=\"color: darkgray\">.<\/span>CurrentPowerShellTab<span style=\"color: darkgray\">.<\/span>DisplayName<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$tabToSerialize<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: darkred\">&#8220;SelectedFilePath&#8221;<\/span><span style=\"color: darkgray\">]<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$psISE<\/span><span style=\"color: darkgray\">.<\/span>CurrentFile<span style=\"color: darkgray\">.<\/span>FullPath<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># now we just export it to $fileName<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$tabToSerialize<\/span> <span style=\"color: darkgray\">|<\/span> <span style=\"color: blue\">export-clixml<\/span> <span style=\"color: navy\">-path<\/span> <span style=\"color: orangered\">$fileName<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\">}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkblue;font-size: 12pt\">function<\/span><span style=\"font-family: Consolas;font-size: 12pt\"> <span style=\"color: blueviolet\">Import-ISEState<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\">{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">&lt;#<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">.SYNOPSIS<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>Reads a file with ISE state information about which files to open and opens them<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">.DESCRIPTION<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>Reads a file created by Export-ISEState with the PowerShell tabs and files to open<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">.PARAMETER fileName<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>The name of the file created with Export-ISEState<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">.EXAMPLE<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>Restores current state from c:\\temp\\files.isexml<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>Import-ISEState c:\\temp\\files.isexml<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;color: darkgreen;font-size: 12pt\">#&gt;<\/span><span style=\"font-family: Consolas;font-size: 12pt\"><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">Param<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>(<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: lightblue\">Parameter<\/span>(Position<span style=\"color: darkgray\">=<\/span><span style=\"color: purple\">0<\/span><span style=\"color: darkgray\">,<\/span> Mandatory<span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$true<\/span>)<span style=\"color: darkgray\">]<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: lightblue\">ValidateNotNullOrEmpty<\/span>()<span style=\"color: darkgray\">]<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: teal\">[string]<\/span><span style=\"color: orangered\">$fileName<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># currentTabs is used to keep track of the tabs currently opened.<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># If &#8220;PowerShellTab 1&#8221; is opened and $fileName contains files for it, we <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># want to open them in &#8220;PowerShellTab 1&#8221;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$currentTabs<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: blue\">new-object<\/span> <span style=\"color: blueviolet\">collections.hashtable<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">foreach<\/span> (<span style=\"color: orangered\">$tab<\/span> <span style=\"color: darkblue\">in<\/span> <span style=\"color: orangered\">$psISE<\/span><span style=\"color: darkgray\">.<\/span>PowerShellTabs)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$currentTabs<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: orangered\">$tab<\/span><span style=\"color: darkgray\">.<\/span>DisplayName<span style=\"color: darkgray\">]=<\/span><span style=\"color: orangered\">$tab<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$tabs<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: blue\">import-cliXml<\/span> <span style=\"color: navy\">-path<\/span> <span style=\"color: orangered\">$fileName<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># those will keep track of selected tab and files<span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$selectedTab<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$null<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$selectedFile<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$null<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">foreach<\/span> (<span style=\"color: orangered\">$tab<\/span> <span style=\"color: darkblue\">in<\/span> <span style=\"color: orangered\">$tabs<\/span><span style=\"color: darkgray\">.<\/span>TabInformation)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$newTab<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$currentTabs<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: orangered\">$tab<\/span><span style=\"color: darkgray\">.<\/span>DisplayName<span style=\"color: darkgray\">]<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">if<\/span>(<span style=\"color: orangered\">$newTab<\/span> <span style=\"color: darkgray\">-eq<\/span> <span style=\"color: orangered\">$null<\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$newTab<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$psISE<\/span><span style=\"color: darkgray\">.<\/span>PowerShellTabs<span style=\"color: darkgray\">.<\/span>Add()<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$newTab<\/span><span style=\"color: darkgray\">.<\/span>DisplayName<span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$tab<\/span><span style=\"color: darkgray\">.<\/span>DisplayName<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#newTab now has a brand new or a previouslly existing PowerShell tab with the same name as the one in the file<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># if the tab is the selected tab save it for later selection<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">if<\/span>(<span style=\"color: orangered\">$newTab<\/span><span style=\"color: darkgray\">.<\/span>DisplayName <span style=\"color: darkgray\">-eq<\/span> <span style=\"color: orangered\">$tabs<\/span><span style=\"color: darkgray\">.<\/span>SelectedTabDisplayName)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$selectedTab<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$newTab<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># currentUntitledFileContents keeps track of the contents for untitled files<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># if you already have the content in one of your untitled files<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># there is no reason to add the same content again<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># this will make sure calling import-ISEState multiple times<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># does not keep on adding untitled files<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$currentUntitledFileContents<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: blue\">new-object<\/span> <span style=\"color: blueviolet\">collections.hashtable<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">foreach<\/span> (<span style=\"color: orangered\">$newTabFile<\/span> <span style=\"color: darkblue\">in<\/span> <span style=\"color: orangered\">$newTab<\/span><span style=\"color: darkgray\">.<\/span>Files)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">if<\/span>(<span style=\"color: orangered\">$newTabFile<\/span><span style=\"color: darkgray\">.<\/span>IsUntitled)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$currentUntitledFileContents<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: orangered\">$newTabFile<\/span><span style=\"color: darkgray\">.<\/span>Editor<span style=\"color: darkgray\">.<\/span>Text<span style=\"color: darkgray\">]=<\/span><span style=\"color: orangered\">$newTabFile<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># since we will want both file and fileContents we need to use a for instead of a foreach<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">for<\/span>(<span style=\"color: orangered\">$i<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: purple\">0<\/span>;<span style=\"color: orangered\">$i<\/span> <span style=\"color: darkgray\">-lt<\/span> <span style=\"color: orangered\">$tab<\/span><span style=\"color: darkgray\">.<\/span>Files<span style=\"color: darkgray\">.<\/span>Count;<span style=\"color: orangered\">$i<\/span><span style=\"color: darkgray\">++<\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$file<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$tab<\/span><span style=\"color: darkgray\">.<\/span>Files<span style=\"color: darkgray\">[<\/span><span style=\"color: orangered\">$i<\/span><span style=\"color: darkgray\">]<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$fileContents<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$tab<\/span><span style=\"color: darkgray\">.<\/span>FilesContents<span style=\"color: darkgray\">[<\/span><span style=\"color: orangered\">$i<\/span><span style=\"color: darkgray\">]<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#fileContents will be $null for titled files<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">if<\/span>(<span style=\"color: orangered\">$fileContents<\/span> <span style=\"color: darkgray\">-eq<\/span> <span style=\"color: orangered\">$null<\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># the overload of Add taking one string opens the file identified by the string<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$newFile<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$newTab<\/span><span style=\"color: darkgray\">.<\/span>Files<span style=\"color: darkgray\">.<\/span>Add(<span style=\"color: orangered\">$file<\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;<\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">else<\/span> <span style=\"color: darkgreen\"># the file is untitled<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#see if the content is already present in $newTab<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$newFile<\/span><span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$currentUntitledFileContents<\/span><span style=\"color: darkgray\">[<\/span><span style=\"color: orangered\">$fileContents<\/span><span style=\"color: darkgray\">]<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">if<\/span>(<span style=\"color: orangered\">$newFile<\/span> <span style=\"color: darkgray\">-eq<\/span> <span style=\"color: orangered\">$null<\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># the overload of Add taking no arguments creates a new untitled file<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># The number for untitled files is determined by the application so we<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># don&#8217;t try to keep the untitled number, we just create a new untitled.<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$newFile<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$newTab<\/span><span style=\"color: darkgray\">.<\/span>Files<span style=\"color: darkgray\">.<\/span>Add()<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># and here we restore the contents<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$newFile<\/span><span style=\"color: darkgray\">.<\/span>Editor<span style=\"color: darkgray\">.<\/span>Text<span style=\"color: darkgray\">=<\/span><span style=\"color: orangered\">$fileContents<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\"># if the file is the selected file in the selected tab save it for later selection<span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">if<\/span>((<span style=\"color: orangered\">$selectedTab<\/span> <span style=\"color: darkgray\">-eq<\/span> <span style=\"color: orangered\">$newTab<\/span>) <span style=\"color: darkgray\">-and<\/span> (<span style=\"color: orangered\">$tabs<\/span><span style=\"color: darkgray\">.<\/span>SelectedFilePath <span style=\"color: darkgray\">-eq<\/span> <span style=\"color: orangered\">$file<\/span>))<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$selectedFile<\/span> <span style=\"color: darkgray\">=<\/span> <span style=\"color: orangered\">$newFile<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;&nbsp;<\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkgreen\">#finally we selected the PowerShellTab that was selected and the file that was selected on it.<\/span><\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$psISE<\/span><span style=\"color: darkgray\">.<\/span>PowerShellTabs<span style=\"color: darkgray\">.<\/span>SetSelectedPowerShellTab(<span style=\"color: orangered\">$selectedTab<\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: darkblue\">if<\/span>(<span style=\"color: orangered\">$selectedFile<\/span> <span style=\"color: darkgray\">-ne<\/span> <span style=\"color: orangered\">$null<\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>{<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color: orangered\">$selectedTab<\/span><span style=\"color: darkgray\">.<\/span>Files<span style=\"color: darkgray\">.<\/span>SetSelectedFile(<span style=\"color: orangered\">$selectedFile<\/span>)<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\"><span>&nbsp;&nbsp;&nbsp; <\/span>}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\">}<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Consolas;font-size: 12pt\">&nbsp;<\/span><\/p>\n<p class=\"MsoNormal\"><span style=\"font-family: Calibri;font-size: small\">&nbsp;<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unlike other tools, PowerShell ISE doesn&rsquo;t have project files. Project files are a good way to set your environment up with a well known state. Thanks to the ISE Object Model, it is possible to add some project functionality. The script below has two main functions &ldquo;Export-ISEState&rdquo; and &ldquo;Import-ISEState&rdquo;. They can be used to save [&hellip;]<\/p>\n","protected":false},"author":600,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2931","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell"],"acf":[],"blog_post_summary":"<p>Unlike other tools, PowerShell ISE doesn&rsquo;t have project files. Project files are a good way to set your environment up with a well known state. Thanks to the ISE Object Model, it is possible to add some project functionality. The script below has two main functions &ldquo;Export-ISEState&rdquo; and &ldquo;Import-ISEState&rdquo;. They can be used to save [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/2931","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/600"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=2931"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/2931\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=2931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=2931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=2931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}