前スレ
【最強CUI】PowerShell -Part 2
http://mevius.5ch.net/test/read.cgi/tech/1480109402/
PowerShell -Part 3
■ このスレッドは過去ログ倉庫に格納されています
2018/10/09(火) 17:46:48.32ID:G4IJkzod
508デフォルトの名無しさん
2019/01/09(水) 17:40:53.83ID:iwuLoYXa >>507
あなたの職業、PCの使いみち次第なので、そこが明らかじゃないとなんとも言えない。
あなたの職業、PCの使いみち次第なので、そこが明らかじゃないとなんとも言えない。
509デフォルトの名無しさん
2019/01/09(水) 19:51:08.47ID:nNa8IYsJ510デフォルトの名無しさん
2019/01/09(水) 21:58:57.96ID:LPlKYmug それな
今どきの企業はセキュリティポリシーがしっかりしていて
PythonだのRubyだの入れたくてもできないからな
今どきの企業はセキュリティポリシーがしっかりしていて
PythonだのRubyだの入れたくてもできないからな
511デフォルトの名無しさん
2019/01/09(水) 22:13:34.50ID:WxZlp6Z9 >>507
事務職の俺が思うメリット・デメリット。
■PowerShellに限らないプログラミングのメリット
PCを使った繰り返し作業を省力化できる。例えば、
ファイルの名前変更と移動を定型で定期的にやるとか、
同じWebサイトにアクセスして毎回似たようなことをするとか、
お客さんとか他の部署から送られてくる使いづらいExcelのデータを
シンプルな表に整形するとか。
■PowerShellならではのメリット
他の人も書いてるけど、Windowsに最初から入ってる。
スクリプトファイルを渡すだけで同僚にも使ってもらえる。
(起動用のbatファイルとか、タスクスケジューラの設定とかは必要だけど)
■デメリット
全くのプログラミング素人には難しいと思う。
初めてなら、Pythonあたりを先に勉強した方がいいかも。
「パイプラインではオブジェクトが受け渡しされる」とかいわれても
初心者には何のことか分からんと思うし(俺もいまだにしっくり来てない)
適当に解説している入門書とかWebサイトには
「retrun文の後ろの値が、関数の戻り値になります」といった、
嘘じゃないけど嘘に等しいことが書いてあって初心者は訳がわからなくなる。
俺もトライアンドエラーばかりで、きちんと習得できてないです。
事務職の俺が思うメリット・デメリット。
■PowerShellに限らないプログラミングのメリット
PCを使った繰り返し作業を省力化できる。例えば、
ファイルの名前変更と移動を定型で定期的にやるとか、
同じWebサイトにアクセスして毎回似たようなことをするとか、
お客さんとか他の部署から送られてくる使いづらいExcelのデータを
シンプルな表に整形するとか。
■PowerShellならではのメリット
他の人も書いてるけど、Windowsに最初から入ってる。
スクリプトファイルを渡すだけで同僚にも使ってもらえる。
(起動用のbatファイルとか、タスクスケジューラの設定とかは必要だけど)
■デメリット
全くのプログラミング素人には難しいと思う。
初めてなら、Pythonあたりを先に勉強した方がいいかも。
「パイプラインではオブジェクトが受け渡しされる」とかいわれても
初心者には何のことか分からんと思うし(俺もいまだにしっくり来てない)
適当に解説している入門書とかWebサイトには
「retrun文の後ろの値が、関数の戻り値になります」といった、
嘘じゃないけど嘘に等しいことが書いてあって初心者は訳がわからなくなる。
俺もトライアンドエラーばかりで、きちんと習得できてないです。
512デフォルトの名無しさん
2019/01/09(水) 22:16:39.66ID:WxZlp6Z9 間違えた
return文でした・・・
return文でした・・・
513デフォルトの名無しさん
2019/01/09(水) 22:17:35.75ID:nNa8IYsJ すごいHaskell本を借りて100ページくらい読んだら、PowerShellの関数型風な書き方も割と理解できるようになった
514デフォルトの名無しさん
2019/01/09(水) 22:19:11.83ID:nNa8IYsJ 関数型風というか勝手にOut-Defaultがつく挙動がそう見えるだけかもしれないけど
515デフォルトの名無しさん
2019/01/10(木) 00:11:38.57ID:jhx89QXs 関数型は、Ruby, jQuery(JavaScript)。
map というメソッドを頻繁に使う
PowerShell(PS)の延長線上に、Rubyがある
バッチファイル → PS
シェルスクリプト → Ruby
バッチファイル・シェルスクリプトは、とにかく、ハマリが多い!
プログラミングに適さない
map というメソッドを頻繁に使う
PowerShell(PS)の延長線上に、Rubyがある
バッチファイル → PS
シェルスクリプト → Ruby
バッチファイル・シェルスクリプトは、とにかく、ハマリが多い!
プログラミングに適さない
516デフォルトの名無しさん
2019/01/10(木) 00:25:40.33ID:mktY/a5R dosならまだしもwinで無理やり拡腸されたのはちょっとね・・・
517デフォルトの名無しさん
2019/01/10(木) 00:28:19.57ID:FheW454d >>515
この人は何でいつも同じような論調でどこにでも現れるのだろうか。
やたらruby推しするわりには具体的なrubyの良さが全く伝わってこなくて、むしろマイナスイメージをばら蒔いているような気がする。
この人は何でいつも同じような論調でどこにでも現れるのだろうか。
やたらruby推しするわりには具体的なrubyの良さが全く伝わってこなくて、むしろマイナスイメージをばら蒔いているような気がする。
518デフォルトの名無しさん
2019/01/10(木) 00:33:03.30ID:jxmC/C32 >>516
誤字がひどい
誤字がひどい
519デフォルトの名無しさん
2019/01/10(木) 04:58:55.23ID:Pqz/qBav520デフォルトの名無しさん
2019/01/10(木) 05:25:45.52ID:nf36oLbM >>519
それを言うなら、batとvbsやJscriptを組み合わせてようやく出来てたことが、よりPowershellでは少ないコーディングで同等以上の機能を実現できる。て書こうよ
それを言うなら、batとvbsやJscriptを組み合わせてようやく出来てたことが、よりPowershellでは少ないコーディングで同等以上の機能を実現できる。て書こうよ
521デフォルトの名無しさん
2019/01/10(木) 05:57:47.50ID:Pqz/qBav >>520
処理をちょっと追加・変更したくなったときにすぐほかの言語の利用や外部コマンド調達が必要になることを含めて、実現までに手間を要する、と言ったんだけどね
vbs等を覚えてそちら主体で書く前提なら、別途そういう視点での比較論を語ってくれ
処理をちょっと追加・変更したくなったときにすぐほかの言語の利用や外部コマンド調達が必要になることを含めて、実現までに手間を要する、と言ったんだけどね
vbs等を覚えてそちら主体で書く前提なら、別途そういう視点での比較論を語ってくれ
522デフォルトの名無しさん
2019/01/10(木) 06:03:49.10ID:nf36oLbM MSの意図も、現実の普及や活用もvbsはbatの補間機能だよ、それらの一括後継がPowershell、そんなことを今更説明しなきゃならんとは残念至極
つかvbs覚えずにbatだけでwinの管理ワークなんかできなかったよ
つかvbs覚えずにbatだけでwinの管理ワークなんかできなかったよ
523デフォルトの名無しさん
2019/01/10(木) 07:54:48.12ID:e7V8oUZV パワーシェルとrubyは似てる言語なの?
僕とかパワーシェルマスターベーションなのでruby勉強してみようかな
僕とかパワーシェルマスターベーションなのでruby勉強してみようかな
524デフォルトの名無しさん
2019/01/10(木) 12:28:31.19ID:8HdqxYaB >>517
ruby を NG してる
ruby を NG してる
525デフォルトの名無しさん
2019/01/10(木) 17:29:11.64ID:jhx89QXs そりゃ、Ruby がベスト。
Vagrant, Chef, Homebrew, Redmine も、Ruby
JavaScript(JS)は、Ruby に似せてくるから、扱いやすい。
Node.js のnpm, yarn も、Ruby のBundler そっくり。
GUI は、HTML, CSS, JS
再帰的なディレクトリのファイル操作も、glob がある
オブジェクト指向・関数型・Duck Typing・Open Class など、あらゆるデザインパターンの宝庫
Ruby から、PowerShell も呼べる。
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ダブルクリックで起動したい時だけ、VBS を使っている
ピラフ大王は、PowerShellで、5ch をスクレイピングするほどだけど、
漏れは、Ruby, Selenium Webdriver でやってる
「たのしいRuby 第5版、2016」でも読めば?
Vagrant, Chef, Homebrew, Redmine も、Ruby
JavaScript(JS)は、Ruby に似せてくるから、扱いやすい。
Node.js のnpm, yarn も、Ruby のBundler そっくり。
GUI は、HTML, CSS, JS
再帰的なディレクトリのファイル操作も、glob がある
オブジェクト指向・関数型・Duck Typing・Open Class など、あらゆるデザインパターンの宝庫
Ruby から、PowerShell も呼べる。
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ダブルクリックで起動したい時だけ、VBS を使っている
ピラフ大王は、PowerShellで、5ch をスクレイピングするほどだけど、
漏れは、Ruby, Selenium Webdriver でやってる
「たのしいRuby 第5版、2016」でも読めば?
526デフォルトの名無しさん
2019/01/10(木) 17:49:28.58ID:3kN+h5hG インテリセンスしょぼすぎ
527デフォルトの名無しさん
2019/01/10(木) 18:07:50.47ID:vGEkHdSz >>524
俺もそうする
俺もそうする
528デフォルトの名無しさん
2019/01/10(木) 18:08:40.70ID:ct6DIWcV529デフォルトの名無しさん
2019/01/10(木) 18:11:49.88ID:SOl/xRps どんどんrubyの評判を下げてるのがわからんのかねぇ
530525
2019/01/10(木) 18:45:39.00ID:jhx89QXs 漏れは、PowerShell で数行書くなら、Ruby で作ってしまう
クリップボードみたいなのは、Rubyから、PowerShellコマンドを呼ぶ。
ダブルクリックで起動したい時は、VBS・bat を使う
Rubyから、Node.js を呼ぶとか、すべての言語を呼び出せるかも
クリップボードみたいなのは、Rubyから、PowerShellコマンドを呼ぶ。
ダブルクリックで起動したい時は、VBS・bat を使う
Rubyから、Node.js を呼ぶとか、すべての言語を呼び出せるかも
531デフォルトの名無しさん
2019/01/10(木) 18:48:24.32ID:ntFiGaUH なるほどrubyじゃ何もできないってことだね
532デフォルトの名無しさん
2019/01/10(木) 19:03:20.25ID:3kN+h5hG IronRubyってどうなったの?
533デフォルトの名無しさん
2019/01/10(木) 20:51:10.85ID:UUY7OixD (かつて)仕様書が存在しない処理系を複製するなんてやってられなくなったんじゃないか?
534デフォルトの名無しさん
2019/01/14(月) 13:22:32.56ID:i1odpryK powershellのメリットは対話環境とスクリプトが同一の文法て書けること
ISEやVS codeで小さなブロックの挙動を確認しながら、それらを組み合わせて一連のワークフローを構築できる
『トライ&エラーで作ってる』って方がいたけど、まさにそういったやり方が出来ることが、専門職じゃなくて日常業務の効率化に使ってる自分にとって凄く大きな利点
ISEやVS codeで小さなブロックの挙動を確認しながら、それらを組み合わせて一連のワークフローを構築できる
『トライ&エラーで作ってる』って方がいたけど、まさにそういったやり方が出来ることが、専門職じゃなくて日常業務の効率化に使ってる自分にとって凄く大きな利点
535デフォルトの名無しさん
2019/01/14(月) 16:32:26.56ID:mUB6pFvH >>534
>powershellのメリットは対話環境とスクリプトが同一の文法て書けること
まさに同じ利点なんだけど、TIPS集みたいな感じでテキストファイルに数行のスクリプトをいくつも集めておいて
必要になったらそこからpowershellウインドウにコピペで即実行できるのがいいね
>powershellのメリットは対話環境とスクリプトが同一の文法て書けること
まさに同じ利点なんだけど、TIPS集みたいな感じでテキストファイルに数行のスクリプトをいくつも集めておいて
必要になったらそこからpowershellウインドウにコピペで即実行できるのがいいね
536デフォルトの名無しさん
2019/01/14(月) 17:38:40.92ID:i1odpryK537デフォルトの名無しさん
2019/01/15(火) 07:41:15.21ID:PNg+c5Yb 文化の変化には拒絶反応があるもの
過去のシェルでつけられてきた命令等の名前付けルールを見ても、
今のようにIT文化が広がった時のが目の利用者目線でつけられたものではなく、
あくまでOS周りのシステム開発者と利用者が同一だった時代、要は試行段階の
時代につけられが規則で、今の時代に合わなくなっている。
そこに風穴開けたのは大変良いことだろう。
既存の使い方に慣れた人にとっては、新たな流れは「また覚えることが増える」
「使い方が今までと違う」ということへの拒否反応が少なからずある。
やり取りを見ていて思ったのは、すでに旧来Unix系シェルのルールにのっとって
作られてきたものがレガシーに向かっていると思いたくない、気が付かないひとが
多いこと。時代は変化してゆく。
過去のシェルでつけられてきた命令等の名前付けルールを見ても、
今のようにIT文化が広がった時のが目の利用者目線でつけられたものではなく、
あくまでOS周りのシステム開発者と利用者が同一だった時代、要は試行段階の
時代につけられが規則で、今の時代に合わなくなっている。
そこに風穴開けたのは大変良いことだろう。
既存の使い方に慣れた人にとっては、新たな流れは「また覚えることが増える」
「使い方が今までと違う」ということへの拒否反応が少なからずある。
やり取りを見ていて思ったのは、すでに旧来Unix系シェルのルールにのっとって
作られてきたものがレガシーに向かっていると思いたくない、気が付かないひとが
多いこと。時代は変化してゆく。
538デフォルトの名無しさん
2019/01/16(水) 08:35:02.57ID:8/OmqdoX v6.1.2 Release of PowerShell Core
https://github.com/PowerShell/PowerShell/releases/tag/v6.1.2
https://github.com/PowerShell/PowerShell/releases/tag/v6.1.2
539デフォルトの名無しさん
2019/01/16(水) 18:21:31.35ID:Y6YhZRdL >>538
あんがとさん
あんがとさん
540デフォルトの名無しさん
2019/01/31(木) 21:35:30.95ID:AeQOSKqu &{
while($true){
(++$i)
sleep -Seconds 1
}
} | Out-GridView
Get-Date
上を実行すると1秒ごとにカウントされた値がウインドウ表示されるけど、
ウインドウを閉じたときにそれ以降のコマンド(Get-Date)が実行されず終了するのどう回避すればいいだろう・・・?
while($true){
(++$i)
sleep -Seconds 1
}
} | Out-GridView
Get-Date
上を実行すると1秒ごとにカウントされた値がウインドウ表示されるけど、
ウインドウを閉じたときにそれ以降のコマンド(Get-Date)が実行されず終了するのどう回避すればいいだろう・・・?
541デフォルトの名無しさん
2019/01/31(木) 21:44:25.79ID:AeQOSKqu Whileの継続判定を
$stop_form = Start-Job {
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
Start-Sleep -Milliseconds 500
[System.Windows.Forms.MessageBox]::Show("計測停止ボタン")
}
のフォームを使って
while($stop_form.state -eq "running"){...}
のようにもしてみたけれどウインドウ2個表示されるので方法として頭悪い・・・
$stop_form = Start-Job {
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
Start-Sleep -Milliseconds 500
[System.Windows.Forms.MessageBox]::Show("計測停止ボタン")
}
のフォームを使って
while($stop_form.state -eq "running"){...}
のようにもしてみたけれどウインドウ2個表示されるので方法として頭悪い・・・
542デフォルトの名無しさん
2019/01/31(木) 22:18:49.56ID:xJsSt9Re Windows では、よく知らないけど、
Linux では、プロセスに親子関係がある
そして親プロセスが終了すると、子プロセスにも終了メッセージが送られて、
それに何も対処しないと、普通は子プロセスも終了する
つまり、親亀こけたら子亀もこける
シェルから起動したプロセスは、シェルの子プロセスになっている
だからデーモン・サービスのように、親プロセスから切り離すか、
親から終了メッセージが送られても、子が終了しないような工夫をする必要がある
また、パイプラインでは、ジョブという処理単位もあり、
ジョブグループにまとめられて、そのグループ全部に対して作用する
Linux では、プロセスに親子関係がある
そして親プロセスが終了すると、子プロセスにも終了メッセージが送られて、
それに何も対処しないと、普通は子プロセスも終了する
つまり、親亀こけたら子亀もこける
シェルから起動したプロセスは、シェルの子プロセスになっている
だからデーモン・サービスのように、親プロセスから切り離すか、
親から終了メッセージが送られても、子が終了しないような工夫をする必要がある
また、パイプラインでは、ジョブという処理単位もあり、
ジョブグループにまとめられて、そのグループ全部に対して作用する
543デフォルトの名無しさん
2019/01/31(木) 22:20:50.85ID:wdHuOMr6 >>540
while($true){++$i|out-gridview;sleep -seconds 1;get-date}
while($true){++$i|out-gridview;sleep -seconds 1;get-date}
544デフォルトの名無しさん
2019/01/31(木) 22:33:49.84ID:nQoHUWUF powershell {
&{
while($true){
(++$i)
sleep -Seconds 1
}
} | Out-GridView
}
Get-Date
&{
while($true){
(++$i)
sleep -Seconds 1
}
} | Out-GridView
}
Get-Date
546542
2019/01/31(木) 23:44:01.11ID:xJsSt9Re Windows では知らないけど、
Linux なら、systemd で、サービスを起動できる
Linux なら、systemd で、サービスを起動できる
547デフォルトの名無しさん
2019/01/31(木) 23:44:18.82ID:AeQOSKqu548デフォルトの名無しさん
2019/01/31(木) 23:57:01.76ID:eCrLlhCC >Windows では知らないけど、
このひとなんなん
こわい
このひとなんなん
こわい
549デフォルトの名無しさん
2019/02/01(金) 07:42:04.59ID:92aZjlm0550デフォルトの名無しさん
2019/02/01(金) 09:45:34.37ID:CxyFcB/M551デフォルトの名無しさん
2019/02/01(金) 10:57:54.88ID:Df7lr2kE >>547
Out-GridView だけを、あちらで実行するとか。
GridView に表示するオブジェクトは、スレッドセーフでないといけないかも。
$run = [RunspaceFactory]::CreateRunspace()
$run.Open()
$ogv = $run.CreatePipeline()
$ogv.Commands.Add('ogv')
$ogv.InvokeAsync()
$exec = {$i = 0; for (;;) {(++$i); sleep 1}}
try {
& $exec | % {if ($run.RunspaceAvailability -ne 'Busy') {throw} $null = $ogv.Input.Write($_)}
}
catch {
Write-Warning 'GridView が閉じました。'
}
Get-Date
Out-GridView だけを、あちらで実行するとか。
GridView に表示するオブジェクトは、スレッドセーフでないといけないかも。
$run = [RunspaceFactory]::CreateRunspace()
$run.Open()
$ogv = $run.CreatePipeline()
$ogv.Commands.Add('ogv')
$ogv.InvokeAsync()
$exec = {$i = 0; for (;;) {(++$i); sleep 1}}
try {
& $exec | % {if ($run.RunspaceAvailability -ne 'Busy') {throw} $null = $ogv.Input.Write($_)}
}
catch {
Write-Warning 'GridView が閉じました。'
}
Get-Date
552デフォルトの名無しさん
2019/02/02(土) 21:37:38.54ID:GDLTgOlM もうOut-GridView側の処理は別ps1ファイルで別けて
メイン側からStart-Process に -NoNewWindow -PassThru -Wait つけて終了まで待って
終わったらメイン側の処理に戻ればいいんじゃね
ISEじゃ余分に窓出ちゃうけど直起動なら窓増えないし
結果受け取りが必要なら一手間いるけど
メイン側からStart-Process に -NoNewWindow -PassThru -Wait つけて終了まで待って
終わったらメイン側の処理に戻ればいいんじゃね
ISEじゃ余分に窓出ちゃうけど直起動なら窓増えないし
結果受け取りが必要なら一手間いるけど
553デフォルトの名無しさん
2019/02/03(日) 05:19:27.02ID:U6zkwiYj554デフォルトの名無しさん
2019/02/03(日) 10:45:58.13ID:p2YNM7CO PS > [bool]""
False
PS > [bool]$s
False
なので$nullではなく空白が代入されてる
代入の時点で型変換されてる?
False
PS > [bool]$s
False
なので$nullではなく空白が代入されてる
代入の時点で型変換されてる?
555デフォルトの名無しさん
2019/02/03(日) 11:34:45.18ID:gZVRTEN5 psのnullはnullじゃないってどこかで記事見たな
556デフォルトの名無しさん
2019/02/03(日) 12:12:22.77ID:p2YNM7CO PS > [string]$s -eq $null
False
PS > $s -eq $null
True
False
PS > $s -eq $null
True
557デフォルトの名無しさん
2019/02/03(日) 12:17:47.78ID:sBfvPdNi 型変換が定義されてるっぽいね
558デフォルトの名無しさん
2019/02/03(日) 12:58:35.28ID:jpAIKS8U $nullの型が何なのか調べればわかること
$null.GetType()
You cannot call a method on a null-valued expression.
At line:1 char:1
+ $null.GetType()
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
まとめ
結構嫌な感じですね。
$null.GetType()
You cannot call a method on a null-valued expression.
At line:1 char:1
+ $null.GetType()
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
まとめ
結構嫌な感じですね。
559デフォルトの名無しさん
2019/02/03(日) 13:06:40.62ID:KnacfqZI560デフォルトの名無しさん
2019/02/03(日) 13:52:06.12ID:fFxNo4TL >>559
[string]::IsNullOrEmpty("") もtrueになるんだが
String.IsNullOrEmpty(String) Method
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.isnullorempty
>指定された文字列が null または空の文字列 ("") であるかどうかを示します。
[string]::IsNullOrEmpty("") もtrueになるんだが
String.IsNullOrEmpty(String) Method
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.isnullorempty
>指定された文字列が null または空の文字列 ("") であるかどうかを示します。
561デフォルトの名無しさん
2019/02/03(日) 14:28:24.77ID:gZVRTEN5 うーむ・・・
[string]$s = $null
$s -eq [string]$null
$s -eq $null
$s.GetType()
True
False
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
Remove-Variable s
$s -eq [string]$null
$s -eq $null
$s.GetType()
False
True
null 値の式ではメソッドを呼び出せません。
発生場所 行:5 文字:1
+ $s.GetType()
+ ~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) []、RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
[string]$s = $null
$s -eq [string]$null
$s -eq $null
$s.GetType()
True
False
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
Remove-Variable s
$s -eq [string]$null
$s -eq $null
$s.GetType()
False
True
null 値の式ではメソッドを呼び出せません。
発生場所 行:5 文字:1
+ $s.GetType()
+ ~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) []、RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
562デフォルトの名無しさん
2019/02/03(日) 14:38:16.60ID:KnacfqZI563デフォルトの名無しさん
2019/02/03(日) 14:53:04.55ID:KnacfqZI 可能であれば [string]$s=$null
でなく [object]$s=$null でよければ
ならば、普通に比較ができるんだけどね
でなく [object]$s=$null でよければ
ならば、普通に比較ができるんだけどね
564デフォルトの名無しさん
2019/02/03(日) 14:53:36.20ID:KnacfqZI 何でフォントが変わったんだろ?
565デフォルトの名無しさん
2019/02/03(日) 17:18:00.01ID:gLy6KBGU stringやintはC#と同じくnull許容型ではないということだな
[string]$s = $null
$s
// 代入時にキャストされ空文字列になる
[int]$i = $null
$i
// 代入時にキャストされ0になる
[Nullable[string]]$s = $null
$s
// $nullが代入できる
[string]$s = $null
$s
// 代入時にキャストされ空文字列になる
[int]$i = $null
$i
// 代入時にキャストされ0になる
[Nullable[string]]$s = $null
$s
// $nullが代入できる
566デフォルトの名無しさん
2019/02/03(日) 17:37:25.59ID:KnacfqZI567デフォルトの名無しさん
2019/02/03(日) 17:47:48.25ID:KnacfqZI >>565
>[Nullable[string]]$s = $null
>$s
>// $nullが代入できる
やってみたら、今度は文字代入するとエラーになるぞよ
Unable to find type [Nullable[string]]. Details: 'System.Nullable`1[T]' 上の Gene
ricArguments[0]、'System.String' が型 'T' の制約に違反しています。
>[Nullable[string]]$s = $null
>$s
>// $nullが代入できる
やってみたら、今度は文字代入するとエラーになるぞよ
Unable to find type [Nullable[string]]. Details: 'System.Nullable`1[T]' 上の Gene
ricArguments[0]、'System.String' が型 'T' の制約に違反しています。
568デフォルトの名無しさん
2019/02/03(日) 18:06:20.48ID:gLy6KBGU ああすまん、[Nullable[string]] はダメだったか
intで動作確認してたわ
では訂正
PowerShellのstringはnullを許容しません、だな
intで動作確認してたわ
では訂正
PowerShellのstringはnullを許容しません、だな
569デフォルトの名無しさん
2019/02/03(日) 20:22:36.62ID:wQ2AkwMN >>566
C#8.0
C#8.0
570デフォルトの名無しさん
2019/02/14(木) 06:50:42.41ID:EWDxMe0z 今まであまり気にしてなかったけどPesterってめちゃくちゃ便利なんじゃねえか
他言語で書いたプログラムの結合テストがスゴく書きやすい
他言語で書いたプログラムの結合テストがスゴく書きやすい
571デフォルトの名無しさん
2019/02/14(木) 09:06:58.55ID:k6/DH+7Z >>570
いいもの教えてもらった。ありがとう。
いいもの教えてもらった。ありがとう。
572デフォルトの名無しさん
2019/02/14(木) 22:51:37.48ID:8Eclc9m3 powershellの標準出力やエラー出力を、自分で作成したフォームのTextBoxにリダイレクトできないでしょうか?
C#単体ではできたのですが、powershellの出力の仕組みがよくわからないので。
C#のConsole.SetOutやConsole.SetError相当のがないものかと。
C#単体ではできたのですが、powershellの出力の仕組みがよくわからないので。
C#のConsole.SetOutやConsole.SetError相当のがないものかと。
573デフォルトの名無しさん
2019/02/14(木) 23:42:44.14ID:CDGUBW/T >>572
Powershellから.Net Frameworkを利用できることは解ってる?
Powershellから.Net Frameworkを利用できることは解ってる?
574デフォルトの名無しさん
2019/02/15(金) 20:32:06.22ID:VV8Lu8eJ575デフォルトの名無しさん
2019/02/15(金) 22:37:05.29ID:JVFXEcJ1 >>573
既にpowershellスクリプト内のC#で出力用フォームを作っていて、
シェル上から
[System.Console]::WriteLine("hello from System.Console")
でフォームへの出力までは確認できてるのですが、
"hello from Write-Host" | Write-Host
とかのpowershellのパイプラインと結びつける方法が判りません。
という状態です
既にpowershellスクリプト内のC#で出力用フォームを作っていて、
シェル上から
[System.Console]::WriteLine("hello from System.Console")
でフォームへの出力までは確認できてるのですが、
"hello from Write-Host" | Write-Host
とかのpowershellのパイプラインと結びつける方法が判りません。
という状態です
576デフォルトの名無しさん
2019/02/15(金) 23:35:43.92ID:BkaZ3+61 Ruby で、1-liner のフィルタ。
ファイル名を大文字で表示する
ls | ruby -lne 'print $_.upcase'
ARGF を1行ずつ読み込んで、変数$_ に格納する。
ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル
ruby -lne 'print $_.upcase' a.txt b.txt
sed -n, awk をエミュレートしたもの
ファイル名を大文字で表示する
ls | ruby -lne 'print $_.upcase'
ARGF を1行ずつ読み込んで、変数$_ に格納する。
ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル
ruby -lne 'print $_.upcase' a.txt b.txt
sed -n, awk をエミュレートしたもの
577デフォルトの名無しさん
2019/02/15(金) 23:54:24.30ID:I8iEDAq8 sed、awkでいいな。
わざわざ100倍遅くする必要はない。
そして死ね。
わざわざ100倍遅くする必要はない。
そして死ね。
578デフォルトの名無しさん
2019/02/15(金) 23:55:34.76ID:Y7lTk+zi >>572
C#単体ではどうやって実現したの?
C#単体ではどうやって実現したの?
579デフォルトの名無しさん
2019/02/16(土) 12:36:04.55ID:td/FtdQ5580デフォルトの名無しさん
2019/02/17(日) 16:02:03.17ID:jxo9FooS powershellのソース読むとOut関係はそんなインターフェースが無いっぽいのが判ったので
全部%{[System.Console]::WriteLine($_)}に通すことにしました
全部%{[System.Console]::WriteLine($_)}に通すことにしました
581デフォルトの名無しさん
2019/02/19(火) 01:05:58.24ID:rqZOBHxw (494,500,"`nズン"),(523,300,"ズ"),(494,250,"ン"),(330,600,"ズン"),(330,250,"ド"),(330,250,"コ")|
%{write-host "`nズン♪";Add-Type -a System.speech;$s=[Speech.Synthesis.SpeechSynthesizer]::new();$s.rate=1;[Console]::Beep(330,500);sleep -m:600}{
write-host -n -f:(10..15|random) "$($_[2])♪";[console]::Beep($_[0],$_[1])}{
write-host -f:(10..15|random) "`n`nキヨシ!!`n";$s.Speak("きいっよおっしぃ いいいっ!");$s.Dispose()}
%{write-host "`nズン♪";Add-Type -a System.speech;$s=[Speech.Synthesis.SpeechSynthesizer]::new();$s.rate=1;[Console]::Beep(330,500);sleep -m:600}{
write-host -n -f:(10..15|random) "$($_[2])♪";[console]::Beep($_[0],$_[1])}{
write-host -f:(10..15|random) "`n`nキヨシ!!`n";$s.Speak("きいっよおっしぃ いいいっ!");$s.Dispose()}
582デフォルトの名無しさん
2019/02/19(火) 11:18:15.41ID:jsQqlcaV >>581
それ、しゃべるの?うちの環境では喋らなかった。
それ、しゃべるの?うちの環境では喋らなかった。
584デフォルトの名無しさん
2019/02/19(火) 14:42:09.09ID:cO5Algvr https://dev.classmethod.jp/server-side/problem-about-awspowershell-netcore-not-autoloaded/
> 4000以上のコマンドをエクスポートしているとPowerShell Galleryでの公開がリジェクトされてしまう
> 4000以上のコマンドをエクスポートしているとPowerShell Galleryでの公開がリジェクトされてしまう
585デフォルトの名無しさん
2019/02/19(火) 15:26:18.95ID:xz+0XgYy 似たようなのは、VSCodeでもあるね。
たとえば、C#のコンソールモジュール作ろうとして
dotnet new console -o xxx とやると
dotnet-new はありませんみたいな
たとえば、C#のコンソールモジュール作ろうとして
dotnet new console -o xxx とやると
dotnet-new はありませんみたいな
586デフォルトの名無しさん
2019/02/20(水) 14:59:45.45ID:MrRFAFnZ v6.1.3 Release of PowerShell Core
https://github.com/PowerShell/PowerShell/releases/tag/v6.1.3
https://github.com/PowerShell/PowerShell/releases/tag/v6.1.3
587デフォルトの名無しさん
2019/02/23(土) 20:34:37.39ID:K6odEV0u WindowsでしかPS使わないんだけど
早めにWindowsPS5.1から、PS6.1に移行した方がいい?
5.1で作ったスクリプトとか、そのままだと6.1でほぼ動かないよね。
5.1でゴリゴリ作って資産を溜め込むと将来的に困った事になるのかな。
でも、6.1はドキュメントが整備されてなくて、調べるのが辛い。
早めにWindowsPS5.1から、PS6.1に移行した方がいい?
5.1で作ったスクリプトとか、そのままだと6.1でほぼ動かないよね。
5.1でゴリゴリ作って資産を溜め込むと将来的に困った事になるのかな。
でも、6.1はドキュメントが整備されてなくて、調べるのが辛い。
588デフォルトの名無しさん
2019/02/23(土) 21:00:34.25ID:mBphVd+l OSに標準搭載されるならともかく今は現状維持で良いんでない
スクリプトが軒並み動かんような破壊的な変更では無かったと思うけど
スクリプトが軒並み動かんような破壊的な変更では無かったと思うけど
589デフォルトの名無しさん
2019/02/23(土) 21:10:17.16ID:K6odEV0u .net flamework呼び出すスクリプトが多くて
ここをCoreに置き換えないといけないんだよね?
そこが上手くいけるのかなって。
PS自体の互換性は割と大丈夫っぽいんだけど。
ここをCoreに置き換えないといけないんだよね?
そこが上手くいけるのかなって。
PS自体の互換性は割と大丈夫っぽいんだけど。
590デフォルトの名無しさん
2019/02/23(土) 21:26:32.03ID:U8qcMvKV .NET Coreの範囲だったらいいけど、.NET Frameworkと比べるとすごく狭そうだからなあ
591デフォルトの名無しさん
2019/02/23(土) 21:41:56.40ID:QCtZNWil >>590
そんなにかわらんやろ
そんなにかわらんやろ
592デフォルトの名無しさん
2019/02/23(土) 22:07:09.64ID:U8qcMvKV でもCoreには、Windows formsとWPFが無いよ
593デフォルトの名無しさん
2019/02/23(土) 22:20:27.28ID:U8qcMvKV 悪い、俺の知識が古かった
Core 3.0ではサポートされるんだな
Core 3.0ではサポートされるんだな
594デフォルトの名無しさん
2019/02/23(土) 22:42:29.56ID:3sqzQkTc 3.0はdnSpyとか既に導入しているアプリもちょくちょく見るね
SCDにできるのが野良配布の開発者には良さげ
SCDにできるのが野良配布の開発者には良さげ
595デフォルトの名無しさん
2019/02/24(日) 05:23:00.00ID:EIdikGBL >>587
ほぼ問題なく動いてるよ
ほぼ問題なく動いてるよ
596デフォルトの名無しさん
2019/02/24(日) 15:29:42.14ID:aT0Lsbsv597デフォルトの名無しさん
2019/02/24(日) 16:23:30.62ID:njB6xu8t OSチームが謎のps推ししてるんだからそう動作が変わるとも思えない(全く信用はしてないが)
598デフォルトの名無しさん
2019/02/24(日) 21:05:12.28ID:JgPRA9Sg 分からない所があるなら、まずは公式ドキュメントを読めよ
PowerShell Core 6.0 の重要な変更
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/breaking-changes-ps6
PowerShell Core 6.1 の新機能 - 破壊的変更
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-core-61#breaking-changes
PowerShell Core 6.0 の重要な変更
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/breaking-changes-ps6
PowerShell Core 6.1 の新機能 - 破壊的変更
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-core-61#breaking-changes
599デフォルトの名無しさん
2019/02/24(日) 21:25:21.67ID:njB6xu8t encoding以外ほぼどうでもいい内容だな
600デフォルトの名無しさん
2019/02/25(月) 06:14:15.76ID:WiC9+kGP601デフォルトの名無しさん
2019/02/25(月) 17:25:12.02ID:PrYchFgA System.Windows.FormsみたいなWindows固有のGUI系はサポートされない。
今のところこれで困ってる。
Core3.0でサポートされるから、将来的には大丈夫なんだろうか。
今のところこれで困ってる。
Core3.0でサポートされるから、将来的には大丈夫なんだろうか。
2019/02/26(火) 08:07:40.70ID:OWiOsoxx
Windowsサーバのディスク断片化を検知するPowerShell
603デフォルトの名無しさん
2019/02/26(火) 08:18:02.82ID:OWiOsoxx 誰か教えて下さい
断片化を検知するパワーシェル
一定の断片化でデフラグするパワーシェル
断片化を検知するパワーシェル
一定の断片化でデフラグするパワーシェル
604デフォルトの名無しさん
2019/02/26(火) 09:02:46.40ID:dRkGmNcH >>603
しつこい
しつこい
605デフォルトの名無しさん
2019/02/26(火) 12:06:29.45ID:DYKZ90LU >>603
とうとうこっちに来たのか…、要件をまとめられない限り、お前さんに仕事は無理、勿論回答も無理。丸投げなどもっての他、はよ仕事降りて病院行け
とうとうこっちに来たのか…、要件をまとめられない限り、お前さんに仕事は無理、勿論回答も無理。丸投げなどもっての他、はよ仕事降りて病院行け
606デフォルトの名無しさん
2019/02/26(火) 12:13:41.62ID:DYKZ90LU こいつはWindows板のスレに2/12に登場し、周りから色々アドバイス貰っても、壊れたレコードのように「わかりません、教えてください」を繰り返し「もう来ませんさようなら」と言っては再び現れる
https://mevius.5ch.net/test/read.cgi/win/1474175184/373-
https://mevius.5ch.net/test/read.cgi/win/1474175184/373-
607デフォルトの名無しさん
2019/02/26(火) 12:24:30.73ID:W0wJxBNy >>606
なんだそりゃワロタwwwww
なんだそりゃワロタwwwww
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 ★2 [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 高市首相「多様なコメの増産を進める」 方針転換への懸念払拭狙いか ★2 [どどん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 初めて顔パックしたけど凄いなこれ
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- 胃腸弱い奴は社会的弱者←ガチ
- 【🏡】岩手ビックウェーブ🏄うおおおおおおおおおおお🌊
- 千晴の住所教えてよ!
