PowerShell -Part 3

■ このスレッドは過去ログ倉庫に格納されています
2018/10/09(火) 17:46:48.32ID:G4IJkzod
前スレ
【最強CUI】PowerShell -Part 2
http://mevius.5ch.net/test/read.cgi/tech/1480109402/
2019/02/23(土) 21:41:56.40ID:QCtZNWil
>>590
そんなにかわらんやろ
2019/02/23(土) 22:07:09.64ID:U8qcMvKV
でもCoreには、Windows formsとWPFが無いよ
2019/02/23(土) 22:20:27.28ID:U8qcMvKV
悪い、俺の知識が古かった
Core 3.0ではサポートされるんだな
2019/02/23(土) 22:42:29.56ID:3sqzQkTc
3.0はdnSpyとか既に導入しているアプリもちょくちょく見るね
SCDにできるのが野良配布の開発者には良さげ
595デフォルトの名無しさん
垢版 |
2019/02/24(日) 05:23:00.00ID:EIdikGBL
>>587
ほぼ問題なく動いてるよ
2019/02/24(日) 15:29:42.14ID:aT0Lsbsv
>>595
ってことは、WindowsPS5.1で作っても
後々、6.xに移植するのはかなり容易ってことかな?
2019/02/24(日) 16:23:30.62ID:njB6xu8t
OSチームが謎のps推ししてるんだからそう動作が変わるとも思えない(全く信用はしてないが)
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
2019/02/24(日) 21:25:21.67ID:njB6xu8t
encoding以外ほぼどうでもいい内容だな
600デフォルトの名無しさん
垢版 |
2019/02/25(月) 06:14:15.76ID:WiC9+kGP
>>595
上で言っているエンコードと、サポートされていない画面系(Forms,WPF)以外は
特段の違いはないと思っていいと思う。
2019/02/25(月) 17:25:12.02ID:PrYchFgA
System.Windows.FormsみたいなWindows固有のGUI系はサポートされない。
今のところこれで困ってる。

Core3.0でサポートされるから、将来的には大丈夫なんだろうか。
2019/02/26(火) 08:07:40.70ID:OWiOsoxx
Windowsサーバのディスク断片化を検知するPowerShell
603デフォルトの名無しさん
垢版 |
2019/02/26(火) 08:18:02.82ID:OWiOsoxx
誰か教えて下さい
断片化を検知するパワーシェル
一定の断片化でデフラグするパワーシェル
2019/02/26(火) 09:02:46.40ID:dRkGmNcH
>>603
しつこい
2019/02/26(火) 12:06:29.45ID:DYKZ90LU
>>603
とうとうこっちに来たのか…、要件をまとめられない限り、お前さんに仕事は無理、勿論回答も無理。丸投げなどもっての他、はよ仕事降りて病院行け
2019/02/26(火) 12:13:41.62ID:DYKZ90LU
こいつはWindows板のスレに2/12に登場し、周りから色々アドバイス貰っても、壊れたレコードのように「わかりません、教えてください」を繰り返し「もう来ませんさようなら」と言っては再び現れる
https://mevius.5ch.net/test/read.cgi/win/1474175184/373-
2019/02/26(火) 12:24:30.73ID:W0wJxBNy
>>606
なんだそりゃワロタwwwww
608デフォルトの名無しさん
垢版 |
2019/02/26(火) 12:41:56.50ID:5MxkS3P7
断片化?
そんな難しいプログラムを、書けるわけないだろ

断片化を判定するようなコマンドなんて、無いだろ?

そういうのは、それ専門の会社が作っている、アプリを使う。
自作できるようなものじゃない
2019/02/26(火) 14:04:50.81ID:xyBbmsCy
Win10だと自動でデフラグするけどな。
2019/02/26(火) 14:29:41.52ID:n1GswSmU
defrag コマンドあるからできるよ
2019/02/26(火) 14:47:12.84ID:iHcW87Sg
>>603
Optimize-Volume
https://docs.microsoft.com/en-us/powershell/module/storage/optimize-volume

