- 1 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 17:46:48.32 ID:G4IJkzod.net]
- 前スレ
【最強CUI】PowerShell -Part 2 mevius.5ch.net/test/read.cgi/tech/1480109402/
- 482 名前:デフォルトの名無しさん [2018/12/23(日) 18:29:11.84 ID:vUOt1bO/.net]
- 使ってみたが、シートが大きくなるとめちゃくちゃ遅い
う〜〜ん・・・・
- 483 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 18:59:18.04 ID:9AXglOVX.net]
- >>464
これ? https://github.com/dfinke/ImportExcel 標準でサポートしたのかと思ったわ
- 484 名前:デフォルトの名無しさん [2018/12/23(日) 19:26:10.52 ID:vUOt1bO/.net]
- >>466
入れた記憶がないんだけど・・・・それを入れたんだろうな ボケが始まったかな? そういえば、excelなしでexcelファイル生成みたいな話でそれをダウンロード していたかもしれない。ちょっと喜んだんだが、xmlベースでのこの処理は ちょっと私からすると使い物にならない。 仕方ないんでお手製の、comobject利用で行きたいと思います。
- 485 名前:デフォルトの名無しさん [2018/12/24(月) 09:16:30.66 ID:dTDa6WWm.net]
- しかし、この公開モジュールもったいない。改善すれば大変便利
他のサイトで回答したんだけど、データ大きくなければ、結構使える 次の例はexcelブック読んで、性別(列名)の男子だけ抽出して 新たなブック作成した例 (Import-Excel .\Member.xlsx).Where{$_.性別 -eq "男子"}| Export-Excel .\NewMember.xlsx これだけでも便利。自分でコマンドレット作っちゃおうかという気が ムクムクと・・・・
- 486 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 17:12:10.50 ID:X+oEGSDK.net]
- SAS : 睡眠時無呼吸症候群 (Sleep Apnea Syndrome)
- 487 名前:デフォルトの名無しさん mailto:sage [2018/12/29(土) 14:12:24.74 ID:sblaCsBM.net]
- 多次元配列$aと$bに数値要素を入れて
それらの要素を同じ要素同士で足したり引いたり掛けたりしたものを 同じ構造の多次元配列$cに入れようとしましたが、 powershellの多次元配列の作り方が分かっていないのか、どうしても1つの成分に1つの数値が入りません $a=@(@(1,2),@(3,4)) $b=@(@(7,8),@(9,10)) $c = New-Object "object[,]" 2,2 だとダメなんですかね?
- 488 名前:デフォルトの名無しさん mailto:sage [2018/12/29(土) 14:18:25.07 ID:alN1JQ5R.net]
- >同じ構造の
同じ構造じゃない ジャグ配列で検索してみてからまた来てくれ
- 489 名前:デフォルトの名無しさん [2018/12/29(土) 15:15:38.87 ID:KNALm1aR.net]
- >>470
そういう質問もいいけど 一つ上の層に行って、何をしたいかを聞いてみてもいいかもよ。 そこにもっていかなくても良い手段、あるいは適切なコマンドレットが すでに存在しているかもしれないので。 余計なお世話で失礼かなとは思ったけど。
- 490 名前:デフォルトの名無しさん mailto:sage [2018/12/29(土) 15:46:12.70 ID:/U5cTh+v.net]
- まぁこれだと「ダメです」としか返ってこないもんね
- 491 名前:デフォルトの名無しさん mailto:sage [2018/12/29(土) 17:29:03.55 ID:sblaCsBM.net]
- $a = New-Object "object[,]" 2,2
$a[0,0] = 1 $a[0,1] = 2 $a[1,0] = 3 $a[1,1] = 4 $b = New-Object "object[,]" 2,2 $b[0,0] = 7 $b[0,1] = 8 $b[1,0] = 9 $b[1,1] = 10 $c = New-Object "object[,]" 2,2 $c[0,0] = $a[0,0] + $b[0,0] $c[0,1] = $a[0,1] + $b[0,1] $c[1,0] = $a[1,0] + $b[1,0] $c[1,1] = $a[1,1] + $b[1,1] echo $c 出来ました ありがとうございました
- 492 名前:デフォルトの名無しさん mailto:sage [2018/12/29(土) 17:52:09.19 ID:sblaCsBM.net]
- $a = New-Object "object[,]" 2,2
$a[0,0] = 1.0 $a[0,1] = 2.0 $a[1,0] = 3.0 $a[1,1] = 4.0 $b = New-Object "object[,]" 2,2 $b[0,0] = 7.0 $b[0,1] = 8.0 $b[1,0] = 9.0 $b[1,1] = 10.0 $c = New-Object "object[,]" 2,2 $c[0,0] = 0.4*$a[1,0] + 0.6*$b[0,1] $c[0,1] = 1.2*$a[0,0] + 0.2*$b[1,1] $c[1,0] = 0.6*$a[0,0] + 0.8*$b[1,1] $c[1,1] = 0.3*$a[1,0] + 0.7*$b[0,1] echo $c PS [ディレクトリ] .\array3.ps1 6 3.2 8.6 6.5 こういうのも出来ました ありがとうございました 2乗とか平方根とかも入れてwhileで多数回回して時代遅れのカオス論ごっこで楽しみます
- 493 名前:デフォルトの名無しさん [2018/12/30(日) 16:51:48.83 ID:Tt0EhWYe.net]
- よかったよかった
- 494 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 02:48:07.85 ID:E3GRK6g9.net]
- Ruby の行列を使った方が良さそう
- 495 名前:デフォルトの名無しさん [2018/12/31(月) 06:10:51.81 ID:hv1/uFm+.net]
- >Ruby の行列を使った方が良さそう
わざわざRuby使うくらいならR使うでしょうに
- 496 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 10:17:55.48 ID:4o6gq25f.net]
- Get-Chlditem の -System オプションて機能してなくね? 5.1と6.1で検証した
https://docs.microsoft.com/ja-jp/powershell/module/Microsoft.PowerShell.Management/Get-ChildItem?view=powershell-6
- 497 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 10:51:50.10 ID:4o6gq25f.net]
- 使えないのでこんな風にしてる
gci -force |?{$_.Mode -match 's'}
- 498 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 13:52:03.55 ID:i7poOdM+.net]
- >>479-480
普通に機能してるけど? cmd.e xeのdir /asみたいなことを期待してるならGet-ChildItem -Force -Systemでいけるかと
- 499 名前:デフォルトの名無しさん mailto:sage [2018/12/31(月) 20:02:41.24 ID:4o6gq25f.net]
- -force ないと機能しないのか…
- 500 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 03:34:35.89 ID:ssh3fXac.net]
- Ruby の行列では、
a = Matrix[[1, 2], [3, 4]] b = Matrix[[7, 8], [9, 10]] p a + b 結果 [[8, 10], [12, 14]]
- 501 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 09:29:48.04 ID:HeFEoGOE.net]
- >>482
仕様が違うだけ Get-ChildItem の -System は単なるフィルター dir の /a オプションは -Force 相当の機能を含んでる
- 502 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 10:43:40.32 ID:ISJZg14N.net]
- Rならこんな感じになるのかな?
a <- matrix(1:4, 2, 2, byrow=T) b <- matrix(7:10, 2, 2, byrow=T) a <- a[,1] b <- b[,2] matrix(c(0.4, 0.6, 1.2, 0.3), 2, 2) * rbind(rev(a), a) + matrix(c(0.6, 0.8, 0.2, 0.7), 2, 2) * rbind(b, rev(b)) 結果をimage関数に渡してループすると綺麗にチカチカするんだろうか
- 503 名前:デフォルトの名無しさん [2019/01/01(火) 16:03:09.00 ID:T6MHXAKy.net]
- SAS/IMLだと
a={1 2,3 4}; b={7 8,9 10}; c=a+b; print c;
- 504 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 16:25:47.24 ID:BBGreIch.net]
- 行列系数値計算ならJuliaも使いやすい
a = [1 2; 3 4] b = [7 8; 9 10] print(a + b)
- 505 名前:デフォルトの名無しさん [2019/01/01(火) 16:57:52.05 ID:UIhiNbM3.net]
- はっきりしているのは、どれもめちゃ遅い
- 506 名前:デフォルトの名無しさん [2019/01/01(火) 16:59:31.69 ID:UIhiNbM3.net]
- アルゴリズムを考えたり検証したりには
便利という仕組みですね。 これはこれで価値がある。
- 507 名前:デフォルトの名無しさん mailto:sage [2019/01/02(水) 00:00:30.28 ID:uM4gOpCa.net]
- いろんな言語で書いてくれてるけど
元のソースは行列の単純な和なんて求めてないよね どうせなら元ソースのエレガントな移植が見たい
- 508 名前:デフォルトの名無しさん [2019/01/02(水) 07:11:32.67 ID:JfU1VO50.net]
- 元のソースは何らかのルールに沿ってたものなのでしょうか
- 509 名前:デフォルトの名無しさん mailto:sage [2019/01/02(水) 15:30:48.31 ID:meZPNJe
]
- [ここ壊れてます]
- 510 名前:K.net mailto: rubyガイジのフリにまんまと乗ったアホ共が悪い []
- [ここ壊れてます]
- 511 名前:デフォルトの名無しさん [2019/01/02(水) 16:52:22.21 ID:sVSsgdXZ.net]
- まあ、乗ったというより
別にRubyに求めてないし、それが目的なら もっといいものがあるよいうことを Rubyフェチの方に教えてあげただけ。 PowerShellはそこを求めたものとちゃうから。
- 512 名前:デフォルトの名無しさん mailto:sage [2019/01/02(水) 16:57:28.69 ID:PMrmWLAE.net]
- 一般人の正月:和歌を読んで批評し合う
逸般人の正月:コードを書いて批評し合う
- 513 名前:デフォルトの名無しさん mailto:sage [2019/01/02(水) 17:56:16.48 ID:Q1TcDhg4.net]
- 誤)コードを書いて批評し合う
正)コードを書いてマウントごっこ
- 514 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 09:21:05.05 ID:e4doPVb1.net]
- コードも書かずにマウントごっこするよりはマシかな
- 515 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 14:18:46.18 ID:EIDJLiBS.net]
- 出力内容に日本語(2バイト文字)が含まれているとテーブル表示の際にカラムがズレる、ってのは回避方法がないのかな。
https://i.imgur.com/qMJ9fag.png chcp 437 で英語モードに、って小細工も、Win10/srv2016 以降は出来なくなってる。 # 今気づいたが Unicode の時代に「2バイト文字」って表現は正しくないな
- 516 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 19:10:30.43 ID:9E4VKJOH.net]
- あきらめてOut-GridViewを使うとか
- 517 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 18:45:23.42 ID:EC3N2/DB.net]
- パワーシェルってカテゴリ的にはスクリプト・プログラム言語?それともWindowsのソフトウェア?
- 518 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 19:49:18.08 ID:GRXV3JJ2.net]
- どちらも
シェルと言語に同じ名前が付けられてる(後者はPowerShell Scriptと言ったりするけど)
- 519 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 20:23:14.66 ID:twi+nGjw.net]
- なるほど
バッチファイルの場合、言語がMS-DOSでソフトウェアの名前がbatって感じかな
- 520 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 20:34:38.44 ID:GRXV3JJ2.net]
- 全部ずれてる
- 521 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 20:45:30.53 ID:Ri9uFdMr.net]
- bashとシェルスクリプト
command.comとバッチスクリプト コマンドプロンプト(cmd.exe)とバッチスクリプト powershell.exeとpowershellスクリプト
- 522 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 21:11:05.43 ID:Ri9uFdMr.net]
- つかシェルとシェルスクリプト
PowershellとPowershellスクリプト が一番わかり易かったな
- 523 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 22:08:03.20 ID:twi+nGjw.net]
- むずかしい!w
- 524 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 02:01:23.48 ID:9kxsD7dR.net]
- 別の言い方としてフロントエンドがある
フロントエンドの形態としてシェル、 シェルの機能としてスクリプトの実行という感じ
- 525 名前:デフォルトの名無しさん [2019/01/09(水) 14:51:11.50 ID:teNQqIfe.net]
- PowerShellができるようになると何がいい?
- 526 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 17:40:53.83 ID:iwuLoYXa.net]
- >>507
あなたの職業、PCの使いみち次第なので、そこが明らかじゃないとなんとも言えない。
- 527 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:51:08.47 ID:nNa8IYsJ.net]
- >>507
職業で使わない前提なら、 Windowsへの追加のインストールなしにそこそこリッチなツールをスクリプト言語で作れることかな
- 528 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 21:58:57.96 ID:LPlKYmug.net]
- それな
今どきの企業はセキュリティポリシーがしっかりしていて PythonだのRubyだの入れたくてもできないからな
- 529 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 22:13:34.50 ID:WxZlp6Z9.net]
- >>507
事務職の俺が思うメリット・デメリット。 ■PowerShellに限らないプログラミングのメリット PCを使った繰り返し作業を省力化できる。例えば、 ファイルの名前変更と移動を定型で定期的にやるとか、 同じWebサイトにアクセスして毎回似たようなことをするとか、 お
- 530 名前:客さんとか他の部署から送られてくる使いづらいExcelのデータを
シンプルな表に整形するとか。 ■PowerShellならではのメリット 他の人も書いてるけど、Windowsに最初から入ってる。 スクリプトファイルを渡すだけで同僚にも使ってもらえる。 (起動用のbatファイルとか、タスクスケジューラの設定とかは必要だけど) ■デメリット 全くのプログラミング素人には難しいと思う。 初めてなら、Pythonあたりを先に勉強した方がいいかも。 「パイプラインではオブジェクトが受け渡しされる」とかいわれても 初心者には何のことか分からんと思うし(俺もいまだにしっくり来てない) 適当に解説している入門書とかWebサイトには 「retrun文の後ろの値が、関数の戻り値になります」といった、 嘘じゃないけど嘘に等しいことが書いてあって初心者は訳がわからなくなる。 俺もトライアンドエラーばかりで、きちんと習得できてないです。 [] - [ここ壊れてます]
- 531 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 22:16:39.66 ID:WxZlp6Z9.net]
- 間違えた
return文でした・・・
- 532 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 22:17:35.75 ID:nNa8IYsJ.net]
- すごいHaskell本を借りて100ページくらい読んだら、PowerShellの関数型風な書き方も割と理解できるようになった
- 533 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 22:19:11.83 ID:nNa8IYsJ.net]
- 関数型風というか勝手にOut-Defaultがつく挙動がそう見えるだけかもしれないけど
- 534 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 00:11:38.57 ID:jhx89QXs.net]
- 関数型は、Ruby, jQuery(JavaScript)。
map というメソッドを頻繁に使う PowerShell(PS)の延長線上に、Rubyがある バッチファイル → PS シェルスクリプト → Ruby バッチファイル・シェルスクリプトは、とにかく、ハマリが多い! プログラミングに適さない
- 535 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 00:25:40.33 ID:mktY/a5R.net]
- dosならまだしもwinで無理やり拡腸されたのはちょっとね・・・
- 536 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 00:28:19.57 ID:FheW454d.net]
- >>515
この人は何でいつも同じような論調でどこにでも現れるのだろうか。 やたらruby推しするわりには具体的なrubyの良さが全く伝わってこなくて、むしろマイナスイメージをばら蒔いているような気がする。
- 537 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 00:33:03.30 ID:jxmC/C32.net]
- >>516
誤字がひどい
- 538 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 04:58:55.23 ID:Pqz/qBav.net]
- >>507
batファイルが書けるよりも何が便利かという視点だと、batがひどいからずっとマシというのがある batでは初歩的な処理もできなかったり、実現までに手間を要したりする 保守性も悪い
- 539 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 05:25:45.52 ID:nf36oLbM.net]
- >>519
それを言うなら、batとvbsやJscriptを組み合わせてようやく出来てたことが、よりPowershellでは少ないコーディングで同等以上の機能を実現できる。て書こうよ
- 540 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 05:57:47.50 ID:Pqz/qBav.net]
- >>520
処理をちょっと追加・変更したくなったときにすぐほかの言語の利用や外部コマンド調達が必要になることを含めて、実現までに手間を要する、と言ったんだけどね vbs等を覚えてそちら主体で書く前提なら、別途そういう視点での比較論を語ってくれ
- 541 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 06:03:49.10 ID:nf36oLbM.net]
- MSの意図も、現実の普及や活用もvbsはbatの補間機能だよ、それらの一括後継がPowershell、そんなことを今更説明しなきゃならんとは残念至極
つかvbs覚えずにbatだけでwinの管理ワークなんかできなかったよ
- 542 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 07:54:48.12 ID:e7V
]
- [ここ壊れてます]
- 543 名前:8oUZV.net mailto: パワーシェルとrubyは似てる言語なの?
僕とかパワーシェルマスターベーションなのでruby勉強してみようかな [] - [ここ壊れてます]
- 544 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 12:28:31.19 ID:8HdqxYaB.net]
- >>517
ruby を NG してる
- 545 名前:デフォルトの名無しさん [2019/01/10(木) 17:29:11.64 ID:jhx89QXs.net]
- そりゃ、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」でも読めば?
- 546 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 17:49:28.58 ID:3kN+h5hG.net]
- インテリセンスしょぼすぎ
- 547 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 18:07:50.47 ID:vGEkHdSz.net]
- >>524
俺もそうする
- 548 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 18:08:40.70 ID:ct6DIWcV.net]
- >>525
わざわざ蕎麦好きが集まる蕎麦屋に出向いて、「うどんこそが至高の麺類。なぜなら〜」って 講釈垂れるのと同じくらいヤボだ、って気づくべき。周りは迷惑してるんですよ。
- 549 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 18:11:49.88 ID:SOl/xRps.net]
- どんどんrubyの評判を下げてるのがわからんのかねぇ
- 550 名前:525 mailto:sage [2019/01/10(木) 18:45:39.00 ID:jhx89QXs.net]
- 漏れは、PowerShell で数行書くなら、Ruby で作ってしまう
クリップボードみたいなのは、Rubyから、PowerShellコマンドを呼ぶ。 ダブルクリックで起動したい時は、VBS・bat を使う Rubyから、Node.js を呼ぶとか、すべての言語を呼び出せるかも
- 551 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 18:48:24.32 ID:ntFiGaUH.net]
- なるほどrubyじゃ何もできないってことだね
- 552 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 19:03:20.25 ID:3kN+h5hG.net]
- IronRubyってどうなったの?
- 553 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 20:51:10.85 ID:UUY7OixD.net]
- (かつて)仕様書が存在しない処理系を複製するなんてやってられなくなったんじゃないか?
- 554 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 13:22:32.56 ID:i1odpryK.net]
- powershellのメリットは対話環境とスクリプトが同一の文法て書けること
ISEやVS codeで小さなブロックの挙動を確認しながら、それらを組み合わせて一連のワークフローを構築できる 『トライ&エラーで作ってる』って方がいたけど、まさにそういったやり方が出来ることが、専門職じゃなくて日常業務の効率化に使ってる自分にとって凄く大きな利点
- 555 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 16:32:26.56 ID:mUB6pFvH.net]
- >>534
>powershellのメリットは対話環境とスクリプトが同一の文法て書けること まさに同じ利点なんだけど、TIPS集みたいな感じでテキストファイルに数行のスクリプトをいくつも集めておいて 必要になったらそこからpowershellウインドウにコピペで即実行できるのがいいね
- 556 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 17:38:40.92 ID:i1odpryK.net]
- >>535
それもあるね psreadline有効にしておけば履歴から同じようなことできるし unix系で当たり前だったことが、やっと出来るようになったともいえるけど
- 557 名前:デフォルトの名無しさん mailto:sage [2019/01/15(火) 07:41:15.21 ID:PNg+c5Yb.net]
- 文化の変化には拒絶反応があるもの
過去のシェルでつけられてきた命令等の名前付けルールを見ても、 今のようにIT文化が広がった時のが目の利用者目線でつけられたものではなく、 あくまでOS周りのシステム開発者と利用者が同一だった時代、要は試行段階の 時代につけられが規則で、今の時代に合わなくなっている。 そこに風穴開けたのは大変良いことだろう。 既存の使い方に慣れた人にとっては、新たな流れは「また覚えることが増える」 「使い方が今までと違う」ということへの拒否反応が少なからずある。 やり取りを見ていて思ったのは、すでに旧来Unix系シェルのルールにのっとって 作られてきたものがレガシーに向かっていると思いたくない、気が付かないひとが 多いこと。時代は変化してゆく。
- 558 名前:デフォルトの名無しさん mailto:sage [2019/01/16(水) 08:35:02.57 ID:8/OmqdoX.net]
- v6.1.2 Release of PowerShell Core
https://github.com/PowerShell/PowerShell/releases/tag/v6.1.2
- 559 名前:デフォルトの名無しさん [2019/01/16(水) 18:21:31.35 ID:Y6YhZRdL.net]
- >>538
あんがとさん
- 560 名前:デフォルトの名無しさん [2019/01/31(木) 21:35:30.95 ID:AeQOSKqu.net]
- &{
while($true){ (++$i) sleep -Seconds 1 } } | Out-GridView Get-Date 上を実行すると1秒ごとにカウントされた値がウインドウ表示されるけど、 ウインドウを閉じたときにそれ以降のコマンド(Get-Date)が実行されず終了するのどう回避すればいいだろう・・・?
- 561 名前:デフォルトの名無しさん [2019/01/31(木) 21:44:25.79 ID:AeQOSKqu.net]
- 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個表示されるので方法として頭悪い・・・
- 562 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 22:18:49.56 ID:xJsSt9Re.net]
- Windows では、よく知らないけど、
Linux では、プロセスに親子関係がある そして親プロセスが終了すると、子プロセスにも終了メッセージが送られて、 それに何も対処しないと、普通は子プロセスも終了する つまり、親亀こけたら子亀もこける シェルから起動したプロセスは、シェルの子プロセスになっている だからデーモン・サービスのように、親プロセスから切り離すか、 親から終了メッセージが送られても、子が終了しないような工夫をする必要がある また、パイプラインでは、ジョブという処理単位もあり、 ジョブグループにまとめられて、そのグループ全部に対して作用する
- 563 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 22:20:50.85 ID:wdHuOMr6.net]
- >>540
while($true){++$i|out-gridview;sleep -seconds 1;get-date}
- 564 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 22:33:49.84 ID:nQoHUWUF.net]
- powershell {
&{ while($true){ (++$i) sleep -Seconds 1 } } | Out-GridView } Get-Date
- 565 名前: mailto:sage [2019/01/31(木) 23:10:29.40 ID:GI5VQ7Hx.net]
- >>542
>デーモン・サービスのように、親プロセスから切り離すか これ、なんか特別なことをしましたっけ…
- 566 名前:542 mailto:sage [2019/01/31(木) 23:44:01.11 ID:xJsSt9Re.net]
- Windows では知らないけど、
Linux なら、systemd で、サービスを起動できる
- 567 名前:デフォルトの名無しさん [2019/01/31(木) 23:44:18.82 ID:AeQOSKqu.net]
- >>543
いにしえのブラクラかと・・・ >>544 一応こんな感じで、runspacepoolで実行するようにはしてみたけれど、 現実には
- 568 名前:whileの中で実行する関数とかをASTの構文解析使って渡してやる必要があって、少し手間なんですよね
Out-GridViewによるプロセス中断を制御できればなと思っていました [] - [ここ壊れてます]
- 569 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 23:57:01.76 ID:eCrLlhCC.net]
- >Windows では知らないけど、
このひとなんなん こわい
- 570 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 07:42:04.59 ID:92aZjlm0.net]
- >>545
>>542はWindowどころかLinuxもよく理解できてないみたいだからスルーするがよろし 親プロセスなんてどうでも良くてたぶん制御端末がクローズされた時にSIGHUPが送られる話と勘違いしてる
- 571 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 09:45:34.37 ID:CxyFcB/M.net]
- >>547
パッと思いつきだけで考えたけど、 Start-Job Workflow あたりを使うのはどうでしょうね(未確認)。
- 572 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 10:57:54.88 ID:Df7lr2kE.net]
- >>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
- 573 名前:デフォルトの名無しさん mailto:sage [2019/02/02(土) 21:37:38.54 ID:GDLTgOlM.net]
- もうOut-GridView側の処理は別ps1ファイルで別けて
メイン側からStart-Process に -NoNewWindow -PassThru -Wait つけて終了まで待って 終わったらメイン側の処理に戻ればいいんじゃね ISEじゃ余分に窓出ちゃうけど直起動なら窓増えないし 結果受け取りが必要なら一手間いるけど
- 574 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 05:19:27.02 ID:U6zkwiYj.net]
- https://i.imgur.com/Sd6FKGQ.jpg
型指定した変数に$nullを代入できないの?
- 575 名前:デフォルトの名無しさん [2019/02/03(日) 10:45:58.13 ID:p2YNM7CO.net]
- PS > [bool]""
False PS > [bool]$s False なので$nullではなく空白が代入されてる 代入の時点で型変換されてる?
- 576 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 11:34:45.18 ID:gZVRTEN5.net]
- psのnullはnullじゃないってどこかで記事見たな
- 577 名前:デフォルトの名無しさん [2019/02/03(日) 12:12:22.77 ID:p2YNM7CO.net]
- PS > [string]$s -eq $null
False PS > $s -eq $null True
- 578 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 12:17:47.78 ID:sBfvPdNi.net]
- 型変換が定義されてるっぽいね
- 579 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 12:58:35.28 ID:jpAIKS8U.net]
- $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 まとめ 結構嫌な感じですね。
- 580 名前:デフォルトの名無しさん [2019/02/03(日) 13:06:40.62 ID:KnacfqZI.net]
- >>553
[string]::IsNullOrEmpt
- 581 名前:y($s)
NullならTrueが返るから if([string]::IsNullOrEmpty($s)){ "ぬるだよ"} [] - [ここ壊れてます]
- 582 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 13:52:06.12 ID:fFxNo4TL.net]
- >>559
[string]::IsNullOrEmpty("") もtrueになるんだが String.IsNullOrEmpty(String) Method https://docs.microsoft.com/ja-jp/dotnet/api/system.string.isnullorempty >指定された文字列が null または空の文字列 ("") であるかどうかを示します。
|

|