1 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 06:30:02.67 ID:pZYy6q7Y.net] 前スレ 【最強CUI】PowerShell -Part 1 echo.2ch.net/test/read.cgi/tech/1378978504/
231 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 16:48:34.81 ID:xf4P4t8V.net] 好みや流儀より、単純にパイプの方がメンテナンス性が優れてるよ >>214 は実際やってみると小数点以下の羅列の後に"MB"が付いて見苦しくなる でもパイプなら一部の修正だけですむ %{"$($_)MB"} を %{"{0:.00}MB" -f $_} とか、 四捨五入して %{[math]::Floor($_+0.5)} | %{"$($_)MB"} とか 214の上でこれやろうとするとカッコばかりで暗号のようになる
232 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 16:52:13.45 ID:xf4P4t8V.net] >>220 それはまたちょっと違う問題だね その場合はこうやって強制的に配列にしろと教えられたよ $txt = @(ls *.txt)
233 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 17:52:19.40 ID:/WbeABcG.net] パイプの方がPowerShellらしいコードだと思う
234 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 18:25:18.43 ID:Dx5GkAI7.net] >>223 俺もそう思う とにかくパイプで処理を繋げていくのが
235 名前:PowerShell流 [] [ここ壊れてます]
236 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 18:47:27.63 ID:veHAq/rO.net] >>222 配列かスカラーか返される物が状況によって変わる気持ち悪さは昔からあちこちで散々言われてるね
237 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 19:38:02.86 ID:LnmC5B+P.net] >>221 暗号ねぇ w Write-Host ("{0:0.00}MB" -f (gps chrome | Measure-Object PM -sum).sum / 1mb)) ちなみに書式変換時は元々四捨五入なのでFloorとかは要らんよ
238 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 19:41:50.81 ID:LnmC5B+P.net] >>225 配列を便利に扱えるようにしてるのはわかるけどちょっとやり過ぎかな -eq 演算子なんてトラップ以外の何者でもないだろ あと全然関係ないけど -isnull 演算子が欲しい
239 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 19:46:51.80 ID:xf4P4t8V.net] >>226 [int]だけで四捨五入になるのは知ってるけど、分かりやすくした 暗号は言い過ぎたかもしれんが、そんなん書くより一度変数に入れたくならんか?w
240 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 19:55:36.34 ID:xf4P4t8V.net] >>226 つか、カッコ一つ足らないw あんた自身混乱してるわ
241 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 20:10:17.94 ID:LnmC5B+P.net] >>228 > そんなん書くより一度変数に入れたくならんか?w この程度でなるか? って話 程度は人によって違うからまあ好きにしなよ >>229 スマホから書き込んでるから細かいところは目を瞑ってくれ
242 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 21:53:40.19 ID:VOmW1luq.net] 課長 「SumをMBで出してくれ」 A君 "{0:0.00}MB" -f ((gps chrome | Measure-Object PM -sum).sum / 1mb) B君 gps chrome | Measure-Object PM -sum | %{[String]::format("{0:0.00}MB", $_.sum/1mb)} 課長 「すばらしい! じゃあついでにMax値とMin値もMBで出してちょうだい」 A君 「ぐぬぬ・・・」 B君 gps chrome | Measure-Object PM -sum -Maximum -Minimum | %{[String]::format("Sum: {0:0.00}MB`nMax: {1:0.00}MB`nMin: {2:0.00}MB", ($_.sum, $_.maximum, $_.minimum | %{$_/1mb}) )} 明美 「きゃーB君ステキ ブッチュー」
243 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 23:08:02.45 ID:VOmW1luq.net] C君 gps chrome | Measure-Object PM -sum -Maximum -Minimum | %{$_.sum, $_.maximum, $_.minimum | %{$_/1mb}} | %{"{0:0.00}MB" -f $_} 明美 「キャー 抱いてぇー」
244 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 00:28:12.53 ID:6XCllBcj.net] 自分ならこうするかな 一行で書かなきゃいけないルールでもあるのか、その会社は gps vivaldi | Measure-Object PM -sum -Maximum -Minimum| %{ foreach($i in 'Sum','Maximum','Minimum'){ "{0}: {1:0.00}MB" -f $i.Substring(0,3),($_.$i/1mb) } }
245 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 06:39:07.15 ID:G39ZUl5R.net] 課長 「きゃーステキー ブッチュー」
246 名前:デフォルトの名無しさん mailto:sage [2017/08/11(金) 16:26:51.20 ID:99wg1jHM.net] >>231 課長「ああ、あと個数もお願いね」
247 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 11:23:55.65 ID:i2h5TtLX.net] 多少は実用的なやつを。サブスレッドも合計してメモリ食ってるアプリのトップ3 Get-Process|Group Name|%{$_|Add-Member Length ($_.group|measure PM -Sum|%{$_.sum}) -PassThru}| sort length -Descending|select -First 3|%{'{0}: {1:#,0.}MB'-f $_.name,($_.length/1mb)}
248 名前:デフォルトの名無しさん mailto:sage [2017/08/16(水) 20:21:19.54 ID:TEzkLuqt.net] 初心者ですが質問です ISEでデバックした時とスクリプトで実行した時で GUI?の見た目が違うのですが(スクリプト実行だとGUIが古い感じ) デバックしてる時と同じGUIにするにはどうすれば良いのでしょうか?
249 名前:デフォルトの名無しさん [2017/08/16(水) 20:46:46.65 ID:qxnt2v0K.net] >>237 デバッグね
250 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 16:38:06.37 ID:+qRmeWmG.net] 「マイクロソフト社製の基本ソフトを使うパソコン に搭載されたシステム管理機能パワーシェル(PS)を操る(中略) ファイルレス攻撃は、実行形式でないLN
251 名前:Kなど別の拡張子のファイルが添付されている。 ウイルスの本体ではないため、単体では情報収集などの目的を果たせないが、 PSに命令する不正プログラムが含まれている(中略) ウイルスを勝手にダウンロード(中略) 自分の存在を隠す」 「ファイルレス」見えないサイバー攻撃急増 政府・金融機関など標的(1/3ページ) - 産経ニュース http://www.sankei.com/affairs/news/170820/afr1708200002-n1.html 2017.8.20 06:38 [] [ここ壊れてます]
252 名前:デフォルトの名無しさん [2017/09/05(火) 17:17:36.30 ID:NCuJt1Zi.net] >>237 スクリプトで実行って関連付けで実行ってこと? ISEとはUIが別ものだと思うけど
253 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 17:21:04.29 ID:NCuJt1Zi.net] >>237 ISEに関連付けするってことかな おもすぎるしやったことないけど
254 名前:237 mailto:sage [2017/09/08(金) 18:15:40.23 ID:fHkqyhXS.net] >>240 レスありがとうございます https://letspowershell.blogspot.jp/2015/07/powershell_9.html こちらのブログで質問させて頂きまして無事解決しました [System.Windows.Forms.Application]::EnableVisualStyles(); を追加して無事デバッグと同じフォームになりました
255 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 18:46:32.46 ID:v1oxBnRc.net] 質問です set-location でパスを入力する時、日本語が含まれていると文字化けしてしまい 「Set-Location : パス 'C:\Users\nashi\Desktop\SHO\PDF 繧「繝励Μ' が存在しないため検出できません。」 と言われてしまいます。 バッチファイル?からではなく、powershellに直接入力した時は起こらないのですが どうしても回避する方法がわかりません。 どなたか分からないでしょうか。
256 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 09:51:54.02 ID:JyXabSQN.net] ファイルのエンコードじゃね
257 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 02:33:38.64 ID:L3khK+9u.net] 画面のスナップショットをF9キー辺りに割り当てて、 キーを押す度に連番ファイルとして保存したいんだけど powershellで簡単にできたりする?
258 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 13:06:48.18 ID:HosRocIl.net] >>245 > 画面のスナップショットをF9キー辺りに割り当てて、 PowerShellを呼び出すバッチファイルを書いてショートカットで呼び出すように設定 https://s.news.mynavi.jp/articles/2011/01/25/memo/002.html > キーを押す度に連番ファイルとして保存したいんだけど https://stackoverflow.com/questions/2969321/how-can-i-do-a-screen-capture-in-windows-powershell
259 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 17:51:50.69 ID:L3khK+9u.net] ありがとうございます。無事完成しました。
260 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 15:36:12.56 ID:aT/bMCXY.net] ps1ファイルの関連付けとか弄らずに、ダブルクリックで実行させたい場合って wscriptのrunとかから呼ぶのが一般的ですか?(ファイルが2つになってしまう感じですか?)
261 名前:デフォルトの名無しさん [2017/10/09(月) 18:30:22.51 ID:lHNYO6zv.net] >>248 バッチファイルの存在を無視ですか?
262 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 18:32:07.85 ID:aT/bMCXY.net] >>249 コンソール窓が一瞬出るのが嫌なのでwscriptから呼んでます
263 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 19:54:07.67 ID:nfbSpXzR.net] >>248 ExecutionPolicyも指定してラップできるから便利だね ShellExecuteでrunas指定すれば管理権限で実行もできるし
264 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 20:38:58.18 ID:pi4w3jwR.net] powershell.exeショートカットにオプション直書きで十分
265 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 21:06:20.91 ID:TUH4S8FX.net] PSをダブルクリックで実行できれば便利だが つねにそれが良いとは限らない 書きかけのバッチをうっかり実行して データやマシンがおかしくなる場合もありえる
266 名前:デフォルトの名無しさん [2017/10/10(火) 10:39:
] [ここ壊れてます]
267 名前:20.69 ID:Lm1TOsWr.net mailto: >>253 そんなレベルの人は他のことをしていてください。 [] [ここ壊れてます]
268 名前:デフォルトの名無しさん [2017/10/10(火) 10:40:53.91 ID:Lm1TOsWr.net] だいたい間違って実行してしまわないようにクリックで実行できないようになっているというのに。
269 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 12:17:00.45 ID:FT16hdt/.net] batもWSHもできるのにps1だけ対応しない理由はなんだろね ポリシーなんてどうとでもなるのに
270 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 17:50:27.32 ID:O+aWn4bz.net] >>252 ショートカットって記述的じゃないから嫌なんだよね ショートカット作っても2ファイルだし、 それなら初めからwscriptから起動するよ
271 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 17:52:15.08 ID:O+aWn4bz.net] 記述的じゃないってのはちと違うか。 テキストベースで完結しないって意味ね
272 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 18:09:29.72 ID:ACpNi8fa.net] >>254 いろんな事態を想定できない方がレベルが低いよ >>256 普通のプログラミング言語のソースは 直接実行できないでしょ >>257 記述的というならコマンドラインは記述的で良い
273 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 20:30:07.68 ID:+oAYtlnk.net] 今のところ右クリック→実行してもらうのが安全性からも利便性からもバランスが良い
274 名前:デフォルトの名無しさん [2017/10/11(水) 23:32:55.89 ID:rnTDWqK2.net] Powershellのスクリプトは部品だからどっかから呼ぶのでいいんだよ 単体起動するようなもんじゃないね
275 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 01:44:18.85 ID:bkFDlrr0.net] >>259 たぶん、右クリックで表示される「Powershellで実行」という項目を見ないで 電話してくれるユーザーへの対応の話だと思う ダブルクリックしたらなんか開いたふざけんな、実行しない、バグだ、と内線で……
276 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 01:46:34.74 ID:bkFDlrr0.net] とりあえず関数切ったら引数に , つけるのか付けないのかは統一してほしい気分…… たまに間違う(function定義のほうだと , いるやん) まぁbashとかでも似たようなもんで、俺の練度の問題かも知らんが
277 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 03:29:50.53 ID:BE/Y4M/4.net] ダブルクリックだけで実行されて、システムが故障したら、 損害賠償しなければならない そもそも、ダブルクリックだけで、スクリプトが実行されたら、 極めて危険だから、納品の基準を満たしていないし、損害賠償が確実
278 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 12:35:03.43 ID:4QKX7vcz.net] 実行して危険なモノならpsじゃなくても確認手段ぐらいその中に入れとくでしょ 前提がおかしいと思う
279 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 12:41:05.39 ID:C4JHmerz.net] >>265 クスクス
280 名前:デフォルトの名無しさん [2017/10/12(木) 20:14:39.20 ID:rmq6lCFL.net] クリックで誤って実行してしまう点がよくないとマイクロソフトも思ったからクリックで実行できないようにさてるんだけどな。
281 名前:デフォルトの名無しさん mailto:sage [2017/10/13(金) 20:09:44.69 ID:ESvMC/no.net] exeにすればいいじゃない
282 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 11:25:59.45 ID:fPe3kbbb.net] 負荷テストのために下記コードを書いて見ましたがこれって音は全部鳴ってるのかな? # 下記サイトより効果音をお借りしました。 # maoudamashii.jokersounds.com/archives/se_maoudamashii_explosion06.html # d:\indexフォルダは好きなように変更してください。 $loopcont = 128 $list = New-Object 'System.Collections.Generic.List[System.Media.SoundPlayer]' for ($i=0; $i -lt $loopcont; $i++){ $a = New-Object Media.SoundPlayer("d:\Index\se_maoudamashii_explosion06.wav") $list.Add($a) #$list[$i] = New-Object Media.SoundPlayer("d:\Index\se_maoudamashii_explosion06.wav") Write-Output "サウンド $i を追加しました。" } for ($i=0; $i -lt $loopcont; $i++){ $list[$i].PlayLooping() Write-Output "サウンド $i を再生しました。" Start-Sleep -m 10 } Start-Sleep -s 15 for ($i=0; $i -lt $loopcont; $i++){ $list[$i].Stop() Write-Output "サウンド $i を停止しました。" } Start-Sleep -s 5
283 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 22:48:35.59 ID:s7qcbuWd.net] つんぼなの?
284 名前:デフォルトの名無しさん [2017/11/16(木) 20:52:41.22 ID:T0n72mO9.net] 初心者ですが教えてください WIN32APIの GetFileInformationByHandle をPSから呼ぶにはどうしたら良いですか やりたいことはハードリンクを考慮したディスク使用量計算です
285 名前:デフォルトの名無しさん [2017/11/16(木) 21:08:55.48 ID:T0n72mO9.net] https://technet.microsoft.com/ja-jp/sysinternals/du.aspx これ使ったら普通にできたわ 邪魔したな まあPSはクソってことで
286 名前:デフォルトの名無しさん [2017/11/16(木) 23:31:42.00 ID:KchxuJsd.net] 余計な一言いらんだろ
287 名前:デフォルトの名無しさん [2017/11/18(土) 16:11:21.34 ID:cmYM+INK.net] 的外れなちゃちゃ入れる人はどこにもいるもんですよ
288 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 22:34:01.07 ID:k+S65OIc.net] powershellでお手軽にwebapi実装するツールって無いか? C# AspNet WebApiで作るほどの物じゃない 短期間の使い捨てのちょっとしたローカルサービス リクエスト受けたらurlにマッピングされたps1ファイルを実行するとかで十分なんだけど
289 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 22:46:21.76 ID:9s0hJyul.net] >>275 ASP.NET Coreならめちゃめちゃお手軽だと思うけど
290 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 20:58:28.53 ID:ZeopdAwf.net] Windows 10 Fall Creators Update になってから $PSHOMEのpowershell.exe.configの編集ができないみたいだがどうすりゃいいの
291 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:13:41.61 ID:qWY4CdFg.net] powershell.exe.configの所有がTrustedInstallerだから管理者でも編集できない なんでそんなことになった
292 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 01:09:23.97 ID:Vs3lXU98.net] 所有者変えればいいんじゃないの
293 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 01:08:50.05 ID:h/71yGJi.net] レジストリに書く環境変数設定 setx 変数 値 は問題ないが消す時の setx 変数 "" がなぜか設定できない やり方あるの? もちろんコマンドプロンプトからはできる
294 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 01:14:34.23 ID:h/71yGJi.net] ありゃcmdからsetx 変数 ""やっても消えとらんな まあpowershell関係ないからいいや
295 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 04:59:46.55 ID:ewNY+pJH.net] "a[1-5]"とかでa1〜a5がヒットするどうでもいい機能のせいで 無駄に面倒くさくなったのどう考えても失敗だわ 角括弧なんてパスで割りと使う文字なのに
296 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:49:10.30 ID:SxcWahjo.net] c#書ける機能がまだよく分からない
297 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 15:17:36.20 ID:5u0blHAo.net] >>283 お前の日本語がわからない
298 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 20:07:25.73 ID:2CgBQVZt.net] C#で作ったコンソールアプリのexeをクリックしたらコマンドプロントが開くけど 代わりにpowershellで開けないの?
299 名前:デフォルトの名無しさん [2018/01/02(火) 22:13:36.96 ID:cpIk9AtY.net] 単純にcmdプロンプトのウインドウを開きたいだけでいいなら star cmd
300 名前:デフォルトの名無しさん [2018/01/02(火) 22:14:25.04 ID:cpIk9AtY.net] タイプミスしちゃった start cmd
301 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:29:34.02 ID:4AlqWi6E.net] >>286 質問の意味わかってる?
302 名前:デフォルトの名無しさん [2018/01/02(火) 22:36:39.85 ID:cpIk9AtY.net] コマンドプロンプトを開きたいとしか読めない。 質問を見ると、コマンドプロンプトを出さないようにしたいという 意味にはなってないし。 なんなんでし
303 名前:蛛H [] [ここ壊れてます]
304 名前:デフォルトの名無しさん [2018/01/02(火) 22:39:26.99 ID:cpIk9AtY.net] ああごめん、わかった。 単にexeを実行したいってことね。 start xxx.exe これでいいんじゃない?
305 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:58:55.67 ID:jMJmiv3g.net] と、おだやかなお正月風景がすすんでいます
306 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 23:54:42.16 ID:BiuuD5uo.net] >>285 C#アプリ側でpowershell上で実行するように変更するか、スクリプトなりショートカットファイルなり使ってpowershell経由で呼べば良いんじゃないかな? 例えばショートカットのリンク先に powershell.exe -noexit C#アプリ.exe とか。 ※powershellのフルパスは自動的に補完されると思うけど、C#アプリはフルパスで記入した方が良いよ。
307 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 01:24:47.80 ID:E10k9nmq.net] >>285 C#とかのコンソールアプリは別にcmdが裏で動いてたりするわけじゃないよ powershellも色が付いた単なるコンソールアプリだよ
308 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 04:11:38.95 ID:LyakWDNT.net] そのアプリの中で、cmd というコマンドを使っていれば、コマンドプロンプト、 powershell というコマンドを使っていれば、PowerShell が起動する コマンドプロンプトで、powershell と打てば、PowerShell に、 PowerShell で、cmd と打てば、コマンドプロンプトが起動する
309 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 07:28:44.92 ID:r/sVYD0y.net] いわゆるDOS窓はConsoleAPIを使って生成していて それに対してstdin/outで読み書きしてれば 自作のコンソールアプリ,cmd,powershell等のコンソールアプリ間で相互に呼び出して繋げられるようになっている Console Functions - Windows Console | Microsoft Docs https://docs.microsoft.com/en-us/windows/console/console-functions
310 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 19:31:12.74 ID:53E7Fk1q.net] c#のcsi.exeで実行するスクリプトってすごい便利だな知らんかったこれ
311 名前:デフォルトの名無しさん [2018/01/05(金) 11:06:17.33 ID:zx9cp28q.net] たしかにC#のスクリプトはお手軽さはないがなんでもできるんだよなあ ちょっと手のこんだことだとC#のほうが楽
312 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 11:13:19.30 ID:zx9cp28q.net] inputboxはC#にないからpowershellからのほうが楽なのねなるほど
313 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 14:42:36.77 ID:m3Niw8wH.net] >>298 これはC#から使えないの? Interaction.InputBox メソッド https://msdn.microsoft.com/ja-jp/library/microsoft.visualbasic.interaction.inputbox(v=vs.85).aspx
314 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 12:35:04.57 ID:nVtZlcUN.net] itsukara.hateblo.jp/entry/2017/04/02/213525 すごいねこれ。GUIはwpfのほうがええんかな
315 名前:デフォルトの名無しさん [2018/01/07(日) 00:05:50.77 ID:X0qXwTa7.net] >>300 今後の問題ってのがWPFにもFormにもあるけど、 わたしゃ、DesktopではPowerShell+WPFでガンガン 作ってますよ。 xamlで書いて。
316 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 03:02:58.55 ID:69Y93T5M.net] PowerShell+WPFなめてたけど おもったより簡単に書けるな だがPoserShell窓消せないのでC#でexeにしたほうがいいっぽい
317 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 09:19:25.79 ID:4EiQrQ8s.net] >>302 WSHでラップすれば一応消せるで
318 名前:デフォルトの名無しさん [2018/01/10(水) 00:29:43.87 ID:NjZf1Ty6.net] >>302 スゲー便利よ。WPF表示関数化してる。 VSでデザインした時も、デザイナーのオブジェクトのNameをそのまま PowerShellの変数で使用できるようにしちゃってるんで、すげー開発 効率高い。ちなみにその関数も20行くらいのもの。 デザインしたら、そのままPowerShellのデータとバインドして表示。
319 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 01:24:15.68 ID:SytfDmnE.net] ジャグ配列を返す関数を作ったのですが、ルートの要素が1個の時に戻り値がおかしくなります ルートの要素が2個以上の場合は起きません。どうしてででしょうか 以下再現コード function test_jag_array() { $jag = ,@(@("abc", "def", "ghi", @("jkl", "mno", "pqr", "stu"))) foreach($x in $jag) { [void]("func " + $x[0] + " " + $x[1] | Out-Host) for ($i = 3; $i -lt $x.length; $i++) { $a= $x[$i][0]; $b= $x[$i][1]; $c= $x[$i][2]; $d= $x[$i][3] [void]("func " + "a:" + $a + " b:" + $b + " c:" + $c + " d:" + $d | Out-Host) } } return $jag } $jag = test_jag_array foreach($x in $jag) { [void]("res " + $x[0] + " " + $x[1] | Out-Host) for ($i = 3; $i -lt $x.length; $i++) { $a= $x[$i][0]; $b= $x[$i][1]; $c= $x[$i][2]; $d= $x[$i][3] [void]("res " + "a:" + $a + " b:" + $b + " c:" + $c + " d:" + $d | Out-Host) } } 上の実行結果 func abc def ←期待する結果 func a:jkl b:mno c:pqr d:stu ←期待する結果 res a b ←なんじゃこれ・・・ res d e ←なんじゃこれ・・・ res g h ←なんじゃこれ・・・ res jkl mno ←なんじゃこれ・・・ res a:s b:t c:u d: ←なんじゃこれ・・・
320 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 01:34:44.31 ID:SytfDmnE.net] ↑をルート要素2で試す場合は$jagを以下に変えてください。 $jag = ,@(@("abc", "def", "ghi", @("jkl", "mno", "pqr", "stu")), ` @("abc", "def", "ghi", @("jkl", "mno", "pqr", "stu"))) 要素1を回避するコードを加えて一応この問題は解決はしてますが、バグの特定で1日潰れました。
321 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 03:42:54.09 ID:z0XvJ0+n.net] >>306 その辺の闇は以下によくまとめられてた powershellの@()の謎を解く https://qiita.com/jca02266/items/1ec920a7592a05cfd6f0 また以下記事のコメント欄でWrite-Output -NoEnumerateの例があった powershell: 2次元配列が微妙 https://qiita.com/basso414f/items/67894003a666106ca806
322 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 03:49:18.87 ID:z0XvJ0+n.net] こんな感じでいける function test_jag_array() { $jag1 = , ("abc", "def", "ghi", ("jkl", "mno", "pqr", "stu")) $jag2 = , ("abc", "def", "ghi", ("jkl", "mno", "pqr", "stu")), ("abc", "def", "ghi", ("jkl", "mno", "pqr", "stu")) $jag = $jag1 # jag1の場合 〜省略(元のまま)〜 Write-Output -NoEnumerate $jag }
323 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 05:37:21.95 ID:z0XvJ0+n.net] >>308 訂正 $jag2の右辺の最初のコンマ演算子いらないわ取り除いて これだと最初の要素がさらに配列に包まれてしまう なかなか一貫性のある書き方が難しいね
324 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 08:50:32.05 ID:DUtiDslL.net] PowerShell Core 6.0: Generally Available (GA) and Supported! https://blogs.msdn.microsoft.com/powershell/2018/01/10/powershell-core-6-0-generally-available-ga-and-supported/
325 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 00:35:51.74 ID:9OW8M9wc.net] >>307 ありがとうございます。 実装(=仕様?)が変なんですね。 VBScriptのarrayのような順序付き汎用コンテナとして使うつもりでいましたが 他の手段も考えてみます。
326 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 20:29:55.97 ID:05Vmz+vo.net] MacやLinuxでも動作する「PowerShell Core 6.0」が一般公開 - 窓の杜 https://forest.watch.impress.co.jp/docs/news/1100633.html 最強や
327 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 13:52:57.20 ID:hvH7W8Dy.net] どうせならXPにも対応して欲しいな 古いマシン再利用できるかもしれん
328 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 15:04:00.85 ID:h026DvON.net] OSSなんだからforkして自分でやればいい
329 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 22:54:52.40 ID:rBzJ4J2v.net] まずは.NET Coreのforkからだな
330 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 14:22:45.53 ID:5CcUAB6E.net] まとめ PowerShell使いにくい
331 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 15:07:18.35 ID:eJTcatAc.net] >>316 おバカ自慢は要らない