後は勝手にしろ
612デフォルトの名無しさん
垢版 |
2019/02/26(火) 19:16:16.83ID:OWiOsoxx
PS C:\Users\user> Optimize-Volume -DriveLetter C -Analyze -Verbose
Optimize-Volume : Access denied
Activity ID: {dcf03f92-726b-4adb-a208-4f620c23ef63}
発生場所 行:1 文字:1
+ Optimize-Volume -DriveLetter C -Analyze -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (StorageWMI:ROOT/Microsoft/...age/MSFT_Volume) [Optimize-Volume], CimE
xception
+ FullyQualifiedErrorId : StorageWMI 40001,Optimize-Volume
613デフォルトの名無しさん
垢版 |
2019/02/26(火) 19:17:18.94ID:OWiOsoxx
PS C:\Users\user> Optimize-Volume -DriveLetter C -ReTrim -Verbose
Optimize-Volume : Access denied
Activity ID: {fd9e0378-9517-49a9-874f-49fdbbafec31}
発生場所 行:1 文字:1
+ Optimize-Volume -DriveLetter C -ReTrim -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (StorageWMI:ROOT/Microsoft/...age/MSFT_Volume) [Optimize-Volume], CimE
xception
+ FullyQualifiedErrorId : StorageWMI 40001,Optimize-Volume
2019/02/26(火) 19:41:44.80ID:4qbJwUeH
これも前ググれと言われてるだろ?
"PermissionDenied"だから原因は明確、PG言語を学ぶ以前の問題
615デフォルトの名無しさん
垢版 |
2019/02/26(火) 20:11:15.34ID:OWiOsoxx
考えても分からないから寝ます
2019/02/26(火) 20:12:11.17ID:c/a6AL8h
>>606が警告してるのになんで相手するかな…
617デフォルトの名無しさん
垢版 |
2019/02/26(火) 20:20:24.56ID:OWiOsoxx
分からなくてどうしようもないから質問しているのに
要するにスクリプトの構文の意味から分かっていない
2019/02/26(火) 20:43:08.57ID:SZnduWSg
いやPSのエラーは判り難いと思うね
そもそもコマンドライン置き換えたいなら日本語で出すべき
619デフォルトの名無しさん
垢版 |
2019/02/27(水) 06:31:25.86ID:KDd7+K01
>>618
UNIX系のシェルに比べたら圧倒的にわかりやすいでしょ
620デフォルトの名無しさん
垢版 |
2019/02/27(水) 07:06:27.77ID:KDd7+K01
>>617
みてると、まるきり一切調べようとせずに
出来上がったコーディング教えろという
感じですよね

しかも、PowerShellだけでなく、使用するユーティリティーに
ついてもどちらもまるきり分らないし調べないでの質問。
2019/02/27(水) 07:58:43.59ID:9BuZTaoV
やる気なく、能力も無いと漏らしてるクセに辞退もせず、数ヶ月居座ろうという腹です。
後任に苦労かけるだけ。正常な社会人の要件まとめ能力、調査能力すら失ってるのは精神病としか思えないため、はやく病院に行けと勧めてます
2019/02/27(水) 21:51:13.40ID:KyKRLtdw
数十GBのバイナリファイルを2GB毎に分割したいのですがpowershellで効率よい方法あったら教えてください
C#コード埋め込みでも可です
2019/02/28(木) 14:47:18.94ID:jurbU8zc
>>622
GNUの split コマンドでええんちゃう?
$ split -d -b 2G src dst.

こんな感じに分割される。
dst.01
dst.02
...
dst.99

