19/06/12 16:39:19.29 kgH69nQx.net
>>724
なるほど~、これからは MailKit が推奨ってことね。ありがとう。
で >>721 だけど、OS 標準機能だけでお手軽に、手っ取り早く SMTP AUTH や
SMTP over SSL でアラートメールを送信するだけなら「アリ」だと思うね。
要するに、「要件次第」。
755:デフォルトの名無しさん
19/06/13 12:15:28.51 p0mjXhjx.net
質問します
WindowsServer2012R2をWin10からリモートで使っています。
get-ExecutionPolicyは
RemoteSigned
スクリプトは例えばこんな感じです
test.ps1
$AA=Read-Host "入力"
PowerShellSEからtest.ps1は実行成功。
PowerShellを起動し./test..ps1で実行成功。
エクスプローラーからtest.ps1を右クリックからPowerShellで起動しようとすると
一瞬PowerShellが起動するが何も実行されず終了。
どの辺を修正すればよいかアドバイスをいただけますでしょうか
756:デフォルトの名無しさん
19/06/13 23:02:42.88 UGCqyxPq.net
>>726
リモート
757:デスクトップ試せないけど、とりあえずリモート先のイベントログ見たら? ローカルなら C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file ps1フルパス名 -Command if((Get-ExecutionPolicy ) -ne AllSigned) { Set-ExecutionPolicy -Scope Process Bypass } が実行されるけどね
758:デフォルトの名無しさん
19/06/16 19:28:37.13 sa5lhoiI.net
-Recurseって、ForechObjectのLazy評価と相性悪いのね。
759:デフォルトの名無しさん
19/06/18 06:16:59.21 3nOE2mBA.net
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
スレリンク(tech板)
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
760:デフォルトの名無しさん
19/06/19 19:17:38.02 TWs5Iott.net
VBAからPowerShell呼びたいのだがシェルコマンドとして実行するしかないのかね?
C#だとSystem.Management.Automationが使えるがCOMじゃないのだよねコレ
761:デフォルトの名無しさん
19/06/22 01:23:30.12 3TgqxsPN.net
>>730
VBA詳しくないから合ってるか知らないけど、ExecPowerShellコマンドは使えるんでない?
762:デフォルトの名無しさん
19/06/22 13:27:06.92 DZJ/hc7X.net
シェルコマンドの何が不満なのかさっぱり
763:デフォルトの名無しさん
19/06/24 23:49:52.33 +JWJYT3O.net
以下の Data.txt と Format.txt がある状態で<実行結果>を得るにはどのようなスクリプトを書けば良いのでしょうか?
Get-Contentを使うのだと思うのですが、改行の入れ方がよくわかりません。
<Data.txtの内容>
1111111111abcde2223333333
<Format.txtの内容>
10
5
3
7
<実行結果>
1111111111
abcde
222
3333333
764:デフォルトの名無しさん
19/06/25 00:37:21.55 crlTuLoY.net
ひどいレベルの低さだな、変数と代入と展開だけ。試行錯誤すれば5分で答えでるだろ。
765:デフォルトの名無しさん
19/06/25 10:30:56.60 oiRmP0Xi.net
教育問題は自分で考えて解かないと意味が無いよ
766:デフォルトの名無しさん
19/06/25 12:26:30.04 z/YFlONv.net
>>733
テストしてない
URLリンク(pastebin.com)
まずは何でもかんでもgetType()してみる癖をつける事から
767:デフォルトの名無しさん
19/06/25 17:28:39.42 NjnEAwoB.net
$s = "1111111111abcde2223333333"
10,5,3,7 | % { $n = 0 } { $s.Substring($n, $_); $n += $_ }
768:733
19/06/25 21:04:00.53 SYrWEeYW.net
>>736
わざわざありがとうございます!
ちょっと動かし方を確認してから動かしてみます。
>>737
そのままPower Shellウインドウに貼り付けたら>>733の<実行結果>を得ることができました。
私には高度ですが調べてみます。ありがとうございます。
>>734-735
Power Shellを始めたばかりなんで一旦ベテランの方の回答を見させてもらおうと考えてしまいまして…
とりあえず頂いた回答を全力で分析します。
769:デフォルトの名無しさん
19/06/28 2
770:2:35:51.43 ID:7dQVY7x3.net
771:デフォルトの名無しさん
19/06/29 00:07:50.83 rLR7TtJ0.net
Pastebinは相当前からあったけど・・・
772:デフォルトの名無しさん
19/06/29 06:29:56.03 G7+AZKsr.net
Qiita、GitHub、teratailでもpastebinモジュールが中で使われてるよね、でもpastebin.comは単体で便利
773:デフォルトの名無しさん
19/07/01 12:57:19.36 fiA0UtsU.net
>>739
ただのGistのパクリなんだが。。
774:デフォルトの名無しさん
19/07/01 14:19:02.73 O1pDJEnN.net
Ruby で作った
str = "1111111111abcde2223333333"
nums = <<"EOT".lines( chomp: true ).map( &:to_i ) # 数字の配列。改行は削除
10
5
3
7
EOT
#=> [10, 5, 3, 7]
i = 0
nums.each do |num|
puts str[ i, num ] # 位置i から、num個の文字列
i += num
end
775:デフォルトの名無しさん
19/07/01 14:41:57.11 YzHO/9WR.net
>>743
どうでもいい
776:デフォルトの名無しさん
19/07/01 16:21:19.60 MoEwNeEz.net
>>743
死ね
777:デフォルトの名無しさん
19/07/02 21:03:55.04 IFMrsVTJ.net
教えてくださいエロい方
初心者なりに頑張ってwpfでxmlデータをツリー表示させたのですが、
テンプレートで定義したボタンにクリックイベントをつける方法がわかりません・・
①見た目: xaml
②データテンプレート: TreeViewのhierarchicalDataTemplate(xaml)
③データソース: xmlをxmlDataProviderに読み込んで②にバインド (起動時コード)
アドバイスをお願いします。
778:デフォルトの名無しさん
19/07/02 21:36:19.03 uMGeffjZ.net
jQuery なら、後から追加した要素にも、on で、複数のイベントを付けられる
$( 'CSS セレクター' ).on( {
'click': function() { 処理 },
'mouseenter': function() { 処理 }
} );
779:デフォルトの名無しさん
19/07/02 22:05:43.99 IFMrsVTJ.net
>>747
むー・・・ あと3日WPFで頑張らさせていただきます!
もしそうなったときはHTMLベースのUIに変換するコード書いてjsで制御しようと思います
780:747
19/07/02 22:30:07.10 uMGeffjZ.net
WPF の概要
URLリンク(docs.microsoft.com)
この辺の説明は?
781:デフォルトの名無しさん
19/07/02 23:46:29.77 TfK25CW5.net
>>747
後から追加した要素にも、という話ならこっちじゃないのか
$('セレクター1').on('click', 'セレクター2', function() { 処理 });
782:デフォルトの名無しさん
19/07/03 00:05:26.64 CCtfRBKO.net
ここが優しい世界か・・・
煮詰まってたけど癒やされたよおお
>>747
xamlで書いた表示要素とコード上のオブジェクトを紐付けるのがx:classらしいんですが、
powershellはx:classをパースできなくて落ちてしまいます(T T)
いまxmlDataProviderの継承クラスをつくって、プロパティにICommandのオブジェクト設定する方法やってみようとしています
トライアンドエラーアンド討ち死にを繰り返してます
783:デフォルトの名無しさん
19/07/03 01:47:49.94 CCtfRBKO.net
ふぁああ・・・
だめだぁ ピクリともしない
784:デフォルトの名無しさん
19/07/03 12:43:03.67 aBGmP+w2.net
癒やされたよおお
とか、
ふぁああ・・・
とか、顔文字とか気持ち悪い
キャラ作んなくていいから普通に質問して
785:746
19/07/04 20:57:41.18 BTJ6kVqu.net
解決しました!
①xmlDataProvider継承したViewModelクラスを作る
786: ②RoutedCommand型のオブジェクトを作成して、ViewModelの公開プロパティにする ③TreeView.DataContextに①を設定する ④イベントハンドラを $doSomething = { }の形で作る ⑤CommandBindingオブジェクト作成して②と④を紐付ける ⑥TreeView.CommandBindingsに⑤を追加する ⑦XamlのDataTemplateで定義したButtonのCommand属性: RelativeSourceとPathを併用してTreeView.DataContext.②を直接指定する CommandPerameter={Binding} これでボタンを押すと④が呼ばれて、commandParameterで渡した引数が $_.parameter に入ってきます
787:デフォルトの名無しさん
19/07/17 08:59:27.68 9NhZdbVu.net
v6.1.5
URLリンク(github.com)
v6.2.2
URLリンク(github.com)
788:デフォルトの名無しさん
19/07/17 10:10:22.98 41FBiYn6.net
>>755
6系の長期サポート版が欲しいな
789:デフォルトの名無しさん
19/07/25 18:27:45.21 zfVWvI3/.net
shellからjarを起動したいのですがjarの引数に変数を入れると落ちてしまいます
直接書くと問題なく動くのですがなぜでしょうか?
790:デフォルトの名無しさん
19/08/12 02:48:57.74 kdU0FwTT.net
PowerShellのGet-HelpコマンドでGetType()についてのヘルプを見るにはどうすればいいのでしょう。
Get-Help -Functionality GetTypeとか
Get-Help -Component GetTypeとか
色々やってみたのですが表示してくれません…。
791:デフォルトの名無しさん
19/08/12 03:14:57.78 k4SaZ4yK.net
GeTtype()は.NETのオブジェクトのメソッドだからGet-Helpじゃ見れんやろ
Powershellの与り知らんとこだし
792:デフォルトの名無しさん
19/08/12 06:13:32.21 kdU0FwTT.net
>>759
そうなんですね。
ありがとうございます。
793:デフォルトの名無しさん
19/08/15 08:40:37.86 HmFqQFvo.net
Windows以外でもGUI使えるのか
Out-GridView Returns!
URLリンク(devblogs.microsoft.com)
794:デフォルトの名無しさん
19/08/15 19:53:03.53 1FEo3MBg.net
俺の大好きなogv!!
795:デフォルトの名無しさん
19/08/17 18:24:44.34 2EecLECc.net
ここの人がPowershell、vbs、C#に精通していると思い質問させていただきます。
C#もまだ覚え中ですが、vbsをC#に移行していました。
最近Powershellを知って、
C#より分かりづらいですが、同じことがC#より短く書けます。
shellで.NETも使えてほぼ何でもできるPowershellに可能性を感じたのですが、
全然盛り上がっていませんw
Powershellをどんどん使っていくか、
C#を覚えていくか、将来性も含めどちらがいいでしょうか?
796:デフォルトの名無しさん
19/08/17 18:58:18.44 Q0D8gSGr.net
そんなの状況次第だよ
大雑把に分けるなら
アプリケーションを作りたいならC#
システム管理ツールを作りたいならPowerShell
797:デフォルトの名無しさん
19/08/17 19:03:01.90 CK+x7f61.net
用途が違うからC#とは並べるものじゃない
windowsがメインならどっちもできるようになった方がいい
複雑なGUIをPowerShellで頑張って作ってる人見るとごくろうさまですとしか思えんし
PowerShellでさくっと書けるCUIをわざわざVisualStudio入れてC#で書いてビルドしてバイナリ配置して
ソースも別の場所でずっと管理してんの見るとアホだなあと思う
修正の度にソース探してまたビルドしてバイナリ配置して・・・ってなるんだし
あとPowershellのスクリプトの中でC#のコードを書いて使うこともできる
これがまた強力だからどっちも覚えて損はない
(速度はC#が圧倒的に速いから速度的にネックになってる部分だけC#でかくということができる)
将来性についてどっちもMSが力入れてるから気にすることはない
vbsに関して言えば所詮道具だから現状やりたいことができ�
798:トいるんならわざわざ移行する必要もない 今んとこMSがWSHを切るって話もないし
799:デフォルトの名無しさん
19/08/17 19:11:51.36 Ic+b/2I0.net
Linux 覚えたほうが良さそうw
800:デフォルトの名無しさん
19/08/17 20:01:01.84 2EecLECc.net
>>764-765
ありがとうございます
C#はGUIやDLLなどもできるので覚えていきたいです。
最近知ったPowerShellが何でもGUIもできるし、
短く書けておもしろいのでPowerShellに夢中です。
.NETや.csを読み込んで使えたり、
C#も一緒に覚えていけそうです。
用途で併用していきます。
>>766
Linuxもやってますが、PowerShellも入れられるので、
PowerShellが標準になったらうれしいですw
801:デフォルトの名無しさん
19/08/17 20:37:46.41 fWrg11mT.net
役割違うからどっちも必要だと思う
Windows技術者じゃなく.NET技術者を目指して勉強して欲しい
802:デフォルトの名無しさん
19/08/18 00:06:00.19 26pp6bRY.net
PowerShell の1つ上は、Ruby。
より複雑な、ファイル操作・CSV・テキスト処理・シェルスクリプトなど
例えば、1-liner で、
Linux では、
ls | ruby -ne 'puts $_.center(20, "-")'
Windows では、
ls -name | ruby -ne 'puts $_.center(20, %Q("-"))'
ただし、Windows では、" をエスケープする必要がある。
"-" の部分を、Ruby の% 記法で囲んで、%Q("-") としたら正常に動いた
%, %Q で、ダブルクォーテーションをエスケープできる。\ と同じ。
\"-\"
まあ、VBScript のスレ主のピッコロ大魔王のように、
PS で、5ch をスクレイピングするような猛者もいるけど、Ruby の方が可読性が高い
803:デフォルトの名無しさん
19/08/18 00:15:38.74 4oEGaRbg.net
>>769
お前は出てこなくていい
804:デフォルトの名無しさん
19/08/18 08:18:26.56 vD0MLvXn.net
>>769
将来性のないプログラミング言語5選として「Ruby」が挙がり話題に
URLリンク(it.srad.jp)
805:デフォルトの名無しさん
19/08/18 22:05:00.38 aNJOLvna.net
WindowsでRuby使うとかギャグだろ
806:デフォルトの名無しさん
19/08/19 23:45:41.47 6VXOyYrl.net
RubyがギャグならPythonは?
807:デフォルトの名無しさん
19/08/20 00:23:10.44 S2+8M2EA.net
PythonはAIプログラミングで一躍有名になったね
808:デフォルトの名無しさん
19/08/20 08:18:30.85 trDWBWGh.net
>>773
Visual Studio が対応してるし、.NET Framework 上で動く IronPython なんてのがあるくらいだから「アリ」だろうな。
809:デフォルトの名無しさん
19/08/20 15:46:07.95 OusQ3pFE.net
Windows版のPythonは結構ちゃんと動くし、Python製のGUIアプリもDropboxとかたまにある
WindowsのRubyは非推奨の流れで、WSL使うか仮想環境のLinux使うか
810:デフォルトの名無しさん
19/08/20 21:28:48.24 n/ZUSiaV.net
昔、七行プログラミングってあったけど、
PowerShellなら7行ですごいことできるよね
811:デフォルトの名無しさん
19/08/24 01:22:08.40 kPbBL5c4.net
csvファイル内の特定セル?(エクセルでいうところのcells(1,2)みたいな)を変数に格納して、
そのファイルのファイル名にしたいのですが、こういったことはできますか?
812:778
19/08/24 01:39:25.56 kPbBL5c4.net
できました。import-csvから要素の取り出しをするだけでした。
813:デフォルトの名無しさん
19/08/26 04:00:34.51 yeIOnWDr.net
パイプラインにオブジェクトが流れるPowerShellライクな新シェル
Nu Shell
URLリンク(github.com)
814:デフォルトの名無しさん
19/08/26 07:51:25.55 LOkM9Twk.net
コマンドプロンプトで、where notepad
と入力すると、メモ帳のパスが、2つ表示されるが、
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
PowerShell(PS)で、Get-Command notepad
と入力すると、上の1つだけが表示される。
つまり、PSと、whereコマンドの挙動が異なる!
コマンドプロンプトで、where where と入力すると、
C:\Windows\System32\where.exe
そこで、PSで、where.exe notepad
と入力すると、whereコマンドを呼び出せたので、2つ表示された
815:デフォルトの名無しさん
19/08/26 08:31:04.34 sAEBXghq.net
>>781
Get-Command -CommandType Application notepad は試した
816:?
817:デフォルトの名無しさん
19/08/26 14:58:24.63 R1/Rmq9c.net
>>781
何を主張したいのかが良く分からんレスだな。
困ってるから何とかしてくれ、とでも言いたいのか?
Get-Command notepad
で
C:\Windows\System32\notepad.exe
が表示されたは、$env:path で一番最初に見つかったものを表示してるだけだ。
試しに $env:path を変更して、C:\Windows\System32 よりも C:\Windows を先にしてみろ。
$env:path を変更したら、念のため Powershell.exe を開きなおすのを忘れんなよ。
あるいは、notepad.exe が二か所にあることが疑問/不満なのか?歴史的な経緯だ。
実態は c:\Windows\WinSxS\ 以下にあるもので、C:\Windows\System32 と C:\Windows に
あるものはハードリンクだ。
三つとも同じハードリンクなので WinSxS\ 以下のものを特別に「実態」と表現するのは本来正しくないが、
WindowsUpdate の仕組み上、便宜的に「実態」と呼んでも差し支えないだろう。
818:デフォルトの名無しさん
19/08/26 15:00:01.45 R1/Rmq9c.net
>>782
Get-Command notepad -all
でも良いんじゃないかな
819:デフォルトの名無しさん
19/08/26 15:10:26.74 JMmOsJb3.net
Why are there two copies of Notepad?
URLリンク(devblogs.microsoft.com)
820:デフォルトの名無しさん
19/08/26 15:27:38.53 j8vvMRg5.net
>>783
独特の文体からして、この板で有名なRuby君かと思われる。話の流れと無関係にRuby推ししてきたり、頓珍漢な知識披露(間違い多数)をしてきたりする奴だから、相手するだけ無駄だよ。
おそらく、ぼくこんなこと気づいたんだよ!って嬉しくて書かずにいられなかっただけだと思う。
821:
19/08/26 19:23:25.35 jPNtTojU.net
>>786
>話の流れと無関係にRuby推ししてきたり
ステキじゃないですか、この前も C/C++ スレに乱入していましたね、これからも頑張って ruby を喧伝してほしいです!
822:デフォルトの名無しさん
19/08/27 01:45:40.61 OLaosybt.net
DOSメインでPSでしかできない部分だけPSにしてるのをやめて、PS一本化を増やそうかと思い立ったが
そういやDOSからキックしないと動かないのであった
というわけでやはりDOSメイン
823:デフォルトの名無しさん
19/08/27 01:49:02.45 OLaosybt.net
なんでそんな仕様にしたんだろうね
かといってPS直でやりたいというより、DOSを拡張して欲しかった
824:デフォルトの名無しさん
19/08/27 02:31:00.22 AUeyxvTx.net
まだDOSなんて使ってんの
825:デフォルトの名無しさん
19/08/27 17:41:47.14 DT/yO98c.net
なんでps1てへんてこな拡張子なの
826:デフォルトの名無しさん
19/08/27 18:06:41.10 JlFv53u2.net
どっかのゲーム機みたいにPowerShell 2, PowerShell 3, …って作るんじゃね?w
827:デフォルトの名無しさん
19/08/27 21:28:53.53 2r3hz+dJ.net
>>791
PowerShell の ps1 ファイルは 何故 1なのか
URLリンク(tech.guitarrapc.com)
828:デフォルトの名無しさん
19/08/28 02:40:35.65 tqyYzyWN.net
考え無しに作った結果か・・・
829:デフォルトの名無しさん
19/08/29 03:16:31.66 RYMiansx.net
基本的なことが分かってない気がするのだけど教えてください
get-date, get-childitem, get-location といったコマンドレットの代わりに
get 無しで date, childitem, location と入力しても同じ結果になる
これら get 無しコマンドは get 付きのエイリアスなのか? と最初は思ったのだけど
そんなエイリアスはないと言われる
これらの get 無しコマンド(?) はどういう立ち位置なんでそ?
ちなみに例えば location.bat とかを PATH の通った場所に置いておくと
そっちが実行されるので、これらは�
830:Tーチパスより優先度が低いようです
831:デフォルトの名無しさん
19/08/29 04:05:52.42 TR1/uwdi.net
>>795
基本的なことはここにまとまってる
URLリンク(docs.microsoft.com)
1. Alias
2. Function
3. Cmdlet
4. Native Windows commands
の順に探す
ただこの文書にはGetを省略した場合について書いてない
以下のコマンドを実行すればだいたいわかる
Trace-Command CommandDiscovery { date } -PSHost
すると上記の1~4の順に探してもコマンドが見つからなかった場合、以下のようなデバッグ出力が見つかる
>The command [date] was not found, trying again with get-prepended
つまり1~4でコマンドが見つからなかった場合は、頭にGetを付加してもう一回1~4を探すよってこと
832:デフォルトの名無しさん
19/08/29 04:22:51.28 RYMiansx.net
>>796
明快な回答ありがとうございます
> Trace-Command CommandDiscovery { date } -PSHost
これ勉強になりました
833:デフォルトの名無しさん
19/08/29 19:25:49.72 +UUfxV7s.net
初心者で右も左もわからない状況で申し訳無いのですが、
明示的に設定してる共有ディレクトリとアクセス権を一括で出力ってできたりするんですかね?
Get-wmiobject -class win32_share
だとアクセス権までは出力されなかったんで...
詳しい方教えて頂きたいです。
834:デフォルトの名無しさん
19/08/30 00:19:55.56 kVpvpBih.net
「powershell アクセス権限 確認」で検索!
こんな感じ?
ls | Get-ACL
835:デフォルトの名無しさん
19/08/30 10:55:43.01 uzgqDeg8.net
>>799
ありがとうございます。
検索してみます。
PowerShellはほんとに難しいです...
836:デフォルトの名無しさん
19/09/06 17:24:06.26 LE0BBPZ5.net
ふぁあああ・・・・
解決してよかったよぉお
ハロー優しい世界、だねええええ^^
837:デフォルトの名無しさん
19/09/07 01:23:05.71 SOW3zbb3.net
Set-ACLは使うな
838:デフォルトの名無しさん
19/09/07 06:28:56.33 jlJXcZnh.net
>>802
替わりに何を使ったら良いですか?
839:デフォルトの名無しさん
19/09/07 06:44:55.31 jb/JoUUS.net
>>802
why?
840:デフォルトの名無しさん
19/09/07 10:39:33.44 sSufJvsQ.net
>>804
俺は >>802 ではないが、Set-Acl は使いづらい。
そもそもの理由は Windows の ACL (ACE) が複雑だからなのだが、対象にセットする ACL オブジェクトを作るのが分かりづらい。
例:All Users のスタートメニューのアクセス権を変更し、一般ユーザにも書き換えられるようにする場合(既存の権限に追加)
URLリンク(pastebin.com)
他のフォルダなどから ACL オブジェクトをコピーし、それをそのままターゲットに適用するだけなら簡単なのだけど。
>>803
「何が何でもすべて PS でやる!」 というポリシーでないのなら、cscls.exe、icacls.exe のほうがお手軽。
841:デフォルトの名無しさん
19/09/07 10:48:02.60 jlJXcZnh.net
>>802に答えて欲しいな
842:デフォルトの名無しさん
19/09/07 11:08:11.46 sSufJvsQ.net
>>806
ごめんね
843:デフォルトの名無しさん
19/09/07 15:10:43.76 SOW3zbb3.net
>>802だけどSet-ACLは所有権絡みで問題抱えてる
下サイトで説明されてる
URLリンク(qiita.com)
844:デフォルトの名無しさん
19/09/07 15:12:47.14 SOW3zbb3.net
あ、>>803への答えはicaclsコマンド使えね
powershellは変な仕様あるから割と警戒した方がいい
845:デフォルトの名無しさん
19/09/08 20:21:13.64 d6DJW1MN.net
F:/ に SDカードがマウント�
846:ウれているのを アンマウントするコマンドは何ですか?
847:デフォルトの名無しさん
19/09/08 21:55:23.61 D+CIKcq7.net
>>810
(New-Object -comObject Shell.Application).Namespace(17).ParseName('F:').Verbs()|?{$_.Name -match '取り出し'}|%{$_.Doit()}
848:デフォルトの名無しさん
19/09/09 16:38:34.04 8EKyQA8Q.net
>>811
thanks
849:デフォルトの名無しさん
19/09/10 21:38:04.40 Eo4YqZPr.net
■C:\hoge.txtの内容
aaa
bbb
bbb
bbb
ccc
ccc
ccc
ccc
ccc
↑のようなテキストファイルがある場合に、↓の結果(タブ区切り)を得るにはどうすれば良いのでしょうか?
aaa 1
bbb 3
ccc 5
850:デフォルトの名無しさん
19/09/10 22:19:37.38 L5QX1JAH.net
>>813
Group-Object
851:デフォルトの名無しさん
19/09/10 22:36:34.85 hrOpSOVs.net
頼むから順不同なのかそうじゃないのか
書いてから質問してくれ
852:デフォルトの名無しさん
19/09/10 23:28:19.24 Eo4YqZPr.net
>>814
gc C:\hoge.txt | Group-Object
などとやってみたのですがうまく動かず…
>>815
ソート済みです><
853:デフォルトの名無しさん
19/09/10 23:30:43.39 L5QX1JAH.net
>>816
上手く動かずじゃよくわからんからどういう出力なのか書いて
エラーになるの?
854:デフォルトの名無しさん
19/09/11 00:05:23.05 TMos3buL.net
あータブ区切りの文字列にしたいんか
gc hoge.txt | group | foreach { $_.name,$_.count -join "`t" }
855:816
19/09/12 00:24:07.29 W/V8jwbc.net
>>818
★★★★★
ありがとうございます!
実はまだ試せてないのですが、期待を込めて★5つです!(^_^)
856:デフォルトの名無しさん
19/09/12 10:44:16.82 W/V8jwbc.net
>>805
icaclsってps1ファイル内でも普通に呼出せるのね
ps1→bat→icaclsみたいに呼出さなきゃならないのかと思った
コマンドというより単なるexeってことか
857:デフォルトの名無しさん
19/09/12 13:07:06.37 9SxJRVV0.net
これからは>>819みたいに★で評価しよう
★☆☆☆☆ クソレス
★★★★★ 問題解消
858:デフォルトの名無しさん
19/09/12 14:46:18.96 pQlsfVOK.net
ふーむ、アホがアホに同調するアホな好例だな、アホすぎてオレにはよく分らんのだが、アホだということは分かる
アホA「ありがとうございます! まだ試していないけど! ★5つです!(^_^)」
アホB「・・これは良い! これからは★で評価しよう!」
ボク「・・いやいや、まだ試してもいないのだから評価もくそもねーだろ、★2~3の定義もねーし、こいつらアホの極みだな」
859:デフォルトの名無しさん
19/09/12 14:53:12.75 j3ZoG8EK.net
>>822
★
860:デフォルトの名無しさん
19/09/12 17:51:47.62 TUHPbFV0.net
>>822
これが噂のヤラセレビューってやつか?
861:デフォルトの名無しさん
19/09/12 18:29:54.11 5CMOpd/7.net
>>822
☆
862:デフォルトの名無しさん
19/09/12 19:50:41.33 igJ/H+nC.net
icaclsとか括弧を多用するコマンドはエスケープうざいですね
ヒアドキュメントみたいな感じでスマートに書けませんか
863:デフォルトの名無しさん
19/09/13 20:13:01.19 Vx47yrR/.net
PowerShellで非同期処理って酷く書きづらいと思ってるんだが、こんなもんなんか?
変数を渡すのにめっちゃ苦労したんだが…
864:デフォルトの名無しさん
19/09/13 21:35:11.86 3ZdspPUD.net
具体的にはどんなコードを書いたの?
865:デフォルトの名無しさん
19/09/13 21:49:24.82 Vx47yrR/.net
あまりにもニッチな製品の負荷テスト用スクリプトだから具体的には言えないが、平たく言えば自作関数とWin標準コマンドを引数変えながら並列投入するだけ
bashと比べちゃ駄目なんだろうが、スクリプト書いててキレそうになったのは久
866:しぶりだわ
867:デフォルトの名無しさん
19/09/13 23:05:20.75 ha69B7nJ.net
runspaceでやってるのかjobでやってるのか
868:デフォルトの名無しさん
19/09/14 01:25:26.61 XbAlqDVd.net
そんな苦労するもんだっけか
869:デフォルトの名無しさん
19/09/14 01:53:38.89 ogAZWftq.net
runspaceの中で親スコープで宣言した関数を(特に書き換えずに)呼ぼうとするとややこしい
ちょっとggって出てくる方法だと面倒
URLリンク(devblogs.microsoft.com)
解決策:まとめて文字列にして渡す
# runspaceで実行したいスクリプトブロック
$cmd = {
param($func_parent)
$func_current = Get-ChildItem function: | %{$_.ScriptBlock.Ast.ToString()} # カレント(子)スコープの関数リスト
compare-object $func_current $func_parent | % inputobject | Invoke-Expression # 親スコープで宣言した関数のみを定義する
<# 実行したい処理 #>
}
$func = Get-ChildItem function: | %{$_.ScriptBlock.Ast.ToString()} # カレント(親)スコープの関数リスト
$ps = [PowerShell]::Create()
$ps.AddScript($cmd).AddArgument($func) | Out-Null
$result = $ps.BeginInvoke()
$ps.EndInvoke()
$ps.Dispose()
}
870:デフォルトの名無しさん
19/09/14 01:55:28.35 ogAZWftq.net
$ps.EndInvoke($result)
だわ
871:デフォルトの名無しさん
19/09/14 20:16:09.07 atxyCPua.net
変数じゃねーじゃねーか!
872:デフォルトの名無しさん
19/09/14 20:31:39.96 jbpc8Cnk.net
連想配列にして渡そうぜ
URLリンク(devblogs.microsoft.com)
873:デフォルトの名無しさん
19/09/14 20:49:09.80 atxyCPua.net
渡したかったのは関数だって言ってんじゃねーか!
874:デフォルトの名無しさん
19/09/14 21:11:58.91 ogAZWftq.net
>>836
>>832のスクリプトブロック内のInvoke-Expressionをした時点で渡した関数(というか親スコープの関数全部)使える
特定の関数にしたかったら$function:関数名.Ast.ToString()で必要分を配列に突っ込んで渡してiexするだけや
875:デフォルトの名無しさん
19/09/14 22:03:58.44 atxyCPua.net
psm1にまとめて読み込んだほうが楽そう…
876:デフォルトの名無しさん
19/09/14 22:24:21.00 Tzf8a7mL.net
うむ
877:デフォルトの名無しさん
19/09/15 15:45:03.86 4TgO8+RX.net
>>813-819
大文字小文字が区別されないから、-CaseSensitive オプションも付けた方がよい
"Aa", "b", "aa" | group-object -noelement | where {$_.Count -gt 1}
出力
2 Aa
"A", "a" | group-object -noelement -CaseSensitive
出力
1 A
1 a
878:デフォルトの名無しさん
19/09/15 17:42:03.16 tc+PQ4bB.net
5.1から4.0に戻さないと日本語でいろいろ書いてくれないからわからないんです…
どうやって戻したらいいんでしょうか…(´・ω・`)
879:デフォルトの名無しさん
19/09/15 18:02:21.21 LMFjfaUx.net
どういうこと(´・ω・`)
880:デフォルトの名無しさん
19/09/15 19:37:50.46 tc+PQ4bB.net
(´・ω・`)すみません自己解決しました 更新プログラムの一部を削除したら望む結果が得られました お騒がせしました
881:デフォルトの名無しさん
19/09/15 20:17:50.41 aATf+6N9.net
WMF 5 に上げるとUIの表示が英語になるやつかねたぶん
882:デフォルトの名無しさん
19/09/15 20:48:36.32 ORV+CvDJ.net
win7pcのPSを5.1にした時に日本語化探したけどわかんなかったから詳しく書いてほしかった感
883:デフォルトの名無しさん
19/09/15 22:28:51.53 tc+PQ4bB.net
>>844
たぶん
884:それですお騒がせしました これから精進していきます
885:デフォルトの名無しさん
19/09/15 22:30:29.90 tc+PQ4bB.net
>>845
ざっくり言うと
コントロールパネルからプログラムと機能に行って
インストールされた更新プログラムの項目を開いて
WMF5をアンインストールしたという流れです
886:デフォルトの名無しさん
19/09/18 09:25:06.97 jcGpm5QT.net
v6.1.6
URLリンク(github.com)
v6.2.3
URLリンク(github.com)
887:デフォルトの名無しさん
19/09/18 12:47:39.59 iUGh13ZQ.net
バッチファイルでいう、
echo %errorlevel%
はパワーシェルではどうやればいいんでしょうか?
888:デフォルトの名無しさん
19/09/18 14:54:54.64 nNyCwAkD.net
echo $LASTEXITCODE
889:デフォルトの名無しさん
19/09/23 16:12:06.99 yWN8gkqC.net
[2018.11.27] 納品書A社
[2018.11.29] 納品書B社
[181129] 納品書C社
このようなフォルダ構造になっている状態で、
このフォルダ階層だけ
3行目の"[YYMMDD] ~~"のような書式にフォルダ名を変更したいと思っています。
" 納品書A社"などはそのままで
元の日付も保持します
正規表現では"([2][0][1][0-9])\.([01][0-9])\.([0-3][0-9])"
に反応するものだけで出来ればと思います
どのように書けばよいのでしょうか?
890:デフォルトの名無しさん
19/09/23 18:10:16.40 mK3aarjp.net
>>851
Get-ChildItem -Directory |
Where-Object Name -match "^\[20(1[0-9])\.([01][0-9])\.([0-3][0-9])\](.*)" |
Rename-Item -NewName { "[{0}{1}{2}]{3}" -f $Matches[1..4] } -PassThru
これ日付の妥当性チェックはガバいけどそれは別にいいんでしょ
-match演算子を使ったらその結果は変数$Matchesに入ってることを覚えておくといい
891:デフォルトの名無しさん
19/09/23 22:41:23.65 CUAPT5Qo.net
NewNameにスクリプトブロック渡せるんだ
%{~}の中で整形して渡す発想しかなかった
892:デフォルトの名無しさん
19/09/23 22:54:01.34 GUxJcSSn.net
DIRとって一つずつ条件に合致するオブジェジェクトをパイプ渡しするだけだよ
893:デフォルトの名無しさん
19/09/23 23:39:14.69 mK3aarjp.net
>>853
Delay Bindingっていって以下の条件を満たすパラメータにスクリプトブロックを渡すと
パイプラインから値が入ってくる度にパラメータの値を評価してくれる
・ ByValue, ByPropertyName属性が付加されてること
・ 型が明示的に指定されてること(ただし[scriptblock]または[object]以外)
894:デフォルトの名無しさん
19/09/24 10:08:27.83 hYZHYmb1.net
>>852
横だけど、すごく参考になった。ありがとう。
895:851
19/09/24 15:33:38.23 SPmBMSDI.net
>>852
やりたいことが出来ました。ありがとう!
896:デフォルトの名無しさん
19/09/25 10:57:26.88 E/zWVp/e.net
PowerShell って、「Shell」と一括にされてるんだっけ?
The Top Programming Languages 2019
URLリンク(spectrum.ieee.org)
897:デフォルトの名無しさん
19/09/25 20:24:06.99 idiO5sU0.net
素のCが3位とかだから老害向けランキングでしょ
898:デフォルトの名無しさん
19/10/14 15:09:43.96 WeKpLulI.net
LL言語入門で有名なM.Hiroiさんは
なんでpowershellにかたくなに手を出さんのかと思ってたけど
bashとかシェルスクリプト方面は全く手を付けてないので納得
今はまさかのtcltkのページを更新中というマイペースぶり
899:デフォルトの名無しさん
19/10/22 22:39:49.38 xAr/pqiO.net
3位PowerShellってマジかよ
ガチ調査版::2019年
900:プログラミング言語 求人人気ランキング https://qiita.com/bitai/items/c8941da683ebedd135fd
901:デフォルトの名無しさん
19/10/23 07:15:39.57 4jedgKvl.net
>>861
決め方テキトーだからあてにならんよ
902:デフォルトの名無しさん
19/10/23 08:54:10.32 1cyp8e5C.net
>>861
開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。
求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは
後者じゃないかと推測。
Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が
いくつかあるから、そういう案件もカウントされてるかもしれない。
自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。
903:デフォルトの名無しさん
19/10/27 10:53:22.24 NsKzBf3L.net
詳しい方、教えて下さい!
シェバン記法でバッチファイル化して実行したいのですが、自スクリプトパスを取得する方法がわかりません。
誰か教えて下さい。
904:デフォルトの名無しさん
19/10/27 10:58:27.15 Lik42TLZ.net
PowerShell、起動が遅いのがなー
なんとかならんかなー
905:デフォルトの名無しさん
19/10/27 11:38:43.07 7LOf++Wk.net
シェバン記法てなぁに?
906:デフォルトの名無しさん
19/10/27 11:42:15.29 NsKzBf3L.net
>>866
以下を頭につけて拡張子を.batにするとダブルクリック実行できるようになるという記法のことです。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
907:デフォルトの名無しさん
19/10/27 11:47:16.24 7LOf++Wk.net
ありがと
908:デフォルトの名無しさん
19/10/27 11:48:06.40 hJUpCTqv.net
Ruby では、__FILE__ が現在評価中のスクリプトファイル名
シェバンは、Linux では、
#!/usr/bin/ruby
Windows に、シェバンってあるの?
.bat に、ruby .\script.rb
と書いて、ダブルクリックで起動したりする事はあるけど
.vbs でも、起動ファイルを作れる
909:869
19/10/27 11:52:51.51 hJUpCTqv.net
.bat に、powershell .\script.ps1
と書けば、ダブルクリックで起動できないか?
または、.vbs に、
CreateObject("WScript.Shell").Run "powershell .\script.ps1", 0
910:デフォルトの名無しさん
19/10/27 12:06:15.48 NsKzBf3L.net
>>869
その方法だとファイルが2つになってしまうでしょう?
一つが良いんです。
911:869
19/10/27 12:21:42.69 hJUpCTqv.net
よく知らないけど、powershell は、ダブルクリックで起動するような、
危険なことは出来ないのじゃないか?
912:デフォルトの名無しさん
19/10/27 12:38:31.80 pI9qWgY0.net
>>872
バッチやvbsならダブルクリックも安全だとおっしゃるのでしょうか?
913:869
19/10/27 12:54:36.77 hJUpCTqv.net
ダブルクリックで起動するのは、危険!
あくまで、個人用途
仕事ではやらない方が良い。
危険すぎる
914:デフォルトの名無しさん
19/10/27 12:57:45.64 gYi3Gz62.net
スクリプトのパスなら$MyInvocation.MyCommand.Path
915:デフォルトの名無しさん
19/10/27 13:07:05.42 hKAQ6fM+.net
>>873
そのとおり
916:デフォルトの名無しさん
19/10/27 13:40:21.93 Lik42TLZ.net
>>874
ダブルクリックで起動するのは危険だから
コマンドラインから起動してください。
危険なコードでもコマンドラインから起動すれば、安全です。
こうですか?
917:デフォルトの名無しさん
19/10/27 13:50:19.81 NsKzBf3L.net
>>874
どう危険なのですか?顧客提供して不特定多数が使うわけでもないのに何が危険なのですか?
>>875
シェバンした場合、それだと動作しません。
>>876
なぜ?
918:869
19/10/27 14:01:18.04 hJUpCTqv.net
ダブルクリックで起動するのは、危険!
ファイルをちょっと触っただけでも、
ダブルクリックになって起動起動されてしまうから、Microsoft も禁止してる!
919:Linux のシェバンでも、 ファイル名だけじゃ起動できないようにしてるだろ ./ファイル名 みたいに、パス付きじゃないと起動しないようにしてる これも、ファイル名だけでリターンキーを触ってしまうと、起動されてしまって危険だから! ダブルクリック起動では、多くの被害者が出てる
920:デフォルトの名無しさん
19/10/27 14:05:08.75 v/8cx3Zl.net
vbsはファイルを全部パースしようとするからシェバン記法は使えないな
921:デフォルトの名無しさん
19/10/27 14:05:49.29 Lik42TLZ.net
ダブルクリックは危険!
ファイルをクリックしただけで起動しちゃう!
エクスプローラーからファイルをクリックできない
全部開いちゃう!
こうですか?
922:デフォルトの名無しさん
19/10/27 14:06:46.38 v/8cx3Zl.net
危険はexeでもバッチでも同じだろうに
powershellスクリプトだけを危険とする理由はない
923:デフォルトの名無しさん
19/10/27 14:13:43.83 Lik42TLZ.net
バッチファイルは危険じゃない!
APIが使えない。PowerShellスクリプトは何でもできる!
バッチファイルは他のスクリプトを呼び出すぐらいしかできない!
こうなるんですかね?
924:デフォルトの名無しさん
19/10/27 14:22:52.49 4/fJTv/Q.net
>>878
引数の名前を指定して%~dpnx0を渡せばいいのでは
# D:\a.bat
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\"); & $s" -hoge %~dpnx0 %* & goto:eof
Param(
[string]$hoge
)
Write-Host $hoge
Write-Host $args[0]
Write-Host $args[1]
Write-Host $args[2]
pause
# D:\a.bat eof
D:\>a 0 1 2
D:\a.bat
0
1
2
続行するには、Enter キーを押してください...:
925:デフォルトの名無しさん
19/10/27 14:26:31.81 vcUKQgsd.net
>>865
PC買いかえろよ…
926:デフォルトの名無しさん
19/10/27 14:31:11.79 vcUKQgsd.net
>>878
> シェバンした場合、それだと動作しません。
そりゃスクリプトを動的に作ってるんだからスクリプトファイルなんてないからね
バッチファイルのパスを知りたいならバッチから引数で渡せばいいだけ
927:デフォルトの名無しさん
19/10/27 14:32:02.36 v/8cx3Zl.net
マシン替えても相対的に速くなるだけで起動が遅いのは変わらないよ
928:デフォルトの名無しさん
19/10/27 14:57:41.64 vcUKQgsd.net
>>887
何を言ってるんだ?w
929:デフォルトの名無しさん
19/10/27 15:18:23.27 FsLuN3Ol.net
前から気になってたんだがダブルクリックでps1が起動できない設計にどれだけのセキュリティの効能があるんだろな
batの中にPSスクリプトを埋め込んで実行ポリシーも上書きできるなら実質batのセキュリティレベルまで落ちる
batをメールに添付すると自動でフィルタリングされるけどps1なら安全だからフィルタされず拡張子を書き換える手間が省ける、というレベルの価値なのかな
930:デフォルトの名無しさん
19/10/27 15:40:44.98 Lik42TLZ.net
>>885
WSLから実行
$ time cmd.exe /c echo ok
ok
real 0m0.051s
user 0m0.000s
sys 0m0.016s
$ time powershell.exe -Command echo ok
ok
real 0m0.355s
user 0m0.000s
sys 0m0.016s
これは遅すぎる。
931:デフォルトの名無しさん
19/10/27 15:41:31.49 Lik42TLZ.net
>>885
お前はどれくらいの時間で実行できる?
やってみてよ
932:デフォルトの名無しさん
19/10/27 15:46:43.24 Lik42TLZ.net
ちなみに-NoProfileをつけても大差ない
-NoProfileが無いから当然だが
933:デフォルトの名無しさん
19/10/27 15:47:02.36 Lik42TLZ.net
× -NoProfileが無いから当然だが
○ Profileが無いから当然だが
934:デフォルトの名無しさん
19/10/27 15:50:55.08 ho9vIROt.net
>>890
> これは遅すぎる。
ならPC買い換えろって言われてるだろ、馬鹿なの?
935:デフォルトの名無しさん
19/10/27 16:00:15.75 Lik42TLZ.net
>>894
だからどれくらいのスペックを買えば良いのか
お前のスペックとお前の実行時間を教えてくれと言ってるんだよ
CPUを強化すれば速くなるのか?SSDを速くすれば良いのか?
936:デフォルトの名無しさん
19/10/27 16:37:26.26 rrcAfXPk.net
>>895
遅いと思う感覚が人によって違うから他人に聞いてもしょうがないだろ
そんなこともわからんのか?
937:デフォルトの名無しさん
19/10/27 16:42:00.99 ElQsR2/N.net
>>896
だからどれくらい時間がかかるか聞いてるんだがw
お前にとって遅いかどうかなんて聞いてねーよ
938:デフォルトの名無しさん
19/10/27 17:18:28.01 cWrRHY0n.net
ColorTool を使わ
939:ずに同等のことって出来ませんかね。客先のマシンなので入れられないんです。 powershell.exe から ssh で Linux につないでるんだけど、青と黒の色が似通ってて、すごく見づらいのをなんとかしたいです。
940:デフォルトの名無しさん
19/10/27 17:20:23.02 ElQsR2/N.net
プロパティから画面の色を変えるだけやろ?しらんけど
941:898
19/10/27 18:07:06.31 cWrRHY0n.net
解決したので自己レス。
とりあえず、これでだいぶマシになりました
URLリンク(superuser.com)
942:デフォルトの名無しさん
19/10/27 19:03:23.84 vcUKQgsd.net
>>897
日本語理解できないのか?
お前がどんだけ時間が掛かっちゃ遅いと思うかなんてわからんし、その時間をなぜ俺が検証してやらんといかんのだよ
無能が甘えんなよw
943:デフォルトの名無しさん
19/10/27 19:07:32.81 f+MCPxtM.net
Write-Hostは日本語環境だと遅いよ
944:デフォルトの名無しさん
19/10/27 21:04:44.37 jAqyy8Vt.net
>>889
batファイルも外部からDLしたデータなら実行前に確認画面出るでしょ
もちろん悪意のある内部犯なら無意味だけど
945:デフォルトの名無しさん
19/10/28 00:41:43.54 T67vLNbE.net
>>903
出るでしょ、と言われてもそれ俺の疑問とズレてると思うんだが…
その理屈だと、ネットワークから入手したときに警告が出るからbatもそれなりに安全
ps1も同じように警告が出るなら同じように安全
だったらダブルクリックで実行できない仕様にしたことにはあまり意味がなかった、という結論だと受け取って良い?
946:デフォルトの名無しさん
19/10/28 00:48:33.12 ML+fUsJB.net
ダブルクリック実行が危険ってのは、オペレーション次第で意図しないタイミングで実行されるからだろ
別に実行されても問題ないタイプのものならいいけど
ファイル削除系とか実行されたら何らかの情報が変化しちゃう系だと困るってことだよ
あと、ダウンロードでフラグが立つのはNTFSに落とした場合のみでFATなら警告なしだよ
947:デフォルトの名無しさん
19/10/28 02:25:37.55 bqlyCkZ6.net
読み込むアセンブリを減らしたりして0.1秒減らした。
これでコマンド実行時間が0.45秒ぐらいになった。
でもPowerShellの起動時間0.3秒がやはり大きい
ネイティブexeにすりゃいいんだろうけど、そうすると気軽じゃなくなるからな
VBScriptでAPIが使えるならそっちのほうが速くなりそうだけど
948:デフォルトの名無しさん
19/10/28 06:35:24 kjzN6NI8.net
>>890
漏れは、パソコン工房のノートPC、CPU-i3, メモリ8GB, SSD-128GB で、
WSL, Ubuntu 16.04 で、2秒ぐらいw
~$ time powershell.exe -Command echo ok
ok
real 0m1.944s
user 0m0.000s
sys 0m0.031s
949:907
19/10/28 06:41:24 kjzN6NI8.net
ただし、漏れはいつも、ノートPC を、
CPUを1つだけ使う、省エネモードにして使っている
それで、コンパイルが遅いのかも?
950:デフォルトの名無しさん
19/10/28 08:13:17.35 SMRk50Ri.net
>>904
ダブルクリックだけでは実行できなくなってるからいいんじゃない?
さすがにFATは知らんけど
951:デフォルトの名無しさん
19/10/28 11:15:58.10 tEsfLTI+.net
>>907
うわっ、マジか。そりゃきついな
タイプして2秒はありえない。
VBScriptでの実装も考えてみたが難しいし
こりゃもうCででも作るかな?
でもCOM触るの面倒なんだよな。
952:デフォルトの名無しさん
19/10/28 12:44:27.32 tEsfLTI+.net
Windows Updateしたら大幅に下がったwww
今裏でなにかビルドしてるんかな? ngenとか?
953:$ time powershell.exe -Command echo ok ok real 0m1.390s user 0m0.000s sys 0m0.016s
954:デフォルトの名無しさん
19/10/28 13:01:44.65 tEsfLTI+.net
これやったけど速くならない(´・ω・`)
URLリンク(stofublog.wordpress.com)
アップデート前まで速かったのに・・・
955:デフォルトの名無しさん
19/10/28 13:15:03.68 tEsfLTI+.net
なにかやったような記憶をたどり、
URLリンク(superuser.com)
. (Join-Path ([Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) ngen.exe) update
↑これをPowerShell(管理者)で実行したら速くなった。(もとに戻った)
でも、一部指定されたファイルが見つかりません。とかエラーがでる。
よくわからんけど、このコマンドを実行してるだけ?
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe update
956:デフォルトの名無しさん
19/10/28 13:24:18.55 tEsfLTI+.net
ここに情報があった。
URLリンク(blogs.msdn.microsoft.com)
v4.0.30319 というバージョンはいつ変わるんだろう?
957:デフォルトの名無しさん
19/10/28 13:28:19.78 tEsfLTI+.net
Windows Updateしたせいかとも思ったけど、Visual Studio入れたからかもしれんな
ともかく、ngen updateしたらもとに戻った。
しばらく放置してても治るんだろうけど
958:デフォルトの名無しさん
19/10/28 21:32:05.62 WDVIXPLl.net
強力そうなので始めてみたんだけど、たかが文字コード変換がなんで
さらっとできないんだろう…
959:デフォルトの名無しさん
19/10/28 22:42:59.54 8eaZgTeu.net
C#もどうせ遅いんだろ?と思ってやってみたら単純なHello Worldだと0.1秒程度だった
PowerShellよりマシなのか。読み込むアセンブリで変わってくるとは思うけど
C++だと0.05秒。圧倒的だが情報が少なすぎる。
960:デフォルトの名無しさん
19/10/28 22:43:45.66 i5LGlrvW.net
PowerShellがあれば、文字コード変換も簡単です。
URLリンク(scripting.cocolog-nifty.com)
961:デフォルトの名無しさん
19/10/29 02:18:49 vBIRwBaE.net
echoが遅いことが判明
$ time powershell.exe -Command echo 1
1
real 0m0.378s
user 0m0.000s
sys 0m0.000s
$ time powershell.exe -Command 1
1
real 0m0.264s
user 0m0.000s
sys 0m0.000s
$ time powershell.exe -Command "[Console]::WriteLine(1)"
1
real 0m0.243s
user 0m0.000s
sys 0m0.000s
962:デフォルトの名無しさん
19/10/29 03:21:02.42 rBco2ITF.net
echoというよりコマンドレットの呼び出しにコストがかかるんだよ
Write-Outputの使用はあらゆる場面で完全に無意味で無駄だから使わない方がいい
それについてブログ書いてる人もいた
URLリンク(get-powershellblog.blogspot.com)
963:デフォルトの名無しさん
19/10/29 03:55:39.34 vBIRwBaE.net
>>920
そうなんだろうなって気はしてた。
まだどれがコマンドレットかそうでないかよくわかってないレベルだけどw
間にハイフンで区切られてて、呼び出しにカッコがいらないのはコマンドレットだよな?
Where-Objectとかもなくせば速くなるんだろうか?
ようやくC++で実装できそうな情報が溜まってきた。
Unicodeとか訳わかんねぇ。情報がバラバラで多すぎてわからん。
たったこれだけ、たったこれだけなのに!
C++で実装したら0.1秒。だけどバイナリのビルドが必要
PowerShellだと0.45秒。
CLIコマンドとしてサクッと実行したときの体感速度が違いすぎる。
964:デフォルトの名無しさん
19/10/29 04:14:17.53 rBco2ITF.net
>>921
Where-Objectはめちゃくちゃ遅くて遅いコマンドレットの代表みたいな奴だから俺はスクリプトでは一切使わない
同様にForEach-Objectも遅い
何作ってるのか知らんけど
965:C++はスレ違いだからあとはC++のスレでやった方がいい powershell自体の起動も含めてC++で作ったバイナリより遅いとかいう情報は当然すぎるから要らない
966:デフォルトの名無しさん
19/10/29 05:02:05.41 CowX2GWO.net
Ruby が良い。
Rubyから、クリップボード・powershell も使える。
CP932・UTF-8 の変換もできる
C++ は、コンパイル済みだろ。
コンパイル自体に時間が掛かるのは、Rubyも同じ
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
967:デフォルトの名無しさん
19/10/29 08:28:11.85 +8XugnXa.net
速いに越したことはないけど、PowerShel は速さを追求するもんじゃないだろうに。
>>923
お前は今すぐ呼吸するのをやめろ。お前に吸わせる酸素がもったいない。
968:デフォルトの名無しさん
19/10/29 20:44:54.51 ltL5L5Cn.net
こっちのスレにも書いておくわ
Windows 10 1903、PowerShell 5.1.18362.145
コマンドプロンプトを起動して
C:\Users\user> powershell.exe -Command [Console]::OutputEncoding
BodyName : iso-2022-jp
EncodingName : 日本語 (シフト JIS)
HeaderName : iso-2022-jp
WebName : shift_jis
WindowsCodePage : 932
IsSingleByte : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 932
C:\Users\user> powershell.exe -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8
UTF8に変更する。
C:\Users\user>powershell.exe -Command [Console]::OutputEncoding
BodyName : utf-8
EncodingName : Unicode (UTF-8)
HeaderName : utf-8
WebName : utf-8
WindowsCodePage : 1200
IsSingleByte : False
EncoderFallback : System.Text.EncoderReplacementFallback
DecoderFallback : System.Text.DecoderReplacementFallback
IsReadOnly : True
CodePage : 65001
それぞれ、別々のコマンドとして実行してるのに、状態が変わるのはなんで?
969:デフォルトの名無しさん
19/10/29 20:47:41.08 ltL5L5Cn.net
しかも powershell.exe だけに影響する話じゃなくて、
UTF8で書いたファイルを、コマンドプロンプト起動直後、
シフトJISモードのときにtypeしたら文字化けし、
UTF8に変更してからtypeしたら文字化けしない
明らかにコマンドプロンプトの状態が変わってる。
だけどchcpの値は932のままかわらない
ただ、PowerShellを使ってUTF8モードに切り替えると、
chcpすると「Active code page: 932」と英語で表示される。
970:デフォルトの名無しさん
19/10/29 23:40:36.07 JjalWxmz.net
>>878の問題は>>884で解決したのか?
971:デフォルトの名無しさん
19/11/02 12:30:04.56 1PdjBp7d.net
この場合は True が返るんだけど(当然)、
Test-Path ${home}\ntuser.dat
こうした場合は False になる。
$a = [xml]('<?xml version="1.0"?><File>${home}\ntuser.dat</File>')
Test-Path $a.File
XML の値は、
"${home}\ntuser.dat" こうじゃなくて
'${home}\ntuser.dat' というふうに格納されてるようなんだけど、変数を展開するにはどうすればいいだろう?
972:デフォルトの名無しさん
19/11/02 12:34:23.96 dF2n6ehk.net
invoke expression
973:デフォルトの名無しさん
19/11/02 13:07:31.37 esIitHWU.net
>>928
そりゃ ' ' で囲ってりゃ展開しないだろ…
$a = [xml]"<?xml version=""1.0""?><File>${home}\ntuser.dat</File>"
974:928
19/11/02 13:33:24.00 1PdjBp7d.net
>>929
できた、ありがとう。
>>930
>>928 のサ
975:ンプルの提示の仕方が悪かったが、実際には XML ファイルを読み込んでるので >>928 の形になります。
976:デフォルトの名無しさん
19/11/02 18:11:26.52 71SUtLbe.net
Powershellの演算子の優先順位が判るサイトが見当たらないんですがどっかにないですかね
演算子をカテゴリ毎に紹介してるサイトは多く見かけるんですが
977:デフォルトの名無しさん
19/11/02 20:16:26.21 0WeT0cpY.net
URLリンク(docs.microsoft.com)
978:デフォルトの名無しさん
19/11/03 02:57:41.69 hkCRv+PE.net
>>933
ありがとうございます!助かりました!
979:デフォルトの名無しさん
19/11/03 03:32:58.98 Y1hBQ+8z.net
どういたしまして!
980:デフォルトの名無しさん
19/11/05 23:35:55.67 ocMK86pm.net
m(_ _)m誰か教えて下さい。
フォーム上にコンボボックスを大量配置したいのですが、一つずつ以下みたいに書くと大変です。
これを関数化する方法を教えて下さい。
$Combo = New-Object System.Windows.Forms.Combobox
$Combo.Location = New-Object System.Drawing.Point(10,10)
$Combo.size = New-Object System.Drawing.Size(150,30)
981:デフォルトの名無しさん
19/11/06 02:58:52 +N82MWJ/.net
>>936
普通に$comboを返す関数を作ればいい
winforms書く時は使えるバージョンならusing namespaceを使った方がすっきりする
個人的にNew-Objectは遅いだけなのでなるべく使わない
暗黙の型変換を積極的に使うとすっきりする
using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms
function Create-ComboBox($Left, $Top, $Width, $Height) {
$combo = [ComboBox]::new()
$combo.Location = "$Left, $Top"
$combo.size = "$Width, $Height"
$combo
}
$form = [Form]::new()
$form.Size = "200,200"
$combo1 = Create-ComboBox -Left 10 -Top 50 -Width 160 -Height 30
$form.Controls.Add($combo1)
$form.ShowDialog()
982:デフォルトの名無しさん
19/11/06 05:18:39 +Isovp9U.net
x.Size="1,2"
こういう書き方できるの知らんかった
983:936
19/11/06 11:38:21.31 viRYf3W9.net
>>937
大変ありがとうございました。助かりました。
なおWin7環境なのでusing...はカットして使ってます。
984:デフォルトの名無しさん
19/11/06 19:25:34.62 du9DeY6n.net
>>939
5.0以上にアップグレードすればWin7でも使えるんじゃないの?インストール不可なだめだけど
985:936
19/11/08 09:54:16.57 RMGDBEVY.net
緊急でお願いします。マルチバイト文字のパディングのやり方を教えて下さい。サンプルコードがあると嬉しいです。
986:デフォルトの名無しさん
19/11/08 10:20:36.03 weGpRZzk.net
入力と出力のサンプル位出したら
987:デフォルトの名無しさん
19/11/08 10:20:37.27 bpFYbH+Z.net
うっかり bash と間違えて ctrl+R と打ってしまったんだけど、PowerShel でも同じように機能したんだな。
軽く感動したわ。
988:デフォルトの名無しさん
19/11/08 10:41:43.51 wfK2aVsO.net
ctrl + Alt + shift + /
でショートカット一覧が出るからざっと見ておくといいよ
989:デフォルトの名無しさん
19/11/08 11:47:48.53 bt2cbsd4.net
PowerShellにディレクトリ、ファイル名以外の
補完機能ってあるの?
990:デフォルトの名無しさん
19/11/08 12:27:29.71 CJ6EXBGx.net
>>945
オプションとかオプションの値が選択肢ならそれも補完する
ユーザーが作ったコマンドでも補完できるから地味に便利
991:デフォルトの名無しさん
19/11/08 14:17:43.58 bpFYbH+Z.net
>>944
なんと、超便利!
あ�
992:閧ェとう!
993:デフォルトの名無しさん
19/11/08 14:41:45.11 wfK2aVsO.net
ついでに以下のコマンドで画面だしとけばチートシートになるよ
Get-PSReadLineKeyHandler | ogv
994:デフォルトの名無しさん
19/11/08 17:13:11.44 bpFYbH+Z.net
>>948
「俺専用PowerShellアンチョコ.txt」に記録した。重ね重ねありがとう。
995:デフォルトの名無しさん
19/11/09 17:39:02.10 LvjWth2U.net
powershellで海外にアクセスできないように設定できますか?
996:デフォルトの名無しさん
19/11/09 17:42:01.74 FbsqDOHf.net
海外とは
997:デフォルトの名無しさん
19/11/10 05:11:31 47iDVxCF.net
そういやweb鯖のサンプルがあったな
ピロキシぐらい作れるよな
998:デフォルトの名無しさん
19/11/10 16:21:24.11 LxY6Tlm9.net
海外鯖を経由しない通信にしたい。
それか海外からの通信をファイアウォールで
全部ブロックしたい。
って考えたらhostsしかないかな?
めんどくさいな。
999:デフォルトの名無しさん
19/11/10 16:35:30.22 z3CQn4/q.net
自分ですべての経路把握する必要あるし無理じゃね?
1000:デフォルトの名無しさん
19/11/10 17:15:59.31 iyIsn8nz.net
>>953
曖昧すぎてアドバイスのしようがないな
1001:デフォルトの名無しさん
19/11/10 17:17:57.36 uhrgfz89.net
hostsに一体いくつ「海外」とやらのホストを指定するのやら
OS側でやるのが適当なのかそれ
業務用なのか個人用なのかもわからん
1002:デフォルトの名無しさん
19/11/10 17:54:04.00 otD8Z0ZU.net
windows updateも海外なのか?
1003:デフォルトの名無しさん
19/11/10 20:34:29.07 LxY6Tlm9.net
すみませんでした。そうなるとなんかややこしくなりそうなのでやめます。
ブラウザの拡張でやりますわ。
ありがとうございました。
1004:デフォルトの名無しさん
19/11/11 08:27:46.29 //Nnw6zP.net
Windows PowerShell を使用した高度なセキュリティ管理を使用する windows Defender ファイアウォール
URLリンク(docs.microsoft.com)
1005:デフォルトの名無しさん
19/11/11 17:18:43.20 WYwNeQAp.net
ありがとうございました。
1006:デフォルトの名無しさん
19/11/18 08:47:59.75 604fXs7f.net
タブストップ中コンボボックスの文字の背景色を青ではなく薄水色にしたいのですが、やり方がわかりません。ご存知の方、よろしくお願い申し上げます。
1007:自己レス
19/11/18 12:09:14.04 604fXs7f.net
>>961
URLリンク(stackoverflow.com)
1008:デフォルトの名無しさん
19/11/18 15:09:03.25 Crm1ovkb.net
test 452452424524524
1009:デフォルトの名無しさん
19/11/18 15:10:33.45 Crm1ovkb.net
Windows 10 に標準搭載された OpenSSH と PowerShell の機能だけを使用して、公開鍵をサーバにアップロードしたいと考えています。
(ssh-copy-id は shell スクリプトなので Windows 版の OpenSSH には含まれていない)
1010:デフォルトの名無しさん
19/11/18 15:11:33.77 Crm1ovkb.net
調べた結果、まず以下のコマンドが cmd.exe 上では完璧に動作することを確認しました。
※元のコードを貼ると 403 Forbidden となるので Pastebin を使ってます
URLリンク(pastebin.com)
これを以下の通り PowerShel に置き換えました。
URLリンク(pastebin.com)
一応、公開鍵のアップロードまでは出来たんですけど、ssh.exe のプロセスが終了しません。
(wait = $true にした場合はプロンプトが返ってこない)
何が悪いんでしょうね。
1011:デフォルトの名無しさん
19/11/18 15:15:42.87 Crm1ovkb.net
追伸:CloudFlare で 403 Forbidden になってたのはレスに cmd.exe という文字列が含まれいたのが原因のようです。コードは関係なかったっぽい。
1012:デフォルトの名無しさん
2019/1
1013:1/18(月) 15:35:44.61 ID:Crm1ovkb.net
1014:デフォルトの名無しさん
19/11/18 16:07:26.07 Crm1ovkb.net
何度もすみません、自己レス。
パイプならよかろう、ということで以下の3パターンで試したところ、ssh.exe は正しく終了するようになったのですが、authorized_keys には CL+LF が追加されてしまいました。
$PubKey = Get-Content "${home}\.ssh\id_rsa.pub"
Write-Output $PubKey -NoEnumerate | ssh root@${DST} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"
Out-String -InputObject $PubKey | ssh root@${DST} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"
type "${home}\.ssh\id_rsa.pub" | ssh root@${DST} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"
最終的に、これで妥協しました。ダサい。もっとスマートな書き方はないものだろうか。
URLリンク(pastebin.com)
1015:デフォルトの名無しさん
19/11/18 16:13:01.04 Crm1ovkb.net
ごめんなさい、標準入力では ssh.exe が終了しない原因が分かりました。
sshkeygen で生成された id_rsa.pub は、行末で改行していないためでした。
エディタで開いて改行させたところ、
URLリンク(pastebin.com)
これでも動作しました。
お騒がせしました。
1016:デフォルトの名無しさん
19/11/19 00:02:22.77 rlpD1oBO.net
参考になった ありがとう
1017:デフォルトの名無しさん
19/11/20 13:28:40.93 aW1lygKI.net
どういたしまして
1018:デフォルトの名無しさん
19/11/24 16:11:02.22 UhvIpOa2.net
Get-ChildItemで困っている事があります。
解決方法を知っている方がいましたら教えてください。
*.txt *.bin
などの拡張子を持つファイルを一括して集める場合
$result = Get-ChildItem *.txt,*.bin
とすれば集まりますが
hoge,hage.txt
というファイル名に、 ',' が含まれているファイル名があると、 *.txt,*.bin のようなセパレーターとして認識してしまい
ワイルドカードにヒットするbase nameが hoge までになってしまい$resultに値が入ってきません。
','などのセパレーターを含むファイル名を Get-ChildItem でワイルドカード指定するにはどうすればよいでしょうか?
1019:デフォルトの名無しさん
19/11/24 16:29:56.73 E4b/CXSq.net
>>972
何をしたいのかいまいちよくわからんがとりあえず
Get-ChildItem 'hoge,hage.*', '*.txt'
とかでいいんじゃね?
1020:デフォルトの名無しさん
19/11/24 20:06:33.13 JDFz9pDe.net
うちはGet-ChildItem *.txt,*.binで引っかかるけど
dir *.txt,*.bin | ?{ $_.Name -like "h*"}でフィルタして確認してみれば?
1021:デフォルトの名無しさん
19/11/28 17:33:57.96 G1SJ/xZS.net
スクリプトで
VPNセッションを張って、opensshでLinuxサーバーにログインしたいんですが、クレデンシャル情報ってどう引き渡せば良いですか?
1022:デフォルトの名無しさん
19/11/28 17:35:59.16 KHBZf3ql.net
どこのクレデンシャル情報を、どこに渡すんです?
1023:デフォルトの名無しさん
19/11/28 17:40:45.55 G1SJ/xZS.net
>>976
ssh、vpnのコマンドにです
1024:デフォルトの名無しさん
19/11/28 17:41:50.79 KHBZf3ql.net
そのクレデンシャル情報には何が書かれてるんです?
1025:デフォルトの名無しさん
19/11/28 17:42:46.64 KHBZf3ql.net
ssh、vpnにクレデンシャル情報を渡すとどうなるんです?
どうなるように設定したんですか?
1026:デフォルトの名無しさん
19/11/28 18:10:58.12 G1SJ/xZS.net
すいません。
ここで聞いたのが間違いでした。
Linuxサーバーにログインしたいと書いてあるのにどうしたいと言われても困りますので。
では。
1027:デフォルトの名無しさん
19/11/28 18:17:16.35 KHBZf3ql.net
だからログインできるようにLinuxサーバーに設定したんですか?
1028:デフォルトの名無しさん
19/11/28 19:03:26.14 o2XGBpkX.net
VPN関係あるの?
ssh -i 秘密キーファイル ユーザー名
という外部コマンドの呼び出し方を聞いてる�
1029:フ?
1030:デフォルトの名無しさん
19/12/18 06:19:20.47 DPpTEq4j.net
ちょっと気づいたのでメモ
ハッシュテーブルからいろいろな型にキャストするのがわりといろんな場面で使える
例えば>>936は次のように書ける
using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms
$form = [Form]@{ Size = "200,200" }
$combo = [ComboBox]@{ Location = "10,50"; Size = "160,30" }
$form.Controls.Add($combo)
$form.ShowDialog()
もし"200,200"ってのが気持ち悪いならさらに
$form = [Form]@{ Size = @{ Width = 200; Height = 200 } }
としてもいい
1031:デフォルトの名無しさん
19/12/18 06:21:03.31 DPpTEq4j.net
すまん>>936じゃなくて>>937だったわ
1032:デフォルトの名無しさん
19/12/18 23:38:33.69 kDyrT7eN.net
キャストでオブジェクト生成か
理屈は判るけどキモイな
1033:デフォルトの名無しさん
19/12/19 21:20:43.94 A7bzsjq6.net
C#のオブジェクト初期化子みたいなものだと思えばいいかも
1034:デフォルトの名無しさん
19/12/31 07:16:04.44 xfr0s5Fj.net
怒らないで教えて欲しいんだが
WSLでよくね?
1035:デフォルトの名無しさん
19/12/31 07:38:32.37 Ttaqvt+E.net
いや誰もPowerShellを万能の利器とは考えてない
適材適所
1036:デフォルトの名無しさん
19/12/31 09:49:11.63 ZmMnRfLg.net
>>987
それに答えるためには、お前が何をしたいのかを聞く必要がある
1037:デフォルトの名無しさん
19/12/31 09:53:59.69 vL9iUG+A.net
WSL使うなら最初からLinuxをインストールして使えばいい
1038:デフォルトの名無しさん
19/12/31 21:14:44.78 wxhVB0za.net
WSLていうかUNIXシェルでいいなら、なんでLinuxユーザーがわざわざPowerShellを使ってると思うの?
URLリンク(msit.powerbi.com)
1039:portSection5
1040:デフォルトの名無しさん
19/12/31 21:26:22.98 4NGA+Zr1.net
>>991
知らない教えて
1041:デフォルトの名無しさん
19/12/31 21:58:25.71 ajjU1twk.net
事情があって嫌々ながらLinux使わざるをえないWindowsユーザーがPowershell採用してる
1042:デフォルトの名無しさん
19/12/31 22:01:43.89 FiZAbpfr.net
PowerShellのほうが強力だしな
1043:デフォルトの名無しさん
20/01/01 08:33:54.15 KGLKi7tz.net
そろそろ Ruby ガイジが出てくる頃かな?
1044:デフォルトの名無しさん
20/01/01 13:06:34.59 voSHdO49.net
rubyくんが出るのは、スクリプトを作れるような質問が出たときだろ
1045:デフォルトの名無しさん
20/01/01 15:19:12.54 IT8L/q0G.net
h
1046:デフォルトの名無しさん
20/01/01 15:19:29.24 IT8L/q0G.net
t
1047:デフォルトの名無しさん
20/01/01 15:19:45.39 IT8L/q0G.net
l
1048:小倉優子
20/01/01 15:20:34.34 IT8L/q0G.net
∧,,,∧
( ・∀・) 1000ならジュースでも飲むか
( )
し─J
1049:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 448日 21時間 33分 46秒
1050:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています