PowerShell: рд╢рдлрд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ

рд╢реБрдн рджрд┐рди,% рд╣рдмрд▓рд╕%!
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдХреЗ рдХрд╛рдо рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛: рд╣рдореЗрдВ рдорддрджрд╛рди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 1000 рдлрд╝реЛрдЯреЛ рдорд┐рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдПрдХ рдзрдиреНрдпрд╡рд╛рдж рдХрд╛ рдХрд╛рдо рд╣реИред рдереЛрдбрд╝реА рдЕрдЪреНрдЫреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд╛рд╣рд┐рдПред
PowerShell рдПрдХ рдЖрджрд░реНрд╢ рд╡рд┐рдХрд▓реНрдк рдирд┐рдХрд▓рд╛: рдореИрдВ рдЕрдЬрдЧрд░ рдХреА рддрд░рд╣ рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЬреАрд╡рди рдореЗрдВ .bat рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдмрдирд╛рдП рд╣реИрдВред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдирд╛рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдереЗ рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (WinXp рдХреЗ рд▓рд┐рдП "рд╕рд╛рд░рд╛рдВрд╢", Win7 рдХреЗ рд▓рд┐рдП "рд╡рд┐рд╡рд░рдг")ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЛрдЯ рд╢реЗрдпрд░рдкреЙрдЗрдВрдЯ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЧреБрдгреЛрдВ рд╕реЗ "рдирд╛рдо" рдЙрдард╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рдХрд▓рд╛ред
рдлрд╝рд╛рдЗрд▓ рдЧреБрдгреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, OLE рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрддреНрддрд┐ рд░реАрдбрд░ 2.1 рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (vb7 рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ .net рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрд╡рд░рдг рд╣реИ), рд▓рд╛рдн рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╢реАрди рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдШрдЯрдХ рдХрд╛рд░реНрдпрд╛рд▓рдп рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреАред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
[System.Reflection.Assembly]::LoadFrom('c:\DsoFile\Source\Vb7Demo\bin\Interop.DSOFile.dll') function SetSummary-Name([string] $folder, [string]$pattern = '*.*') { $files = [System.IO.Directory]::GetFiles($folder, $pattern) foreach ($f in $files) { $oled = New-Object -TypeName DSOFile.OleDocumentPropertiesClass $oled.Open($f, $false, [DSOFile.dsoFileOpenOptions]::dsoOptionDefault) $sp = $oled.SummaryProperties $sp.Title = $f.Substring($f.lastindexof('\') + 1, $f.lastindexof('.') - $f.lastindexof('\') - 1) $oled.close($true) } } SetSummary-Name -folder 'c:\photo' 


рдЕрдЧрд▓рд╛, рдорд┐рд╢реНрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВ:
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрдЯрд┐рд▓ рдбрд┐рдЬрд╛рдЗрди рдХреА рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

 #        function RandomName([string]$path) { $length = 20 #    $sb = New-Object -TypeName System.Text.StringBuilder for($i=0; $i -lt $length; $i++) { #   ,  ... [char]$ch = [Convert]::ToChar([Convert]::ToInt32([Math]::Floor(26 * $rand.NextDouble() + 65))) $tmp = $sb.Append($ch) # Append    ,    $tmp } $name = $path.Substring($path.lastindexof('\') + 1, $path.lastindexof('.') - $path.lastindexof('\') - 1) $sb = $sb.ToString().ToLower() return $path.Replace($name, $sb) } function MixFiles([string]$From, [string]$pattern = '*.*') { $files = [System.IO.Directory]::GetFiles($from, $pattern) foreach($f in $files) { $path = RandomName -path $f #    , while([System.IO.File]::Exists($path)) { #  ,    $path $path = RandomName -path $f } #        Write-Host ($f + ' -> ' + $path) [System.IO.File]::Move($f, $path) } } $rand = New-Object -TypeName Random MixFiles -from 'c:\test\' -pattern '*.jpg' 


рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

Source: https://habr.com/ru/post/In144888/


All Articles