結合は、
$ cat dst.* > dst
で終わり。
2019/02/28(木) 16:39:52.64ID:bHx/l7mF
>>622
https://stackoverflow.com/questions/4533570/in-powershell-how-do-i-split-a-large-binary-file
に良さげなサンプル関数作ってくれてる奴居るよ
2019/02/28(木) 21:16:57.85ID:VwWxMUG7
ありがたごましうた
2019/02/28(木) 22:01:42.89ID:FWfO9yYH
>>620
なんか日本語ちょっとおかしいし、日本人じゃないのかもな
627デフォルトの名無しさん
垢版 |
2019/03/01(金) 00:11:45.93ID:GEdFntp5
byeとか再見とか毎回言う外国人居る??
628デフォルトの名無しさん
垢版 |
2019/03/01(金) 05:49:41.07ID:vonrkHCa
『Youは何しにPowerShellに』の撮影かな?
629デフォルトの名無しさん
垢版 |
2019/03/01(金) 15:20:53.71ID:o7q1IFCw
powershellでチャットできないですか?
2019/03/02(土) 09:51:56.69ID:iF6Iyi4r
Manage chat rooms in Persistent Chat Server in Skype for Business Server 2015
https://docs.microsoft.com/en-us/skypeforbusiness/manage/persistent-chat/chat-rooms
2019/03/02(土) 12:30:51.54ID:k1Nl7LaS
>>630
ありがとう。結局サーバー借りた方が楽ですね。
あとtermsとかも無料だし使えそう。
pcからpcってリモデス使用でできそうですね。
なかなか勉強になりますわ。
2019/03/02(土) 17:10:56.38ID:J6Ykyvz8
最近プログラムでわからないことググるとQiitaってサイトがやたら出てくるなと思ってたら
いつの間にか日本最大のプログラマーコミュニティになってたんだな
http://www.sbbit.jp/article/image/32877/l_bit201611081621450925.jpg
2019/03/21(木) 21:13:15.16ID:Kce5LZBI
>>570
業務でps1ファイルを大量に使ってるような現場だと
今後標準のテストツールとして採用するところが増えそうだね
2019/03/23(土) 14:31:45.42ID:zukmvcaU
>>632
調べ物があってググると結構な確率で Qiita でヒットするけど、
「初心者がとりあえずやってみた系」「自分だけが理解できる作業メモ系」が
大部分で、間違ってることも少なくない。
(日本語の IT 系個人ブログの大多数がそうだとも言えるが)

なので、最近はググる際のキーワードは極力英語のみにして、
海外のコンテンツから優先して探すようにしてる。
2019/03/23(土) 15:05:59.87ID:AczqyFo9
俺は最初は日本語かな
日本語なら数秒で記事全体を眺めて概要と筆者の腕前を判定できる
そこからちゃんと読むか次のサイトを見るかの見極めが楽
英語だと仮に真実を語っててもそれが期待してた内容と違う場合にそれに気付くまで少し時間がかかる
そもそも英語でも間違ってる記事は少なくない
2019/03/23(土) 18:54:02.90ID:sans/OC7
Qiitaが云々っていうより、最近のgoogleで上位に来るのはgoogleのアフリエイトが
使われているものが優先されていて、特に意図的にアフリエイトだけが目的の
コピペサイトが上位に来るので検索エンジンとして役に立たなくなってきてる

まぁ、キーワードうまく絞れば見つかることも多いし、なれと面倒くささも手伝って
google日本語2ページ、google英語2ページ、bing、duckduckgoって感じで最近は
検索してるかな
2019/03/23(土) 18:57:03.05ID:sb/buXjf
euの脅しのお陰でchromeのデフォルト検索エンジンにduckduckgo選べるようになってるなw
2019/03/23(土) 20:27:48.56ID:9w+Nt8ul
>>634
第三者の情報を利用しているのに、
コミュニティなんだから、自分で精査すればいいだけ。
その手間もおしいとか?w
2019/03/23(土) 21:48:53.64ID:PK70pzz9
>>636
マップもぶっ壊れてるしgoogle落ち目だな
2019/03/24(日) 13:06:39.33ID:0UFOFyyE
euは一体何様なんだ?
2019/03/25(月) 03:07:23.90ID:UZnjqkvB
ConvertFrom-Csv って、#で始まる行はスキップしてくれるのかな?

Get-Content .\list.txt -Encoding UTF8
url1 file1
#url2 file2
url3 file3

Get-Content .\list.txt -Encoding UTF8 | ConvertFrom-Csv -Delimiter " "
url1 file1
url3 file3

