Skip to main content

PowerShell Find specific text within a string, with a list of partial file names. $_.split

Recently i was looking for a way to select all the text between two brackets and ignore everything else in the string.  This was necessary as i had a list of partial file name and i wanted a way of matching my list with a directory listing.

The use of '$_.split' command achieved this very nicely.


How to i select specific text in a string?


$text='this is an (apple). it is red'
#The variable $text contains the word 'apple' between two opposite brackets.

$text|%{$_.split('(')[1]}|%{$_.split(')')[0]}
# $text is piped into a foreach loop spliting the string, removing everything before the first bracket (. It is then piped into a second foreach loop removing everything after the second bracket ).
                                  
apple # On screen the returned result is apple. This is useful if you are looking for partial file names, or a specific string within a string.


What does "%" mean in powershell syntax ?

The percentage sign '%' is used as an alias for 'ForEach-Object':

PS > get-alias -definition foreach-object

CommandType Name Definition
----------- ---- ----------
Alias % ForEach-Object
Alias foreach ForEach-Object

Comments

Popular posts from this blog

Windows 7 Offline files will not go Online when connected to network

Issue Several laptop users move between networks, domain, home, etc and when they attempt to access DFS shares explorer status is working offline.  The issue only resolves it self after a reboot. Connecting directly to the share works and i am able to ping network resources.  This behavior occurs for VPN users as well. Possible Causes "slow-link mode". In win7 (with default settings) a client will enter slow-link mode if the latency to the server is above 80ms. In slow-link mode all writes are made to the local cache and a background sync only happens every 6 hours.  Depending on your connection the default slow link detection speed is 64,000 bps On client computers running Windows 7 or Windows Server 2008 R2, a shared folder automatically transitions to the slow-link mode if the round-trip latency of the network is greater than 80 milliseconds, or as configured by the "Configure slow-link mode" policy. After transitioning a folder to the slow-link mode, Offline Fil

SCCM Unknown computer not able to see Task Sequences after installing Current Branch 1702

Soon after installing SCCM CB 1702 we were unable to see Task Sequences deployed to the unknown collection. This issue was identified as a random system taking the GUID of the 'x64 Unknown Computer (x64 Unknown Computer)' record. As a result it was now a known GUID; as we were only deploying Task Sequences to the Unknown collection none were made available. 'x64 Unknown Computer (x64 Unknown Computer)' record 'x86 Unknown Computer (x86 Unknown Computer)' record To get the GUID of your unknown systems open SQL management studio and run the following command: --Sql Command to list the name and GUID for UnknownSystems record data select ItemKey, Name0,SMS_Unique_Identifier0 from UnknownSystem_DISC Using the returned GUID (SMS_Unique_Identifier0) we can find the hostname that has been assigned the 'x64 Unknown Computer (x64 Unknown Computer)' GUID by running the query below. --x64 Unknown Computers select Name0,SMS_Unique_Identifier0,Decommissioned0 from Sys

SCCM Client Certificate (PKI) Value is None

SCCM Client Certificate (PKI) Value is None Stopping WMI service Stopping CCMExec SC Delete any sccm services (ccmexec, smstsmgr, cmecservice, ccmsetup) Delete C:\windows\ccm, C:\windows\ccmsetup, C:\windows\ccmcache, C:\Windows\SMSCFG.ini Go into regedit and remove: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCM HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCMSetup HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS Then restart WMI, and reinstall the client. You shouldn't need a reboot to complete this. Once this has been done the client will install and pick up the cert. https://www.windows-noob.com/forums/topic/12644-sccm-2012-client-certificate-pki-value-is-none/