ããã§ãªãå Žåã¯èª°ã§ããïŒ ãã€ã§ããïŒ
åã®ããŒãã§ã¯ãPowerShellã®å®è¡æ¹æ³ãåŠã³ãã¹ã¯ãªããå®è¡ããªã·ãŒãèŠã€ããŸããã ã³ãã³ãã¬ãããäœã§ããããç解ãããã€ãã©ã€ã³ã«æ²¿ã£ãŠã³ãã³ãã¬ããã転éããæ¹æ³ãšãããããã£ãååŸããæ¹æ³ãç¥ã£ãŠããŸãã PowerShellã«ã¯å€§ããªå©ããããããšãããããŸããã
ãã®ããŒãã§ã¯ãå€æ°ãæ±ããå€æ°ã®ã¿ã€ããšãã®ã¢ã¯ã»ã¹æ¹æ³ãå¯èœãªéãããããæ¹æ³ã§æ¯èŒããã³è¡šç€ºããæ¹æ³ã調ã¹ãŸãã ãµã€ã¯ã«ã«å¯ŸåŠããããã€ãã®é¢æ°ãäœæããŠãã ããã
âããŒãIã«ç§»åã¯ããã«
æåã®ãžã£ã³ãã¹ã¿ãŒãã§çºçãã質åã«çããããšããå§ããŸãã
PowerShellã®åªããæ©èœã¯äœã§ããïŒ ãªãå匷ããå¿
èŠãããã®ã§ããïŒã絶奜ã®æ©äŒããšããèšèã®äžã«ãã誰ããèªåã®ããšãç解ã§ããŸãã
PowerShellã3èªã§èª¬æããªããã°ãªããªãã£ãå Žåãããã¯ç®¡çãç°¡çŽ åãã èªååãšç®¡çã®ããã®ããŒã«ã®äœæãæ¯æŽããç°å¢ã§ãã
Windows Serverããã³MicrosoftãµãŒããŒãœãããŠã§ã¢ã管çããŠããå Žåã¯ãPowerShellãæ€èšãã䟡å€ããããŸãã ããšãã°ãæã人æ°ã®ããMicrosoft Exchange Server補åã®1ã€ãåãäžãããšãé»æºç®¡çã·ã§ã«Exchange管çã·ã§ã«ã³ã³ãœãŒã«ã衚瀺ãããŸãã
PoShãç¥ã£ãŠãããšãå¿
èŠãªããŒã¿ã®ã¢ããããŒããã·ã¹ãã ããã»ã¹ã®å¶åŸ¡ã®æ§æãã¬ããŒãã®éä¿¡ããŠãŒã¶ãŒã®äœæãåé¡ã®è§£æ±ºãç°¡åã«è¡ãããšãã§ããŸã...
ç§ã¯ç®¡çããŸããããã¯ããŸã£ããç°ãªãè·æ¥ã®äººã
ãWebãµã€ãã®äœæã«å€¢äžã«ãªã£ãŠããæ¹æ³ãšæ¯èŒã§ããŸãã 圌ãã¯æ¬åœã«ãããå¿
èŠãšããªãããã§ããã圌ãã¯ããããã£ãŠããŸãã ç¬èªã®éçºããšã³ã¿ãŒãã€ã¡ã³ãããŸãã¯åã³ã®ããã«ã
ããªãã¯åŠçã§ããïŒ äºæ¬¡æ¹çšåŒã解ãæåã®ã¢ããªã±ãŒã·ã§ã³ãäœæããŠãã ããã
ãŸãã¯ãããšãã°ã解æãå匷ããŠãYouTubeããé³æ¥œãçŸãããããªãããŠã³ããŒãããããã®ç¬èªã®ã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã
ããã¯ãã¹ãŠããªããšããªãã®æ³ååã«ããã£ãŠããŸãã
ãã¡ããã芧ãã ãããPowerShell
ã§è©±ãããšãæããããŸãã
MVAã§ãããªãèŠãããšãã§ããŸãïŒã¯ããç§ã¯ããªãã«å®å
šã«åæããŸã-ããå¹æçã§ãã
確ãã«ãã ããã12ã15æéã®ã³ãŒã¹ãèŠãæéãããããã§ã¯ãªãã誰ãããã®æ¹æ³ã§æ
å ±ãææ¡ã§ããããã§ã¯ãããŸããã
ããã§ãç§ã¯èªåã®ã¹ãã«ãç¡éã«ããã«çºå±ããç¶ããããšã«æåããããã®åºæ¬çãªç¥èãäžããããšããŸãã
å€æ°
- PowerShellã®å€æ°ã¯ã $èšå·
ïŒæ¬§å·é£åã§ã¯â¬èšå·ïŒã§å§ãŸããååã«ä»»æã®æåãæ°åãã¢ã³ããŒã¹ã³ã¢ãå«ããããšãã§ããŸãã - å€æ°ã«å€ãå²ãåœãŠãã«ã¯ãã = ãèšå·ã䜿çšããŠå€ãå²ãåœãŠãŸãã å€æ°ã®å€ã衚瀺ããã«ã¯ãåã«ãã®å€æ°ãæžãããšãã§ããŸãã 以äžã®ããã¹ãã®æ
å ±ã®åºåãåæããŸãã
$var = 619 $var
- ç®è¡æŒç®ã¯æ°å€ã«å¯ŸããŠå®è¡ã§ããè¡ãè¿œå ã§ããŸãã æååã«æ°å€ãè¿œå ãããšãæ°å€ã¯èªåçã«æååã«å€æãããŸãã
$a = 1 $b = 2 $c = $a + $b $c #c = 3 $str = $str = $str + $str #str = $str = $str + 2014 $str #str = 2014
- ãã®å€æ°ãŸãã¯ãã®å€æ°ã®åã調ã¹ãå¿
èŠãããå Žåã¯ãGetTypeïŒïŒã¡ãœããã䜿çšã§ããŸã
$s = " ?" $s.GetType().FullName
- PowerShellã®å€æ°ã®ã¿ã€ãã¯èªåçã«æ±ºå®ãããããæåã§å²ãåœãŠãããšãã§ããŸãã
$var = "one" [string]$var = "one"
PowerShellã¯ãMicrosoft .NET FrameworkããŒã¿åã䜿çšããŸãã äž»ãªãã®ãæ€èšããŠãã ããã
ã¿ã€ã/ .NETã¯ã©ã¹ | 説æ |
---|
[æåå]
System.string | ã²ã
$var = "one"
|
[char]
System.char | èšå·
$var = [char]0x263b
|
[bool]
System.Boolean | ããŒã«ã $ trueãŸãã¯$ falseã«ã§ããŸãã
$bvar = $true
|
[int]
System.Int32 | 32ãããæŽæ°
$i = 123456789
|
[é·ã]
System.Int64 | 64ãããæŽæ°
$long_var = 12345678910
|
[10é²æ°]
System.Decimal | 128ãããã®10é²æ°ã æ°åã®æåŸã«ããæådãå¿
èŠã§ã
$dec_var = 12345.6789d
|
[ããã«]
System.Double | 8ãã€ãã®10é²æµ®åå°æ°ç¹æ°
[double]$double_var = 12345.6789
|
[ã·ã³ã°ã«]
System.Single | 32ãããæµ®åå°æ°ç¹æ°
[single]$var = 123456789.101112
|
[æ¥æ]
System.DateTime | å¯å€æ¥æã
$dt_var = Get-Date
|
[é
å]
System.Object [] | é
å é
åã®èŠçŽ ã®ã€ã³ããã¯ã¹ã¯0ã§å§ãŸããŸã-é
åã®æåã®èŠçŽ $ masãåç
§ããã«ã¯ã $ mas [0]ãæžã蟌ã¿ãŸãã
$mas = "one", "two", "three";
é
åã«èŠçŽ ãè¿œå ããã«ã¯ã次ã®ããã«èšè¿°ã§ããŸã
$mas = $mas + "four"
é
åã®åèŠçŽ ã¯ãç¬èªã®ã¿ã€ããæã€ããšãã§ããŸãã
$mas[4] = 1
|
[ããã·ã¥ããŒãã«]
System.Collections.Hashtable | ããã·ã¥ããŒãã«ã ããã·ã¥ããŒãã«ãšé
åã®éãã¯ãã€ã³ããã¯ã¹ãé
åã§äœ¿çšãããååä»ãããŒãããã·ã¥ããŒãã«ã§äœ¿çšãããããšã§ãã ããã·ã¥ããŒãã«ã¯æ¬¡ã®ååã«åºã¥ããŠæ§ç¯ãããŸã ïŒ @ {key = "value"}
$ht = @{odin="one"; dva="two"; tri="three"}
ããã·ã¥ããŒãã«ã«ã¢ã€ãã ãè¿œå ããã«ã¯ããŸã ååšããªãããŒãå²ãåœãŠããã AddïŒïŒã¡ãœããã䜿çšããŸãã æ¢åã®ããŒã«å²ãåœãŠãè¡ããããšãããŒå€ã¯å²ãåœãŠãããããŒã«å€æŽãããŸãã ããã·ã¥ããŒãã«ããã¢ã€ãã ãåé€ããã«ã¯ã RemoveïŒïŒã¡ãœããããããŸãã
$ht.Add("chetyre", "four") $ht.pyat = "five" $ht.Remove("dva")
|
ãããããå€æ°ã«ã¯ç¹å®ã®å€ã ãã§ãªããããŒãã«å
ã®System.Object []ã¯ã©ã¹ã«æ³šç®ã§ããããšãæ¢ã«ç解ããŠããã§ãããã ãŸããã³ãã³ãã¬ããã®åºåãå€æ°ã«æžã蟌ãããšãã§ããŸãã
æŠéã¿ã¹ã¯ãåæããŸããã ããããã¯ãŒã¯äž
ã®è€æ°ã®ã³ã³ãã¥ãŒã¿ãŒã®
IPã¢ãã¬ã¹ãš
MACã¢ãã¬ã¹ãèŠã€ããå¿
èŠããããŸãã ã³ã³ãã¥ãŒã¿ãŒådomain-comp1ãdomain-comp2ã ãã¿ãã¬ã®äžã§ã®ãœãªã¥ãŒã·ã§ã³ïŒ
ã³ãŒãã衚瀺 $MAC = Get-WmiObject -ComputerName domain-comp1, domain-comp2 -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=True | Select-Object -Property * | SELECT PSComputerName, @{Name="IPAddress";Expression={$_.IPAddress.get(0)}}, MACAddress, Description $MAC
äœãèµ·ãã£ãŠããïŒ
Get-WmiObjectã³ãã³ãã¬ããã®çµæã
$ MACå€æ°ã«æžã蟌ã¿ãŸããããã䜿çšããŠãWMIèŠæ±ã
-computernameãã©ã¡ãŒã¿ãŒã§æå®ãããã³ã³ãã¥ãŒã¿ãŒã«éä¿¡ãã
Win32_NetworkAdapterConfigurationã¯ã©ã¹ããå¿
èŠãªæ
å ±ãè¿ããŸãã
çŸåšã®ã³ã³ãã¥ãŒã¿ãŒã®IPã¢ãã¬ã¹ãšMACã¢ãã¬ã¹ãååŸããå¿
èŠãããå Žåãã³ã³ãã¥ãŒã¿ãŒåã®ä»£ããã«ã-computernameãã©ã¡ãŒã¿ãŒã«ããããæž¡ãããšã«æ³šæããŠãã ããã ãããŠã次ã®äŸã§ã¯ãçµæããã¡ã€ã«Dã«ä¿åããŸãã\ comp_mac_ip.csvïŒ
$MAC = Get-WmiObject -ComputerName . -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=True | Select-Object -Property * | SELECT PSComputerName, @{Name="IPAddress";Expression={$_.IPAddress.get(0)}}, MACAddress, Description $MAC | Export-Csv D:comp_ip_mac.csv -Encoding UTF8
å¯å€ç¯å²
PowerShellã®å€æ°ã®ã¹ã³ãŒãã¯ã
ããŒã«ã«ãŸãã¯
ã°ããŒãã«ã®ããããã§ãã ããã©ã«ãã§ã¯ãå€æ°ã¯ããŒã«ã«ã¹ã³ãŒããæã¡ãã¹ã³ãŒãã«å¶éãããŠããŸããããšãã°ãé¢æ°ãŸãã¯çŸåšã®ã¹ã¯ãªããã§ã®ã¿äœ¿çšã§ããŸãã ã°ããŒãã«å€æ°ã¯ãçŸåšã®PowerShellã»ãã·ã§ã³å
šäœã§æå¹ã§ãã ã°ããŒãã«å€æ°ãæå®ããã«ã¯ã次ã®æ§æãèšè¿°ããã ãã§ååã§ãã
$ GlobalïŒvariable = value $Global:var = 12
ãããŠãå€æ°ã®ãããã¯ã«é¢ããå¥ã®ããªãã¯...ã©ãããããããåå1Cãšãã®ãã·ã¢èªããã°ã©ãã³ã°ç°å¢ãšè°è«ããŠã圌ãã¯å°ããŸããïŒ
-ãããããã§ããPowerShellã§ãã·ã¢èªã®é¢æ°ãŸãã¯å€æ°ãèšå®ãããšãæ©èœããŸããïŒ-çè«çã«ã¯ãåäœããã¯ãã§ããããããã·ã³ãã«ã§ãã
ã¯ãã確ãã«ïŒ
function () { ", $env:USERNAME. ?" Start-Sleep 3 " ?" } function () { & "C:\Program Files\Internet Explorer\iexplore.exe" http:
æ¯èŒæŒç®åãšè«çæŒç®å
æ¯èŒæŒç®åãšè«çæŒç®åã¯ã2ã€ã®å€ã®ç䟡æ§ãŸãã¯å¯Ÿå¿ãæ€èšŒããŸãã
- æ¡ä»¶ãæºãããããšãæ¯èŒæ§é ã¯åžžã«ããŒã«å€$ trueãŸãã¯æ¡ä»¶ãfalseã®å Žåã¯$ falseãè¿ããŸãã
以äžã®è¡šã«æ¯èŒæŒç®åã瀺ããŸãã
ãªãã¬ãŒã¿ãŒ | 説æ | äŸ |
---|
-eq | çããïŒ=ïŒ | $var = "619" $var -eq 123 #$false
|
-ne | çãããªãïŒ<>ïŒ | $var = "619" $var -ne 123 |
-gt | ãã倧ãã/ãã£ãšïŒ>ïŒ | $var = "619" $var -gt 123 |
-ge | ãã倧ãããçãã/ãã倧ãããçããïŒ> =ïŒ | $var = "619" $var -ge 123 #$true |
-lt | ããå°ããïŒ<ïŒ | $var = "619" $var -lt 123 |
-le | ããå°ãããçããïŒ<=ïŒ | $var = "619" $var -le 123 #$false |
ã®ãã㪠| ã¯ã€ã«ãã«ãŒããšã®æ¯èŒ | "Habra" -like "habr*" #true |
-æ°ã«å
¥ããªã | ã¯ã€ã«ãã«ãŒãã®äžäžèŽã®æ¯èŒ | "Habra" -notlike "habr*" #false |
å«ã | å·ŠåŽã®å€ã«å³åŽã®å€ãå«ãŸããŠããŸãã | 1, 2, 3, 4, 5 -contains 3 #$true |
-å«ãŸãªã | å·ŠåŽã®å€ã«å³åŽã®å€ãå«ãŸããŠããªãå Žåãçå®ãåŸãããŸã | 1, 2, 3, 4, 5 -notcontains 3 #$false |
-ããã | æ£èŠè¡šçŸã䜿çšããŠãã¿ãŒã³ãäžèŽããã | $str = "http://habrahabr.ru" $str -match "^http://(\S+)+(.ru)$" #$true |
-äžäžèŽ | æ£èŠè¡šçŸã䜿çšããŠãã¿ãŒã³ã®äžäžèŽãèŠã€ãã | $str = "http://habrahabr.ru" $str -notmatch "^http://(\S+)+(.com)$" #true |
-亀æ | æŒç®åã®å·ŠåŽã®å€ã®äžéšãŸãã¯ãã¹ãŠã眮ãæããŸã | "Microhabr" -replace "Micro","Habra" #Habrahabr |
äŸãèŠãŠã¿ãŸãããã ãã®äŸã§ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«å¿ããŠããªã¢ãŒãã³ã³ãã¥ãŒã¿ãŒäžã®å¯èœãªãŠãŒã¶ãŒãããã¡ã€ã«ãžã®ãã¹ã圢æããŸãã ãã¿ãã¬ã®äžã§ã®ãœãªã¥ãŒã·ã§ã³ïŒ
ã³ãŒãã衚瀺 # Function UProfile ($UCompName, $ULogin) { [string]$CompOS = Get-WmiObject -ComputerName $UCompName -Class Win32_OperatingSystem | SELECT Caption # if ($CompOS -match "Windows 7") { # "Windows 7" [string]$LinkUserProfile = "\\$UCompName\d$\users\$ULogin" # $LinkUserProfile } elseif ($CompOS -match "Windows XP") { # "Windows XP" [string]$LinkUserProfile = "\\$UCompName\d$\Documents and Settings\$ULogin" # $LinkUserProfile } } UProfile domain-comp1 Administrator # - -
ã¯ããããã§ã¯ãããã¡ã€ã«ãååšãããã©ããã確èªããŸããã ãããã確èªã§ããŸãã ãããè¡ãã«ã¯ã
Test-Pathã³ãã³ãã¬ããã§ãã¹ã®ååšã確èªããå¥ã®æ¡ä»¶ãè¿œå ããŸãã
# Function UProfile ($UCompName, $ULogin) { [string]$CompOS = Get-WmiObject -ComputerName $UCompName -Class Win32_OperatingSystem | SELECT Caption # if ($CompOS -match "Windows 7") { # "Windows 7" [string]$LinkUserProfile = "\\$UCompName\d$\users\$ULogin" # } elseif ($CompOS -match "Windows XP") { # "Windows XP" [string]$LinkUserProfile = "\\$UCompName\d$\Documents and Settings\$ULogin" # } if (Test-Path $LinkUserProfile) { $LinkUserProfile } else { " $ULogin $UCompName" } # } UProfile domain-comp1 Administrator # - -
ãšããã§ã
Xaegrã¯åœŒã®ããã° ã§PowerShellã§ã®åœŒã®æ£èŠè¡šçŸãéåžžã«ãã説æããŠããŸãã æ£èŠè¡šçŸãæžãèœåãèªãã§ç解ããã®ã«æ°æéè²»ãã䟡å€ããããŸãããªãã¬ãŒã¿ãŒ | 説æ | äŸ |
---|
-ãã㊠| è«çç | ("" -eq "") -and (619 -eq 619) #$true |
-ãŸã㯠| è«ççãŸã㯠| ("" -eq "") -or (619 -eq 123) #$true |
-ã§ã¯ãªã | è«ççã§ã¯ãªã | -not (123 -gt 324) ãŸãã¯
!(123 -gt 324) |
if ... elseifããã³elseã«ã€ããŠäžèš
if ( 1- ) { - } # 1 , , - elseif ( 2- ) { - } # : , 2 , else { - } # : ,
ãã¹ãŠãéåžžã«ç°¡åã§ãã æ¡ä»¶ãçã®å Žåãäžæ¬åŒ§ã§å²ãŸããæ¡ä»¶ã«ç¶ãã³ãŒããå®è¡ããŸãã æ¡ä»¶ãçã§ãªãå Žåãå®è¡ãã¹ãããããæ¡ä»¶ãããã«ç¶ããã©ããã確èªããŸãã
elseifãèŠã€ãã£ãå Žåã¯ãæ°ããæ¡ä»¶ã確èªããæåããå Žåã¯ã³ãŒããå®è¡ããŸãããã以å€ã®å Žåã¯ãelseifãŸãã¯elseã®åœ¢åŒã§ç¶ç¶ããããã©ãããå床調ã¹ãŸãã
æ¡ä»¶ãæºãããããšãã³ãŒããå®è¡ãããelseifãŸãã¯elseãã©ã³ããã¹ããããããŸãã
$str = "" if ( 1 -gt 2 ) { $str = "" } elseif ( $str -eq "" ) { $str } else { $str = ""; $str }
æ
å ±åºå
ç»é¢ã«æ
å ±ã衚瀺ããããã®ããã€ãã®åºæ¬çãªãªãã·ã§ã³ãæ€èšããŠãã ããã
- Out-Fileã䜿çšãããã¡ã€ã«ãžã®æžã蟌ã¿
$str = "Hello Habr!" $str | Out-File D:\out_test1.txt
ãŸãã¯ãããŒãIã§èª¬æããããã«ãã > ãèšå·ã䜿çšããŸã
$str = "Hello Habr!" $str > D:\out_test2.txt
- Export -Csvã䜿çšããŠããŒã¿ã.csvãã¡ã€ã«ã«ãšã¯ã¹ããŒãããŸã
$p = Get-Process $p | SELECT Name, Path | Export-Csv -Path D:\out_test3.csv
- ConvertTo-Htmlã䜿çšããŠHTMLãã¡ã€ã«ã«æžã蟌ã
$h = Get-Process $h | ConvertTo-Html -Property Name, Path > D:\out_test4.html & D:\out_test4.html
HTMLåºåã®æäœã¯ãå®éã«ã¯éåžžã«äŸ¿å©ã§ãã Webããã°ã©ãã³ã°ã®ã¹ãã«ãããã°ãã¹ã¿ã€ã«ãè¿œå ããŠãæåŸã«éåžžã«åªããã¬ããŒããååŸã§ããŸãã
䜿ãæ
£ãã
Get-Contentã³ãã³ãã¬ããã¯ããã¡ã€ã«ã®èªã¿åãã«åœ¹ç«ã¡ãŸãã
Get-Content D:\out_test1.txt
ãµã€ã¯ã«
PowerShellã«ãŒãã¯ãä»ã®èšèªã®ã«ãŒããšå€§å·®ãããŸããã ä»ã®å Žæãšã»ãŒåãïŒ
ããªãããã
æ¡ä»¶ãçã§ããéãè¡ã
$x = 10 do { $x $x = $x - 1 } while ($x -gt 0)
ãŸã§ãã
æ¡ä»¶ãæºããããŠããéã«äžé£ã®ã³ãã³ããç¹°ãè¿ãã«ãŒã
$x = 0 do { $x $x = $x + 1 } until ($x -gt 10)
ã®ããã«
åãã¹ããããç¹å®ã®åæ°ç¹°ãè¿ããµã€ã¯ã«
for ($i = 0; $i -lt 10; $i++) { $i }
Foreach
ãªããžã§ã¯ãåéãµã€ã¯ã«
$collection = "-1", "-2", "-3" foreach ($item in $collection) { $item }
é¢æ°ãæžã
ããšãã°ãPowerShellã§æ°å€ã®2ä¹ãååŸããé¢æ°ã¯æ¬¡ã®ããã«ãªããŸãã
function sqr ($a) { return $a * $a } sqr 2
ãããŠæåŸã«ãé³èš³ãå®è¡ããã®ã«åœ¹ç«ã€é¢æ°ã®äŸã§ãã ãã®äŸã§ã¯ãä»æ¥æ€èšãããã¹ãŠã®ãã®ã ãã§ãïŒ
ã³ãŒãã衚瀺 # function Translit ([string]$inString) { $Translit = @{ # - [char]'' = "a" [char]'' = "A" [char]'' = "b" [char]'' = "B" [char]'' = "v" [char]'' = "V" [char]'' = "g" [char]'' = "G" [char]'' = "d" [char]'' = "D" [char]'' = "e" [char]'' = "E" [char]'' = "yo" [char]'' = "Yo" [char]'' = "zh" [char]'' = "Zh" [char]'' = "z" [char]'' = "Z" [char]'' = "i" [char]'' = "I" [char]'' = "j" [char]'' = "J" [char]'' = "k" [char]'' = "K" [char]'' = "l" [char]'' = "L" [char]'' = "m" [char]'' = "M" [char]'' = "n" [char]'' = "N" [char]'' = "o" [char]'' = "O" [char]'' = "p" [char]'' = "P" [char]'' = "r" [char]'' = "R" [char]'' = "s" [char]'' = "S" [char]'' = "t" [char]'' = "T" [char]'' = "u" [char]'' = "U" [char]'' = "f" [char]'' = "F" [char]'' = "h" [char]'' = "H" [char]'' = "c" [char]'' = "C" [char]'' = "ch" [char]'' = "Ch" [char]'' = "sh" [char]'' = "Sh" [char]'' = "sch" [char]'' = "Sch" [char]'' = "" [char]'' = "" [char]'' = "y" [char]'' = "Y" [char]'' = "" [char]'' = "" [char]'' = "e" [char]'' = "E" [char]'' = "yu" [char]'' = "Yu" [char]'' = "ya" [char]'' = "Ya" } $TranslitText = "" foreach ($CHR in $inCHR = $inString.ToCharArray()) { if ($Translit[$CHR] -cne $Null) { $TranslitText += $Translit[$CHR] } # $TranslitText = $TranslitText + $Translit[$CHR] else { $TranslitText += $CHR } } return $TranslitText } Translit #: Habrahabr
ããšãã
ããã§ãPowerShellãããã«æ·±ãæãäžããã®ã«ååãªæ
å ±ãããããŸããã ãã®ããŒãã§ã¯ãå€æ°ãããŒã¿åãæ
å ±ã®åºåã®æŽçãæ¯èŒæŒç®åãã«ãŒãã«äŒããŸãã...èŠãŠãã ãããéå§ã¯ããã»ã©é£ãããªãããšãããããŸããïŒ
å¹³éãä¿ã¡ãPowerShellãåŠã³ãŸããç¶ç¶ããã«ã¯...
è¿œå æ
å ±