これって、ヘルプに見当たらないんだけど、何かのオプションの初期値で決まってるの?
# PSVersion 5.1.17763.316
https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/ConvertFrom-Csv?view=powershell-5.1
2019/03/25(月) 05:27:00.32ID:jHLU9O87
>>641
調べたらコメントとして処理してるわけでもなくてパイプライン入力だと#Typeとかいうよくわからない識別子の判定時に捨てられてるようだ
https://github.com/PowerShell/PowerShell/blob/master/src/Microsoft.PowerShell.Commands.Utility/commands/utility/CSVCommands.cs#L1353
なので一つの文字列として渡すと無視できる

$a = Get-Content .\list.txt -Encoding UTF8
$a -join "`n" | ConvertFrom-Csv -Delimiter " "

あとパイプラインでも改行が\nのみだと挙動が変わったりするけどバグなんじゃないのこれ
643641
垢版 |
2019/03/25(月) 15:55:58.17ID:UZnjqkvB
>>642
おー、ありがとう(*^▽^*)
確かに Raw オプションで読み込むとスキップされなかった。
Get-Content .\list.txt -Encoding UTF8 -Raw | ConvertFrom-Csv -Delimiter " "

Export-CSVがデフォルトで出力する型情報を無視するようにっていう意図なのかな?
#TYPE System.Management.Automation.PSCustomObject

