- フォンアンドロイド.com
- 仕組み
- Powershell: 使い方を学ぶための 4 つの楽しいスクリプト
Powershell はコマンド プロンプトであるだけでなく、タスクを自動化したり、膨大な量のデータをその場で並べ替えたりできるだけでなく、楽しむこともできるプログラミング言語でもあります。このファイルでは、少なくとも新しいコマンド プロンプトを使いこなす方法を学ぶために、楽しくて便利なスクリプトの 4 つの例を示します。
Powershell がデフォルトで従来のコマンド プロンプト (cmd) を置き換えるようになりましたWindows 10 Creators Update以降。このプログラムを使用すると、Cmd で実行できることはすべて実行できるだけでなく、経験豊富な開発者や新進のプログラマーが好奇心から小さなスクリプトを作成したり、実際にコーディングしてコンピューターの使用を簡素化したりすることもできます。私たちは、興味深いだけでなく有益な例を示すために、これらのいくつかのスクリプトを試してみました。
Powershell: 星のループ
この小さなスクリプトを使用すると、ループがどのように機能するかを学ぶことができます。これをコピーして Powershell ウィンドウで実行し、結果を直接確認します。
$i="*"
Do {
$i="$i*"
$i
}
While ($true)
なぜこのループを「スターループ」。プログラムを中断するには、キーを押しますCtrl + Cキーボードの。この小さなコードは非常に楽しいですが、さらに便利なことができます。たとえば、星を好きなものに置き換えることができます。ただし、他の要素、偶数も含まれます。
$i=1
Do {
$i
$i++
}
While ($i -le 10)
ループは、次の値に含まれる数値を表示します。$1
の値に限り 1 を加算します。$i
は 10 未満です (したがって、$i -le 10
最後に - シニフィアンより少ないまたは未満英語で)。を置き換えることで、これをカウントダウンに変換することも可能です。++
の隣に$i
これは変数であることを理解しているでしょう。--
。また、ロケット離陸スタイルのカウントダウンを行う場合は、開始値を 10 に変更し、最後に 0 を入力する必要があります。
また、各反復のレンダリングを遅くしたい場合 (たとえば、各数値を 1 秒間隔で表示する場合)、ループごとに設定されたミリ秒間プログラムを一時停止するコマンドを追加できます。
$i=10
Do {
$i
$i--
Start-Sleep -m 1000
}
While ($i -ge 0)
最後に、ループ内の小さなコードが実行されるたびにビープ音を追加したい場合は、次のように追加します。[console]::beep(440,100)
ここで、440 はサウンドの周波数 (Hz 単位) (A です)、100 は再生時間です。これにより、次のコードが得られます。
$i=10
Do {
$i
$i--
[console]::beep(440,100)
Start-Sleep -m 1000
}
While ($i -ge 0)
カウントダウンの場合、While
(while…) の値が得られるまでループを再生できません。$i
$i の値は 10 から始まるため、「0 未満」になります。したがって、最後の行で置き換える必要があります。-le
パー-ge
つまりより大きいまたはフランス語よりも高い。
Powershell で音楽を作成する
Powershell で音楽を作成できると言ったらどうなるでしょうか? Powershell プログラミング言語を学ぶ最も楽しい方法の 1 つは、音楽をプログラムすることです。曲のコードを Powershell ウィンドウに直接コピーし、次のように入力します。前菜それらを実行するために。
「帝国の行進曲」
[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(698,350)
[console]::beep(523,150)
[console]::beep(415,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
「ミッションインポッシブル」
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(932,150)
Start-Sleep -m 150
[console]::beep(1047,150)
Start-Sleep -m 150
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(699,150)
Start-Sleep -m 150
[console]::beep(740,150)
Start-Sleep -m 150
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(932,150)
Start-Sleep -m 150
[console]::beep(1047,150)
Start-Sleep -m 150
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(784,150)
Start-Sleep -m 300
[console]::beep(699,150)
Start-Sleep -m 150
[console]::beep(740,150)
Start-Sleep -m 150
[console]::beep(932,150)
[console]::beep(784,150)
[console]::beep(587,1200)
Start-Sleep -m 75
[console]::beep(932,150)
[console]::beep(784,150)
[console]::beep(554,1200)
Start-Sleep -m 75
[console]::beep(932,150)
[console]::beep(784,150)
[console]::beep(523,1200)
Start-Sleep -m 150
[console]::beep(466,150)
[console]::beep(523,150)
独自の作品を作成する
コマンドを分析するとわかるように、[console]::beep
括弧内に 2 つの数字を入れます。左側の数字はサウンドの周波数 (たとえば、「A」の場合は 440 Hz) を示し、右側の数字はサウンドの再生時間 (ミリ秒単位) を示します。ミッションインポッシブルでは、音声がコマンドに散在していることもわかります。Start-Sleep -m 150
。これはつまり、「Xミリ秒間何もしないでください」: 沈黙を導入するのに最適です。それはあなたのものです - コメントであなたの作品を自由に共有してください!
Powershell で話すようにする
Powershell でテキストを直接音声合成に変換することも可能です。これを行うには、まずこのコマンドを起動して音声合成モジュールをロードし、次に新しいオブジェクトを作成する必要があります。$speak
これにより、その使用が簡素化されます。これはすべて非常に簡単で、次の 2 行をコピーして Powershell で実行します。
Add-Type -AssemblyName System.speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
次に、Powershell の音声合成を話させることができます。
$speak.Speak("Je donne ma langue au chat")
文章をその場で WAV ファイルに変換することも可能です。これには、次のコマンドを変更して実行することで、何らかの方法でファイルを開いたり、ハード ドライブへの保存を開始したりする必要があります。次に、別のコマンドの実行が完了したらファイルを「閉じる」と、選択したプログラムでそのファイルを読み取ることができます。
$speak.SetOutputToWaveFile("C:\users\LE\CHEMIN\QUE\VOUS\AUREZ\CHOISI\test.wav")
次に、いくつか実行します$speak.Speak()
音声合成に変換したい文が含まれている場合は、次のコマンドを実行してファイルを閉じます。
$speak.Dispose()
音声が気に入らない場合は、次のコマンドを実行して、インストールされている音声のリストを表示できます。
$speak.GetInstalledVoices().VoiceInfo
音声名をコピーし、このコマンドに貼り付けて変更します。
$speak.SelectVoice('LA VOIX QUE VOUS AVEZ CHOISIE')
スクリプトを使用して Windows 10 デスクトップを整理する
Reddit のこの小さなスクリプト (u/Zazierx に感謝!) は非常に実用的なので、皆さんと共有せずにはいられません。これにより、条件演算子 (コードは比較的明確で読みやすい) について学習したり、Windows 10 デスクトップをファイルの種類ごとにフォルダーに整理したりすることができます。次のコードをコピーして Powershell ウィンドウに貼り付け、実行します。
$pathToUse = "C:\Utilisateurs\$env:username\Bureau"
$video = @(
'3g2','3gp','3gpp','asf','avi','divx','f4v',
'flv','h264','ifo','m2ts','m4v','mkv','mod','mov',
'mp4','mpeg','mpg','mswmm','mts','mxf','ogv','rm',
'srt','swf','ts','vep','vob','webm','wlmp','wmv'
)
$spreadsheets = @(
'csv','ods','xls','xlsx'
)
$images = @(
'arw','bmp','cr2','crw','dcm','dds','djvu','djvu',
'dmg','dng','fpx','gif','ico','ithmb','jp2','jpeg',
'jpg','nef','nrw','orf','pcd','pict','png','psd',
'sfw','tga','tif','tiff','webp','xcf'
)
$presentations = @(
'key','odp','pps','ppsx''ppt','pptm','pptx'
)
$docs = @(
'chm','doc','docm','docx','dot','dotx','eml','eps',
'hwp','log','m3u','odt','pages','pdf','pub','rtf',
'sxw','txt','wpd',' wps','xml','xps'
)
$cadFiles = @(
'dwg','dxf'
)
$misc = @(
'bin','cda','dat','dll','exe','isc',
'img','inf','ipa','kmz','lnk','pes',
'ps','rem','torrent','ttf','vcf'
)
$ebooks = @(
'azw','azw3','epub','fb2''lit','lrf','mbp','mobi',
'opf','prc'
)
$web = @(
'css','htm','html','js','json','php'
)
$arcs = @(
'7z','apk','bz2','cbr','gz','gzip','jar','rar',
'tar','tgz','zip','war'
)
$scripts = @(
'bat','cmd','vb','vbs','vbe','js',
'jse','ws','wsf','wsc','wsh','ps1',
'ps1xml','ps2','ps2xml','psc1','psc2','sql'
)
$files = Get-ChildItem -Path $pathToUse
Foreach ($x in $files){
if($docs.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Documents" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Documents"
}
elseif($spreadsheets.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Spreadsheets" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Spreadsheets"
}
elseif($images.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Images" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Images"
}
elseif($presentations.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Presentations" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Presentations"
}
elseif($video.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Videos" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Videos"
}
elseif($cadFiles.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "CAD Files" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"CAD Files"
}
elseif($misc.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Misc" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Misc"
}
elseif($ebooks.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "E-Books" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"E-Books"
}
elseif($web.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Web" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Web"
}
elseif($arcs.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Archives" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Archives"
}
elseif($scripts.Contains($x.Extension.TrimStart('.').ToLower())){
New-Item -ItemType Directory -Path $pathToUse -Name "Scripts" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Scripts"
}
elseif($x.Directory){
New-Item -ItemType Directory -Path $pathToUse -Name "Other - misc" -ErrorAction Ignore
Move-Item -Path $x.FullName -Destination $pathToUse/"Other - misc"
}
else{
Write-Host $x
}
}
いくつかの小さな変更を加えることで、どんなファイルでも簡単に整理できます。他に楽しい Powershell スクリプトをご存知ですか?この記事のコメント欄でシェアしてください!