"#TYPE"始まりを無視しようとして "#"始まりを無視しちゃダメな気がするけど...(´・ω・`)
2019/03/25(月) 21:10:47.02ID:E8OEO5vB
powershell謹製の定型入出力処理って大抵どっかが糞だよな
C#でさくっとコード埋め込んだ方が速い
645641
垢版 |
2019/03/26(火) 03:30:50.37ID:7kgkCpnE
>>643
あ、違うか。 >>642 の言う通り、#TYPEの判定時に捨てられちゃってるんだね。
#始まりで#TYPEだったら型情報を返すけど、そうじゃなかったらnullにしちゃってるから#始まりは(#TYPE以外)一律落ちちゃうってことか。
型情報以外の#はコメントだから落とそうという意図なのか、意図せずなのかはよくわかんないけど。
2019/03/26(火) 07:15:12.47ID:yaU1CQab
そういう場合はコメント扱いか将来の予約用として設計するケースが多いかな
癖のある部分がしっかりドキュメント化されてるといいんだけどね
2019/03/27(水) 00:37:50.64ID:Y2V1g2tl
ドキュメント化されてない糞言語機能なんて使えんわな
2019/03/29(金) 08:30:26.38ID:CjsaVqOU
General Availability of PowerShell Core 6.2
https://devblogs.microsoft.com/powershell/general-availability-of-powershell-core-6-2/
2019/03/29(金) 12:30:11.33ID:N4KkVZCo
>>648
Microsoft Update で pwsh のアップデートが提供される、ってのはいつになるのかね
2019/04/06(土) 09:01:31.22ID:d6ZNnt3i
The Next Release of PowerShell - PowerShell 7
https://devblogs.microsoft.com/powershell/the-next-release-of-powershell-powershell-7/
2019/04/06(土) 10:23:45.60ID:DpBRf5ef
>>650
Windows PowerShellとPowerShell Coreが統合されるのか
2019/04/06(土) 18:19:21.57ID:VUIBvQ2c
.NET使えたりC#埋め込めるってだけでps自体には何も魅力を感じない
2019/04/06(土) 19:36:51.47ID:YyWMpA9h
なら、こんなスレ見るのやめたら?
654デフォルトの名無しさん
垢版 |
2019/04/07(日) 07:15:21.58ID:WD9Sfyky
>>651
当初からの既定路線です
2019/04/07(日) 11:08:35.13ID:gun2agJ4
>>652
C#スクリプトでも使ってろよ

https://msdn.microsoft.com/ja-jp/magazine/mt614271.aspx
2019/04/07(日) 21:27:45.92ID:KO8gpU7g
良かった
これでわざわざコアを入れなくてもWindowsデフォルトのPSがメンテされるのかな?
本家であるWindowsデフォルトのPSを冷遇するMSに腹が立ってたんだ
2019/04/08(月) 14:15:31.94ID:flU0/mvo
オブジェクト指向(class、Add-Member)はあまり使わないのかな?
2019/04/08(月) 19:02:08.74ID:sE/xXtkV
それらを即ちオブジェクト指向ってまとめられると語弊があるけど
PowerShellでわざわざクラスをつくるメリットがあまりないんで使わないかな
C#側で作ってそれを利用するモジュールはよく見かける
PowerShellでつかうんならメソッド生やすよりパイプ入力に対応した関数を作ったほうがそれらしいから
2019/04/08(月) 21:12:55.80ID:BZrWgE85
Coreもデフォでインストールして欲しいんだが。

予定あるのかね。
2019/04/08(月) 21:33:20.59ID:GoiTTqTj
>>657
classはわかるけどオブジェクト指向とAdd-Memberになんの関係が?
2019/04/08(月) 23:22:18.02ID:zFFjnYPT
>>660
バージョン古いとAddMenberなしで振る舞い定義できんやん
2019/04/09(火) 06:55:48.14ID:WguqqX2K
>>661
ああ、そういう意味か
その時代は構造体代わりにAdd-Member使う程度だったな
class使えるようになってからは普通にオブジェクト指向って言うか他の言語と変わらん程度には使う
2019/04/09(火) 18:59:23.20ID:W7MAWXJx
標準搭載になる予定みたいね。

マイクロソフト、「PowerShell 7」を発表--5月にプレビュー版を公開へ
https://japan.zdnet.com/article/35135464/
2019/04/12(金) 09:48:45.13ID:FkqjpuHe
PowerShell Core 6.2 の新機能
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-core-62
2019/04/13(土) 11:52:50.01ID:agvTDDTm
2019年人気&嫌われプログラミング言語ランキング- Stack Overflow
https://news.mynavi.jp/article/20190412-807191/

「Bash/Shell/PowerShell」とひとくくりにされていることに激しく違和感
2019/04/13(土) 22:04:36.80ID:cCi57egk
PS単体だと空気だし
2019/04/14(日) 10:51:28.73ID:x8HUstxk
俺達のbashが空気だっていうのか!
2019/04/18(木) 08:38:59.87ID:19FvTfVH
リモートで各Windowsサーバのhostsファイルのメンテナンスをしたいのですが、いいサンプルなどはありませんでしょうか?
2019/04/18(木) 08:59:31.67ID:JGuMcupo
サンプルもクソもないだろ…hostsファイル更新は管理権限が必須、それだけの話
670デフォルトの名無しさん
垢版 |
2019/04/19(金) 07:26:06.94ID:gmGy9oTC
ls -name | ruby -ne 'puts $_.center(20, "-")'

これは、Linux では問題ないけど、
Windows のPowerShell で実行すると、Ruby の文法エラーになる

これで、ダブルクォーテーションをエスケープすると、正常に動く。
\"-\"

どういう事?
" は、Rubyに渡る際に、何かに変換されてしまうのか?

エスケープしない書き方は、出来ますか?
671670
垢版 |
2019/04/19(金) 07:41:35.36ID:gmGy9oTC
自己解決した!

ls -name | ruby -ne 'puts $_.center(20, "-")'

"-" の部分を、Ruby の% 記法で囲んで、%Q("-") としたら正常に動いた

%Q で、ダブルクォーテーションをエスケープできる。
\"-\"

ただし、Linux では囲んではいけない
2019/04/19(金) 08:20:04.25ID:pitW5bfl
朝からrubyガイジ登場か
2019/04/19(金) 23:14:36.12ID:XlmULy2Z
PS起動が重すぎてとうとうクレームが来た
674497
垢版 |
2019/04/20(土) 15:08:25.44ID:59Xq7wbj
Win10_1809 のマシンを新規セットアップ中に気がついたんだが、format-table で
多バイト文字が含まれるデータを表示しても表組みがズレなくなってるな。
https://i.imgur.com/wizludw.png

1809 の改良点かと思って別の 1607 も見てみたら、こちらでもズレなくなってるわ。
Windows Update でいつの間にか修正されてたらしい。良かった、良かった。
2019/04/20(土) 19:17:44.43ID:gHzm7Vzg
ps1を別のps1から実行したとき、呼び出したps1の標準出力を呼び出し元のps1で取得する方法ってありますか?
$LASTEXITCODEとか$?には当然入らないですよね
2019/04/20(土) 22:12:38.92ID:BGbzUadU
普通に取得できるけど
どうやって呼び出してんの?
2019/04/20(土) 22:27:38.00ID:gHzm7Vzg
A.ps1が呼び出されるps1としてB,ps1で

.\A.ps1

としてるだけなのですが、どう取得すれば良いのでしょう?

A.ps1の中身は例えばこんな感じの標準出力を吐き出してるだけ
Write-Host "test"
2019/04/20(土) 22:29:25.41ID:BGbzUadU
Write-Hostは画面に表示するだけ
出力するならWrite-Outputか、そもそもPowerShellでは勝手に出力されるから
"test"
とするだけでいい
2019/04/20(土) 22:35:29.57ID:gHzm7Vzg
標準出力を取得したいんですよね
A.ps1はいじれないので
2019/04/20(土) 22:46:00.75ID:BGbzUadU
だからWrite-Hostは標準出力じゃないって言ってるんだが
2019/04/20(土) 22:46:19.99ID:gHzm7Vzg
Write-Hostだと標準出力ですらなくて取得出来ないってことなのかしら?
Write-OutputだとB.ps1側で変数に格納する場合どうすれば?
2019/04/20(土) 22:51:17.48ID:BGbzUadU
標準出力されるなら普通に変数に入れればいいんで
$a = .\A.ps1
とすればいいよ
Write-Hostで出力しようとするスクリプト書いた奴が馬鹿なんだから変えるしかない
2019/04/20(土) 22:52:47.85ID:gHzm7Vzg
あー、普通にいけるね
Write-Hostで書かれてるから上手くいってなかったのか
ありがとうございました
2019/04/21(日) 11:07:01.93ID:vucDkGbp
>>677
$a = . .\A.ps1 6>&1
で取得できる、使ってるPowerShellのバージョンにもよるけど
2019/04/21(日) 15:12:23.52ID:DYRtR1tP
>>684
試したところ確かに取得出来ました
2>&1は試していたのですが、6>&1とは初めてみました
6がコンソールなのかな?
助かりました、ありがとうございます
2019/04/21(日) 19:32:10.42ID:RVTtJDMW
<Japan>
 <Tokyo>
  <Shinjuku Area="Nishi" Type="Kusai"/>
  <Shinjuku Area="Kabuki" Type="Kitanai"/>
  <Shinjuku Area="Okubo" Type="Ikoku"/>
 </Tokyo>
</Japan>

こういうXMLの場合、Type="Kitanai"の子要素があるAreaを取得するにはどうすればいいの?
687デフォルトの名無しさん
垢版 |
2019/04/21(日) 20:01:09.97ID:RCGv90ei
$xml = [xml]'<Japan>
 <Tokyo>
  <Shinjuku Area="Nishi" Type="Kusai"/>
  <Shinjuku Area="Kabuki" Type="Kitanai"/>
  <Shinjuku Area="Okubo" Type="Ikoku"/>
 </Tokyo>
</Japan>'

$xml.Japan.Tokyo.Shinjuku |
  Where-Object {$_.Type -eq 'Kitanai'} |
  Foreach-Object {$_.Area}

とか?
2019/04/21(日) 20:31:15.57ID:jwyOkte1
>>686
powershell XPath
でググると色々情報が得られるでしょう
2019/04/21(日) 21:24:14.09ID:aMzGc0Ck
//Japan/Tokyo/Shinjuku[@Type='Kitanai']

こうかな?
まあ、検索して!

jQuery で、CSS Selector なら、
Japan > Tokyo > Shinjuku[Type="Kitanai"]
2019/04/21(日) 23:45:42.71ID:SQdQ4J0R
xml要素って順序木ってわけでもないから結局forで回すしかないんかね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況