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/
802 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 00:06:00.19 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 00:15:38.74 ID:4oEGaRbg.net] >>769 お前は出てこなくていい
804 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 08:18:26.56 ID:vD0MLvXn.net] >>769 将来性のないプログラミング言語5選として「Ruby」が挙がり話題に https://it.srad.jp/story/19/08/09/185229/
805 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 22:05:00.38 ID:aNJOLvna.net] WindowsでRuby使うとかギャグだろ
806 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 23:45:41.47 ID:6VXOyYrl.net] RubyがギャグならPythonは?
807 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 00:23:10.44 ID:S2+8M2EA.net] PythonはAIプログラミングで一躍有名になったね
808 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 08:18:30.85 ID:trDWBWGh.net] >>773 Visual Studio が対応してるし、.NET Framework 上で動く IronPython なんてのがあるくらいだから「アリ」だろうな。
809 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 15:46:07.95 ID:OusQ3pFE.net] Windows版のPythonは結構ちゃんと動くし、Python製のGUIアプリもDropboxとかたまにある WindowsのRubyは非推奨の流れで、WSL使うか仮想環境のLinux使うか
810 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 21:28:48.24 ID:n/ZUSiaV.net] 昔、七行プログラミングってあったけど、 PowerShellなら7行ですごいことできるよね
811 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 01:22:08.40 ID:kPbBL5c4.net] csvファイル内の特定セル?(エクセルでいうところのcells(1,2)みたいな)を変数に格納して、 そのファイルのファイル名にしたいのですが、こういったことはできますか?
812 名前:778 mailto:sage [2019/08/24(土) 01:39:25.56 ID:kPbBL5c4.net] できました。import-csvから要素の取り出しをするだけでした。
813 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 04:00:34.51 ID:yeIOnWDr.net] パイプラインにオブジェクトが流れるPowerShellライクな新シェル Nu Shell https://github.com/nushell/nushell
814 名前:デフォルトの名無しさん [2019/08/26(月) 07:51:25.55 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 08:31:04.34 ID:sAEBXghq.net] >>781 Get-Command -CommandType Application notepad は試した
816 名前:? [] [ここ壊れてます]
817 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 14:58:24.63 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 15:00:01.45 ID:R1/Rmq9c.net] >>782 Get-Command notepad -all でも良いんじゃないかな
819 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 15:10:26.74 ID:JMmOsJb3.net] Why are there two copies of Notepad? https://devblogs.microsoft.com/oldnewthing/20060328-17/?p=31753
820 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 15:27:38.53 ID:j8vvMRg5.net] >>783 独特の文体からして、この板で有名なRuby君かと思われる。話の流れと無関係にRuby推ししてきたり、頓珍漢な知識披露(間違い多数)をしてきたりする奴だから、相手するだけ無駄だよ。 おそらく、ぼくこんなこと気づいたんだよ!って嬉しくて書かずにいられなかっただけだと思う。
821 名前: mailto:sage [2019/08/26(月) 19:23:25.35 ID:jPNtTojU.net] >>786 >話の流れと無関係にRuby推ししてきたり ステキじゃないですか、この前も C/C++ スレに乱入していましたね、これからも頑張って ruby を喧伝してほしいです!
822 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 01:45:40.61 ID:OLaosybt.net] DOSメインでPSでしかできない部分だけPSにしてるのをやめて、PS一本化を増やそうかと思い立ったが そういやDOSからキックしないと動かないのであった というわけでやはりDOSメイン
823 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 01:49:02.45 ID:OLaosybt.net] なんでそんな仕様にしたんだろうね かといってPS直でやりたいというより、DOSを拡張して欲しかった
824 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 02:31:00.22 ID:AUeyxvTx.net] まだDOSなんて使ってんの
825 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 17:41:47.14 ID:DT/yO98c.net] なんでps1てへんてこな拡張子なの
826 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 18:06:41.10 ID:JlFv53u2.net] どっかのゲーム機みたいにPowerShell 2, PowerShell 3, …って作るんじゃね?w
827 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 21:28:53.53 ID:2r3hz+dJ.net] >>791 PowerShell の ps1 ファイルは 何故 1なのか https://tech.guitarrapc.com/entry/2013/09/06/220944
828 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 02:40:35.65 ID:tqyYzyWN.net] 考え無しに作った結果か・・・
829 名前:デフォルトの名無しさん [2019/08/29(木) 03:16:31.66 ID:RYMiansx.net] 基本的なことが分かってない気がするのだけど教えてください get-date, get-childitem, get-location といったコマンドレットの代わりに get 無しで date, childitem, location と入力しても同じ結果になる これら get 無しコマンドは get 付きのエイリアスなのか? と最初は思ったのだけど そんなエイリアスはないと言われる これらの get 無しコマンド(?) はどういう立ち位置なんでそ? ちなみに例えば location.bat とかを PATH の通った場所に置いておくと そっちが実行されるので、これらは
830 名前:Tーチパスより優先度が低いようです [] [ここ壊れてます]
831 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 04:05:52.42 ID:TR1/uwdi.net] >>795 基本的なことはここにまとまってる https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_command_precedence?view=powershell-6#qualified-names 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 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 04:22:51.28 ID:RYMiansx.net] >>796 明快な回答ありがとうございます > Trace-Command CommandDiscovery { date } -PSHost これ勉強になりました
833 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 19:25:49.72 ID:+UUfxV7s.net] 初心者で右も左もわからない状況で申し訳無いのですが、 明示的に設定してる共有ディレクトリとアクセス権を一括で出力ってできたりするんですかね? Get-wmiobject -class win32_share だとアクセス権までは出力されなかったんで... 詳しい方教えて頂きたいです。
834 名前:デフォルトの名無しさん [2019/08/30(金) 00:19:55.56 ID:kVpvpBih.net] 「powershell アクセス権限 確認」で検索! こんな感じ? ls | Get-ACL
835 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 10:55:43.01 ID:uzgqDeg8.net] >>799 ありがとうございます。 検索してみます。 PowerShellはほんとに難しいです...
836 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 17:24:06.26 ID:LE0BBPZ5.net] ふぁあああ・・・・ 解決してよかったよぉお ハロー優しい世界、だねええええ^^
837 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 01:23:05.71 ID:SOW3zbb3.net] Set-ACLは使うな
838 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 06:28:56.33 ID:jlJXcZnh.net] >>802 替わりに何を使ったら良いですか?
839 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 06:44:55.31 ID:jb/JoUUS.net] >>802 why?
840 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 10:39:33.44 ID:sSufJvsQ.net] >>804 俺は >>802 ではないが、Set-Acl は使いづらい。 そもそもの理由は Windows の ACL (ACE) が複雑だからなのだが、対象にセットする ACL オブジェクトを作るのが分かりづらい。 例:All Users のスタートメニューのアクセス権を変更し、一般ユーザにも書き換えられるようにする場合(既存の権限に追加) https://pastebin.com/R3JBWF2h 他のフォルダなどから ACL オブジェクトをコピーし、それをそのままターゲットに適用するだけなら簡単なのだけど。 >>803 「何が何でもすべて PS でやる!」 というポリシーでないのなら、cscls.exe、icacls.exe のほうがお手軽。
841 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 10:48:02.60 ID:jlJXcZnh.net] >>802 に答えて欲しいな
842 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 11:08:11.46 ID:sSufJvsQ.net] >>806 ごめんね
843 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 15:10:43.76 ID:SOW3zbb3.net] >>802 だけどSet-ACLは所有権絡みで問題抱えてる 下サイトで説明されてる https://qiita.com/carbonss/items/cc6d33fe6645a86171ad
844 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 15:12:47.14 ID:SOW3zbb3.net] あ、>>803 への答えはicaclsコマンド使えね powershellは変な仕様あるから割と警戒した方がいい
845 名前:デフォルトの名無しさん mailto:sage [2019/09/08(日) 20:21:13.64 ID:d6DJW1MN.net] F:/ に SDカードがマウント
846 名前:ウれているのを アンマウントするコマンドは何ですか? [] [ここ壊れてます]
847 名前:デフォルトの名無しさん mailto:sage [2019/09/08(日) 21:55:23.61 ID:D+CIKcq7.net] >>810 (New-Object -comObject Shell.Application).Namespace(17).ParseName('F:').Verbs()|?{$_.Name -match '取り出し'}|%{$_.Doit()}
848 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 16:38:34.04 ID:8EKyQA8Q.net] >>811 thanks
849 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 21:38:04.40 ID:Eo4YqZPr.net] ■C:\hoge.txtの内容 aaa bbb bbb bbb ccc ccc ccc ccc ccc ↑のようなテキストファイルがある場合に、↓の結果(タブ区切り)を得るにはどうすれば良いのでしょうか? aaa 1 bbb 3 ccc 5
850 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 22:19:37.38 ID:L5QX1JAH.net] >>813 Group-Object
851 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 22:36:34.85 ID:hrOpSOVs.net] 頼むから順不同なのかそうじゃないのか 書いてから質問してくれ
852 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 23:28:19.24 ID:Eo4YqZPr.net] >>814 gc C:\hoge.txt | Group-Object などとやってみたのですがうまく動かず… >>815 ソート済みです><
853 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 23:30:43.39 ID:L5QX1JAH.net] >>816 上手く動かずじゃよくわからんからどういう出力なのか書いて エラーになるの?
854 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 00:05:23.05 ID:TMos3buL.net] あータブ区切りの文字列にしたいんか gc hoge.txt | group | foreach { $_.name,$_.count -join "`t" }
855 名前:816 mailto:sage [2019/09/12(木) 00:24:07.29 ID:W/V8jwbc.net] >>818 ★★★★★ ありがとうございます! 実はまだ試せてないのですが、期待を込めて★5つです!(^_^)
856 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 10:44:16.82 ID:W/V8jwbc.net] >>805 icaclsってps1ファイル内でも普通に呼出せるのね ps1→bat→icaclsみたいに呼出さなきゃならないのかと思った コマンドというより単なるexeってことか
857 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 13:07:06.37 ID:9SxJRVV0.net] これからは>>819 みたいに★で評価しよう ★☆☆☆☆ クソレス ★★★★★ 問題解消
858 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 14:46:18.96 ID:pQlsfVOK.net] ふーむ、アホがアホに同調するアホな好例だな、アホすぎてオレにはよく分らんのだが、アホだということは分かる アホA「ありがとうございます! まだ試していないけど! ★5つです!(^_^)」 アホB「・・これは良い! これからは★で評価しよう!」 ボク「・・いやいや、まだ試してもいないのだから評価もくそもねーだろ、★2〜3の定義もねーし、こいつらアホの極みだな」
859 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 14:53:12.75 ID:j3ZoG8EK.net] >>822 ★
860 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 17:51:47.62 ID:TUHPbFV0.net] >>822 これが噂のヤラセレビューってやつか?
861 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 18:29:54.11 ID:5CMOpd/7.net] >>822 ☆
862 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 19:50:41.33 ID:igJ/H+nC.net] icaclsとか括弧を多用するコマンドはエスケープうざいですね ヒアドキュメントみたいな感じでスマートに書けませんか
863 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 20:13:01.19 ID:Vx47yrR/.net] PowerShellで非同期処理って酷く書きづらいと思ってるんだが、こんなもんなんか? 変数を渡すのにめっちゃ苦労したんだが…
864 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 21:35:11.86 ID:3ZdspPUD.net] 具体的にはどんなコードを書いたの?
865 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 21:49:24.82 ID:Vx47yrR/.net] あまりにもニッチな製品の負荷テスト用スクリプトだから具体的には言えないが、平たく言えば自作関数とWin標準コマンドを引数変えながら並列投入するだけ bashと比べちゃ駄目なんだろうが、スクリプト書いててキレそうになったのは久
866 名前:しぶりだわ [] [ここ壊れてます]
867 名前:デフォルトの名無しさん [2019/09/13(金) 23:05:20.75 ID:ha69B7nJ.net] runspaceでやってるのかjobでやってるのか
868 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 01:25:26.61 ID:XbAlqDVd.net] そんな苦労するもんだっけか
869 名前:デフォルトの名無しさん [2019/09/14(土) 01:53:38.89 ID:ogAZWftq.net] runspaceの中で親スコープで宣言した関数を(特に書き換えずに)呼ぼうとするとややこしい ちょっとggって出てくる方法だと面倒 https://devblogs.microsoft.com/scripting/powertip-add-custom-function-to-runspace-pool/ 解決策:まとめて文字列にして渡す # 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 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 01:55:28.35 ID:ogAZWftq.net] $ps.EndInvoke($result) だわ
871 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 20:16:09.07 ID:atxyCPua.net] 変数じゃねーじゃねーか!
872 名前:デフォルトの名無しさん [2019/09/14(土) 20:31:39.96 ID:jbpc8Cnk.net] 連想配列にして渡そうぜ https://devblogs.microsoft.com/scripting/beginning-use-of-powershell-runspaces-part-2/
873 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 20:49:09.80 ID:atxyCPua.net] 渡したかったのは関数だって言ってんじゃねーか!
874 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 21:11:58.91 ID:ogAZWftq.net] >>836 >>832 のスクリプトブロック内のInvoke-Expressionをした時点で渡した関数(というか親スコープの関数全部)使える 特定の関数にしたかったら$function:関数名.Ast.ToString()で必要分を配列に突っ込んで渡してiexするだけや
875 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 22:03:58.44 ID:atxyCPua.net] psm1にまとめて読み込んだほうが楽そう…
876 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 22:24:21.00 ID:Tzf8a7mL.net] うむ
877 名前:デフォルトの名無しさん [2019/09/15(日) 15:45:03.86 ID: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 名前:デフォルトの名無しさん [2019/09/15(日) 17:42:03.16 ID:tc+PQ4bB.net] 5.1から4.0に戻さないと日本語でいろいろ書いてくれないからわからないんです… どうやって戻したらいいんでしょうか…(´・ω・`)
879 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 18:02:21.21 ID:LMFjfaUx.net] どういうこと(´・ω・`)
880 名前:デフォルトの名無しさん [2019/09/15(日) 19:37:50.46 ID:tc+PQ4bB.net] (´・ω・`)すみません自己解決しました 更新プログラムの一部を削除したら望む結果が得られました お騒がせしました
881 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 20:17:50.41 ID:aATf+6N9.net] WMF 5 に上げるとUIの表示が英語になるやつかねたぶん
882 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 20:48:36.32 ID:ORV+CvDJ.net] win7pcのPSを5.1にした時に日本語化探したけどわかんなかったから詳しく書いてほしかった感
883 名前:デフォルトの名無しさん [2019/09/15(日) 22:28:51.53 ID:tc+PQ4bB.net] >>844 たぶん
884 名前:それですお騒がせしました これから精進していきます [] [ここ壊れてます]
885 名前:デフォルトの名無しさん [2019/09/15(日) 22:30:29.90 ID:tc+PQ4bB.net] >>845 ざっくり言うと コントロールパネルからプログラムと機能に行って インストールされた更新プログラムの項目を開いて WMF5をアンインストールしたという流れです
886 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 09:25:06.97 ID:jcGpm5QT.net] v6.1.6 https://github.com/PowerShell/PowerShell/releases/tag/v6.1.6 v6.2.3 https://github.com/PowerShell/PowerShell/releases/tag/v6.2.3
887 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 12:47:39.59 ID:iUGh13ZQ.net] バッチファイルでいう、 echo %errorlevel% はパワーシェルではどうやればいいんでしょうか?
888 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 14:54:54.64 ID:nNyCwAkD.net] echo $LASTEXITCODE
889 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 16:12:06.99 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 18:10:16.40 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 22:41:23.65 ID:CUAPT5Qo.net] NewNameにスクリプトブロック渡せるんだ %{〜}の中で整形して渡す発想しかなかった
892 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 22:54:01.34 ID:GUxJcSSn.net] DIRとって一つずつ条件に合致するオブジェジェクトをパイプ渡しするだけだよ
893 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 23:39:14.69 ID:mK3aarjp.net] >>853 Delay Bindingっていって以下の条件を満たすパラメータにスクリプトブロックを渡すと パイプラインから値が入ってくる度にパラメータの値を評価してくれる ・ ByValue, ByPropertyName属性が付加されてること ・ 型が明示的に指定されてること(ただし[scriptblock]または[object]以外)
894 名前:デフォルトの名無しさん mailto:sage [2019/09/24(火) 10:08:27.83 ID:hYZHYmb1.net] >>852 横だけど、すごく参考になった。ありがとう。
895 名前:851 mailto:sage [2019/09/24(火) 15:33:38.23 ID:SPmBMSDI.net] >>852 やりたいことが出来ました。ありがとう!
896 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 10:57:26.88 ID:E/zWVp/e.net] PowerShell って、「Shell」と一括にされてるんだっけ? The Top Programming Languages 2019 https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2019
897 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 20:24:06.99 ID:idiO5sU0.net] 素のCが3位とかだから老害向けランキングでしょ
898 名前:デフォルトの名無しさん mailto:sage [2019/10/14(月) 15:09:43.96 ID:WeKpLulI.net] LL言語入門で有名なM.Hiroiさんは なんでpowershellにかたくなに手を出さんのかと思ってたけど bashとかシェルスクリプト方面は全く手を付けてないので納得 今はまさかのtcltkのページを更新中というマイペースぶり
899 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 22:39:49.38 ID:xAr/pqiO.net] 3位PowerShellってマジかよ ガチ調査版::2019年
900 名前:プログラミング言語 求人人気ランキング https://qiita.com/bitai/items/c8941da683ebedd135fd [] [ここ壊れてます]
901 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 07:15:39.57 ID:4jedgKvl.net] >>861 決め方テキトーだからあてにならんよ
902 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 08:54:10.32 ID:1cyp8e5C.net] >>861 開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。 求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは 後者じゃないかと推測。 Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が いくつかあるから、そういう案件もカウントされてるかもしれない。 自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。
903 名前:デフォルトの名無しさん [2019/10/27(日) 10:53:22.24 ID:NsKzBf3L.net] 詳しい方、教えて下さい! シェバン記法でバッチファイル化して実行したいのですが、自スクリプトパスを取得する方法がわかりません。 誰か教えて下さい。
904 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 10:58:27.15 ID:Lik42TLZ.net] PowerShell、起動が遅いのがなー なんとかならんかなー
905 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 11:38:43.07 ID:7LOf++Wk.net] シェバン記法てなぁに?
906 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 11:42:15.29 ID:NsKzBf3L.net] >>866 以下を頭につけて拡張子を.batにするとダブルクリック実行できるようになるという記法のことです。 @powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
907 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 11:47:16.24 ID:7LOf++Wk.net] ありがと
908 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 11:48:06.40 ID:hJUpCTqv.net] Ruby では、__FILE__ が現在評価中のスクリプトファイル名 シェバンは、Linux では、 #!/usr/bin/ruby Windows に、シェバンってあるの? .bat に、ruby .\script.rb と書いて、ダブルクリックで起動したりする事はあるけど .vbs でも、起動ファイルを作れる
909 名前:869 mailto:sage [2019/10/27(日) 11:52:51.51 ID:hJUpCTqv.net] .bat に、powershell .\script.ps1 と書けば、ダブルクリックで起動できないか? または、.vbs に、 CreateObject("WScript.Shell").Run "powershell .\script.ps1", 0
910 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 12:06:15.48 ID:NsKzBf3L.net] >>869 その方法だとファイルが2つになってしまうでしょう? 一つが良いんです。
911 名前:869 mailto:sage [2019/10/27(日) 12:21:42.69 ID:hJUpCTqv.net] よく知らないけど、powershell は、ダブルクリックで起動するような、 危険なことは出来ないのじゃないか?
912 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 12:38:31.80 ID:pI9qWgY0.net] >>872 バッチやvbsならダブルクリックも安全だとおっしゃるのでしょうか?
913 名前:869 mailto:sage [2019/10/27(日) 12:54:36.77 ID:hJUpCTqv.net] ダブルクリックで起動するのは、危険! あくまで、個人用途 仕事ではやらない方が良い。 危険すぎる
914 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 12:57:45.64 ID:gYi3Gz62.net] スクリプトのパスなら$MyInvocation.MyCommand.Path
915 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 13:07:05.42 ID:hKAQ6fM+.net] >>873 そのとおり
916 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 13:40:21.93 ID:Lik42TLZ.net] >>874 ダブルクリックで起動するのは危険だから コマンドラインから起動してください。 危険なコードでもコマンドラインから起動すれば、安全です。 こうですか?
917 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 13:50:19.81 ID:NsKzBf3L.net] >>874 どう危険なのですか?顧客提供して不特定多数が使うわけでもないのに何が危険なのですか? >>875 シェバンした場合、それだと動作しません。 >>876 なぜ?
918 名前:869 mailto:sage [2019/10/27(日) 14:01:18.04 ID:hJUpCTqv.net] ダブルクリックで起動するのは、危険! ファイルをちょっと触っただけでも、 ダブルクリックになって起動起動されてしまうから、Microsoft も禁止してる!
919 名前:Linux のシェバンでも、 ファイル名だけじゃ起動できないようにしてるだろ ./ファイル名 みたいに、パス付きじゃないと起動しないようにしてる これも、ファイル名だけでリターンキーを触ってしまうと、起動されてしまって危険だから! ダブルクリック起動では、多くの被害者が出てる [] [ここ壊れてます]
920 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 14:05:08.75 ID:v/8cx3Zl.net] vbsはファイルを全部パースしようとするからシェバン記法は使えないな
921 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 14:05:49.29 ID:Lik42TLZ.net] ダブルクリックは危険! ファイルをクリックしただけで起動しちゃう! エクスプローラーからファイルをクリックできない 全部開いちゃう! こうですか?
922 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 14:06:46.38 ID:v/8cx3Zl.net] 危険はexeでもバッチでも同じだろうに powershellスクリプトだけを危険とする理由はない
923 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 14:13:43.83 ID:Lik42TLZ.net] バッチファイルは危険じゃない! APIが使えない。PowerShellスクリプトは何でもできる! バッチファイルは他のスクリプトを呼び出すぐらいしかできない! こうなるんですかね?
924 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 14:22:52.49 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 14:26:31.81 ID:vcUKQgsd.net] >>865 PC買いかえろよ…
926 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 14:31:11.79 ID:vcUKQgsd.net] >>878 > シェバンした場合、それだと動作しません。 そりゃスクリプトを動的に作ってるんだからスクリプトファイルなんてないからね バッチファイルのパスを知りたいならバッチから引数で渡せばいいだけ
927 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 14:32:02.36 ID:v/8cx3Zl.net] マシン替えても相対的に速くなるだけで起動が遅いのは変わらないよ
928 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 14:57:41.64 ID:vcUKQgsd.net] >>887 何を言ってるんだ?w
929 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 15:18:23.27 ID:FsLuN3Ol.net] 前から気になってたんだがダブルクリックでps1が起動できない設計にどれだけのセキュリティの効能があるんだろな batの中にPSスクリプトを埋め込んで実行ポリシーも上書きできるなら実質batのセキュリティレベルまで落ちる batをメールに添付すると自動でフィルタリングされるけどps1なら安全だからフィルタされず拡張子を書き換える手間が省ける、というレベルの価値なのかな
930 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 15:40:44.98 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 15:41:31.49 ID:Lik42TLZ.net] >>885 お前はどれくらいの時間で実行できる? やってみてよ
932 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 15:46:43.24 ID:Lik42TLZ.net] ちなみに-NoProfileをつけても大差ない -NoProfileが無いから当然だが
933 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 15:47:02.36 ID:Lik42TLZ.net] × -NoProfileが無いから当然だが ○ Profileが無いから当然だが
934 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 15:50:55.08 ID:ho9vIROt.net] >>890 > これは遅すぎる。 ならPC買い換えろって言われてるだろ、馬鹿なの?
935 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 16:00:15.75 ID:Lik42TLZ.net] >>894 だからどれくらいのスペックを買えば良いのか お前のスペックとお前の実行時間を教えてくれと言ってるんだよ CPUを強化すれば速くなるのか?SSDを速くすれば良いのか?
936 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 16:37:26.26 ID:rrcAfXPk.net] >>895 遅いと思う感覚が人によって違うから他人に聞いてもしょうがないだろ そんなこともわからんのか?
937 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 16:42:00.99 ID:ElQsR2/N.net] >>896 だからどれくらい時間がかかるか聞いてるんだがw お前にとって遅いかどうかなんて聞いてねーよ
938 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 17:18:28.01 ID:cWrRHY0n.net] ColorTool を使わ
939 名前:ずに同等のことって出来ませんかね。客先のマシンなので入れられないんです。 powershell.exe から ssh で Linux につないでるんだけど、青と黒の色が似通ってて、すごく見づらいのをなんとかしたいです。 [] [ここ壊れてます]
940 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 17:20:23.02 ID:ElQsR2/N.net] プロパティから画面の色を変えるだけやろ?しらんけど
941 名前:898 mailto:sage [2019/10/27(日) 18:07:06.31 ID:cWrRHY0n.net] 解決したので自己レス。 とりあえず、これでだいぶマシになりました https://superuser.com/questions/1114549
942 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 19:03:23.84 ID:vcUKQgsd.net] >>897 日本語理解できないのか? お前がどんだけ時間が掛かっちゃ遅いと思うかなんてわからんし、その時間をなぜ俺が検証してやらんといかんのだよ 無能が甘えんなよw
943 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 19:07:32.81 ID:f+MCPxtM.net] Write-Hostは日本語環境だと遅いよ
944 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 21:04:44.37 ID:jAqyy8Vt.net] >>889 batファイルも外部からDLしたデータなら実行前に確認画面出るでしょ もちろん悪意のある内部犯なら無意味だけど
945 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 00:41:43.54 ID:T67vLNbE.net] >>903 出るでしょ、と言われてもそれ俺の疑問とズレてると思うんだが… その理屈だと、ネットワークから入手したときに警告が出るからbatもそれなりに安全 ps1も同じように警告が出るなら同じように安全 だったらダブルクリックで実行できない仕様にしたことにはあまり意味がなかった、という結論だと受け取って良い?
946 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 00:48:33.12 ID:ML+fUsJB.net] ダブルクリック実行が危険ってのは、オペレーション次第で意図しないタイミングで実行されるからだろ 別に実行されても問題ないタイプのものならいいけど ファイル削除系とか実行されたら何らかの情報が変化しちゃう系だと困るってことだよ あと、ダウンロードでフラグが立つのはNTFSに落とした場合のみでFATなら警告なしだよ
947 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 02:25:37.55 ID:bqlyCkZ6.net] 読み込むアセンブリを減らしたりして0.1秒減らした。 これでコマンド実行時間が0.45秒ぐらいになった。 でもPowerShellの起動時間0.3秒がやはり大きい ネイティブexeにすりゃいいんだろうけど、そうすると気軽じゃなくなるからな VBScriptでAPIが使えるならそっちのほうが速くなりそうだけど
948 名前:デフォルトの名無しさん [2019/10/28(月) 06:35:24 ID: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 mailto:sage [2019/10/28(月) 06:41:24 ID:kjzN6NI8.net] ただし、漏れはいつも、ノートPC を、 CPUを1つだけ使う、省エネモードにして使っている それで、コンパイルが遅いのかも?
950 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 08:13:17.35 ID:SMRk50Ri.net] >>904 ダブルクリックだけでは実行できなくなってるからいいんじゃない? さすがにFATは知らんけど
951 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 11:15:58.10 ID:tEsfLTI+.net] >>907 うわっ、マジか。そりゃきついな タイプして2秒はありえない。 VBScriptでの実装も考えてみたが難しいし こりゃもうCででも作るかな? でもCOM触るの面倒なんだよな。
952 名前:デフォルトの名無しさん [2019/10/28(月) 12:44:27.32 ID:tEsfLTI+.net] Windows Updateしたら大幅に下がったwww 今裏でなにかビルドしてるんかな? ngenとか?
953 名前:$ time powershell.exe -Command echo ok ok real 0m1.390s user 0m0.000s sys 0m0.016s [] [ここ壊れてます]
954 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 13:01:44.65 ID:tEsfLTI+.net] これやったけど速くならない(´・ω・`) https://stofublog.wordpress.com/2014/01/01/powershell%E8%B5%B7%E5%8B%95%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/ アップデート前まで速かったのに・・・
955 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 13:15:03.68 ID:tEsfLTI+.net] なにかやったような記憶をたどり、 https://superuser.com/questions/1212442/powershell-slow-starting-on-windows-10 . (Join-Path ([Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) ngen.exe) update ↑これをPowerShell(管理者)で実行したら速くなった。(もとに戻った) でも、一部指定されたファイルが見つかりません。とかエラーがでる。 よくわからんけど、このコマンドを実行してるだけ? C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe update
956 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 13:24:18.55 ID:tEsfLTI+.net] ここに情報があった。 https://blogs.msdn.microsoft.com/jpvsblog/2018/05/07/ngen/ v4.0.30319 というバージョンはいつ変わるんだろう?
957 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 13:28:19.78 ID:tEsfLTI+.net] Windows Updateしたせいかとも思ったけど、Visual Studio入れたからかもしれんな ともかく、ngen updateしたらもとに戻った。 しばらく放置してても治るんだろうけど
958 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 21:32:05.62 ID:WDVIXPLl.net] 強力そうなので始めてみたんだけど、たかが文字コード変換がなんで さらっとできないんだろう…
959 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 22:42:59.54 ID:8eaZgTeu.net] C#もどうせ遅いんだろ?と思ってやってみたら単純なHello Worldだと0.1秒程度だった PowerShellよりマシなのか。読み込むアセンブリで変わってくるとは思うけど C++だと0.05秒。圧倒的だが情報が少なすぎる。
960 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 22:43:45.66 ID:i5LGlrvW.net] PowerShellがあれば、文字コード変換も簡単です。 scripting.cocolog-nifty.com/blog/2010/01/powershell-6147.html
961 名前:デフォルトの名無しさん [2019/10/29(火) 02:18:49 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 03:21:02.42 ID:rBco2ITF.net] echoというよりコマンドレットの呼び出しにコストがかかるんだよ Write-Outputの使用はあらゆる場面で完全に無意味で無駄だから使わない方がいい それについてブログ書いてる人もいた https://get-powershellblog.blogspot.com/2017/06/lets-kill-write-output.html
963 名前:デフォルトの名無しさん [2019/10/29(火) 03:55:39.34 ID:vBIRwBaE.net] >>920 そうなんだろうなって気はしてた。 まだどれがコマンドレットかそうでないかよくわかってないレベルだけどw 間にハイフンで区切られてて、呼び出しにカッコがいらないのはコマンドレットだよな? Where-Objectとかもなくせば速くなるんだろうか? ようやくC++で実装できそうな情報が溜まってきた。 Unicodeとか訳わかんねぇ。情報がバラバラで多すぎてわからん。 たったこれだけ、たったこれだけなのに! C++で実装したら0.1秒。だけどバイナリのビルドが必要 PowerShellだと0.45秒。 CLIコマンドとしてサクッと実行したときの体感速度が違いすぎる。
964 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 04:14:17.53 ID:rBco2ITF.net] >>921 Where-Objectはめちゃくちゃ遅くて遅いコマンドレットの代表みたいな奴だから俺はスクリプトでは一切使わない 同様にForEach-Objectも遅い 何作ってるのか知らんけど
965 名前:C++はスレ違いだからあとはC++のスレでやった方がいい powershell自体の起動も含めてC++で作ったバイナリより遅いとかいう情報は当然すぎるから要らない [] [ここ壊れてます]
966 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 05:02:05.41 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 08:28:11.85 ID:+8XugnXa.net] 速いに越したことはないけど、PowerShel は速さを追求するもんじゃないだろうに。 >>923 お前は今すぐ呼吸するのをやめろ。お前に吸わせる酸素がもったいない。
968 名前:デフォルトの名無しさん [2019/10/29(火) 20:44:54.51 ID: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 名前:デフォルトの名無しさん [2019/10/29(火) 20:47:41.08 ID:ltL5L5Cn.net] しかも powershell.exe だけに影響する話じゃなくて、 UTF8で書いたファイルを、コマンドプロンプト起動直後、 シフトJISモードのときにtypeしたら文字化けし、 UTF8に変更してからtypeしたら文字化けしない 明らかにコマンドプロンプトの状態が変わってる。 だけどchcpの値は932のままかわらない ただ、PowerShellを使ってUTF8モードに切り替えると、 chcpすると「Active code page: 932」と英語で表示される。
970 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 23:40:36.07 ID:JjalWxmz.net] >>878 の問題は>>884 で解決したのか?
971 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 12:30:04.56 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 12:34:23.96 ID:dF2n6ehk.net] invoke expression
973 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 13:07:31.37 ID:esIitHWU.net] >>928 そりゃ ' ' で囲ってりゃ展開しないだろ… $a = [xml]"<?xml version=""1.0""?><File>${home}\ntuser.dat</File>"
974 名前:928 mailto:sage [2019/11/02(土) 13:33:24.00 ID:1PdjBp7d.net] >>929 できた、ありがとう。 >>930 >>928 のサ
975 名前:ンプルの提示の仕方が悪かったが、実際には XML ファイルを読み込んでるので >>928 の形になります。 [] [ここ壊れてます]
976 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 18:11:26.52 ID:71SUtLbe.net] Powershellの演算子の優先順位が判るサイトが見当たらないんですがどっかにないですかね 演算子をカテゴリ毎に紹介してるサイトは多く見かけるんですが
977 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 20:16:26.21 ID:0WeT0cpY.net] https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_operator_precedence?view=powershell-5.1
978 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 02:57:41.69 ID:hkCRv+PE.net] >>933 ありがとうございます!助かりました!
979 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 03:32:58.98 ID:Y1hBQ+8z.net] どういたしまして!
980 名前:デフォルトの名無しさん [2019/11/05(火) 23:35:55.67 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/11/06(水) 02:58:52 ID:+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 名前:デフォルトの名無しさん mailto:sage [2019/11/06(水) 05:18:39 ID:+Isovp9U.net] x.Size="1,2" こういう書き方できるの知らんかった
983 名前:936 mailto:sage [2019/11/06(水) 11:38:21.31 ID:viRYf3W9.net] >>937 大変ありがとうございました。助かりました。 なおWin7環境なのでusing...はカットして使ってます。
984 名前:デフォルトの名無しさん mailto:sage [2019/11/06(水) 19:25:34.62 ID:du9DeY6n.net] >>939 5.0以上にアップグレードすればWin7でも使えるんじゃないの?インストール不可なだめだけど
985 名前:936 mailto:sage [2019/11/08(金) 09:54:16.57 ID:RMGDBEVY.net] 緊急でお願いします。マルチバイト文字のパディングのやり方を教えて下さい。サンプルコードがあると嬉しいです。
986 名前:デフォルトの名無しさん mailto:sage [2019/11/08(金) 10:20:36.03 ID:weGpRZzk.net] 入力と出力のサンプル位出したら
987 名前:デフォルトの名無しさん mailto:sage [2019/11/08(金) 10:20:37.27 ID:bpFYbH+Z.net] うっかり bash と間違えて ctrl+R と打ってしまったんだけど、PowerShel でも同じように機能したんだな。 軽く感動したわ。
988 名前:デフォルトの名無しさん mailto:sage [2019/11/08(金) 10:41:43.51 ID:wfK2aVsO.net] ctrl + Alt + shift + / でショートカット一覧が出るからざっと見ておくといいよ
989 名前:デフォルトの名無しさん [2019/11/08(金) 11:47:48.53 ID:bt2cbsd4.net] PowerShellにディレクトリ、ファイル名以外の 補完機能ってあるの?
990 名前:デフォルトの名無しさん mailto:sage [2019/11/08(金) 12:27:29.71 ID:CJ6EXBGx.net] >>945 オプションとかオプションの値が選択肢ならそれも補完する ユーザーが作ったコマンドでも補完できるから地味に便利
991 名前:デフォルトの名無しさん mailto:sage [2019/11/08(金) 14:17:43.58 ID:bpFYbH+Z.net] >>944 なんと、超便利! あ
992 名前:閧ェとう! [] [ここ壊れてます]
993 名前:デフォルトの名無しさん mailto:sage [2019/11/08(金) 14:41:45.11 ID:wfK2aVsO.net] ついでに以下のコマンドで画面だしとけばチートシートになるよ Get-PSReadLineKeyHandler | ogv
994 名前:デフォルトの名無しさん mailto:sage [2019/11/08(金) 17:13:11.44 ID:bpFYbH+Z.net] >>948 「俺専用PowerShellアンチョコ.txt」に記録した。重ね重ねありがとう。
995 名前:デフォルトの名無しさん [2019/11/09(土) 17:39:02.10 ID:LvjWth2U.net] powershellで海外にアクセスできないように設定できますか?
996 名前:デフォルトの名無しさん mailto:sage [2019/11/09(土) 17:42:01.74 ID:FbsqDOHf.net] 海外とは
997 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 05:11:31 ID:47iDVxCF.net] そういやweb鯖のサンプルがあったな ピロキシぐらい作れるよな
998 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 16:21:24.11 ID:LxY6Tlm9.net] 海外鯖を経由しない通信にしたい。 それか海外からの通信をファイアウォールで 全部ブロックしたい。 って考えたらhostsしかないかな? めんどくさいな。
999 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 16:35:30.22 ID:z3CQn4/q.net] 自分ですべての経路把握する必要あるし無理じゃね?
1000 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 17:15:59.31 ID:iyIsn8nz.net] >>953 曖昧すぎてアドバイスのしようがないな
1001 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 17:17:57.36 ID:uhrgfz89.net] hostsに一体いくつ「海外」とやらのホストを指定するのやら OS側でやるのが適当なのかそれ 業務用なのか個人用なのかもわからん
1002 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 17:54:04.00 ID:otD8Z0ZU.net] windows updateも海外なのか?
1003 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 20:34:29.07 ID:LxY6Tlm9.net] すみませんでした。そうなるとなんかややこしくなりそうなのでやめます。 ブラウザの拡張でやりますわ。 ありがとうございました。
1004 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 08:27:46.29 ID://Nnw6zP.net] Windows PowerShell を使用した高度なセキュリティ管理を使用する windows Defender ファイアウォール https://docs.microsoft.com/ja-jp/windows/security/threat-protection/windows-firewall/windows-firewall-with-advanced-security-administration-with-windows-powershell
1005 名前:デフォルトの名無しさん [2019/11/11(月) 17:18:43.20 ID:WYwNeQAp.net] ありがとうございました。
1006 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 08:47:59.75 ID:604fXs7f.net] タブストップ中コンボボックスの文字の背景色を青ではなく薄水色にしたいのですが、やり方がわかりません。ご存知の方、よろしくお願い申し上げます。
1007 名前:自己レス mailto:sage [2019/11/18(月) 12:09:14.04 ID:604fXs7f.net] >>961 https://stackoverflow.com/questions/38981877/listbox-alternating-shading-powershell
1008 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 15:09:03.25 ID:Crm1ovkb.net] test 452452424524524
1009 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 15:10:33.45 ID:Crm1ovkb.net] Windows 10 に標準搭載された OpenSSH と PowerShell の機能だけを使用して、公開鍵をサーバにアップロードしたいと考えています。 (ssh-copy-id は shell スクリプトなので Windows 版の OpenSSH には含まれていない)
1010 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 15:11:33.77 ID:Crm1ovkb.net] 調べた結果、まず以下のコマンドが cmd.exe 上では完璧に動作することを確認しました。 ※元のコードを貼ると 403 Forbidden となるので Pastebin を使ってます https://pastebin.com/kCqKQm9T これを以下の通り PowerShel に置き換えました。 https://pastebin.com/CSE9sCnB 一応、公開鍵のアップロードまでは出来たんですけど、ssh.exe のプロセスが終了しません。 (wait = $true にした場合はプロンプトが返ってこない) 何が悪いんでしょうね。
1011 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 15:15:42.87 ID:Crm1ovkb.net] 追伸:CloudFlare で 403 Forbidden になってたのはレスに cmd.exe という文字列が含まれいたのが原因のようです。コードは関係なかったっぽい。
1012 名前:デフォルトの名無しさん mailto:sage [2019/1
] [ここ壊れてます]
1013 名前:1/18(月) 15:35:44.61 ID:Crm1ovkb.net mailto: どうやら、ssh.exe に対して公開鍵の文字列をパイプで渡した場合は正常終了するのですが、標準入力で渡した場合はプロセスが残ることが分かりました。 cmd.exe 上でも、標準入力で渡した場合はプロセスが残ります。 Start-Process は「You cannot pipe input to this cmdlet.」とのことでパイプからの入力を受け付けないんですけど、なにか良い手はないですかね? [] [ここ壊れてます]
1014 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 16:07:26.07 ID: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" 最終的に、これで妥協しました。ダサい。もっとスマートな書き方はないものだろうか。 https://pastebin.com/KpKkuGcQ
1015 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 16:13:01.04 ID:Crm1ovkb.net] ごめんなさい、標準入力では ssh.exe が終了しない原因が分かりました。 sshkeygen で生成された id_rsa.pub は、行末で改行していないためでした。 エディタで開いて改行させたところ、 https://pastebin.com/CSE9sCnB これでも動作しました。 お騒がせしました。
1016 名前:デフォルトの名無しさん mailto:sage [2019/11/19(火) 00:02:22.77 ID:rlpD1oBO.net] 参考になった ありがとう
1017 名前:デフォルトの名無しさん mailto:sage [2019/11/20(水) 13:28:40.93 ID:aW1lygKI.net] どういたしまして
1018 名前:デフォルトの名無しさん mailto:sage [2019/11/24(日) 16:11:02.22 ID:UhvIpOa2.net] Get-ChildItemで困っている事があります。 解決方法を知っている方がいましたら教えてください。 *.txt *.bin などの拡張子を持つファイルを一括して集める場合 $result = Get-ChildItem *.txt,*.bin とすれば集まりますが hoge,hage.txt というファイル名に、 ',' が含まれているファイル名があると、 *.txt,*.bin のようなセパレーターとして認識してしまい ワイルドカードにヒットするbase nameが hoge までになってしまい$resultに値が入ってきません。 ','などのセパレーターを含むファイル名を Get-ChildItem でワイルドカード指定するにはどうすればよいでしょうか?
1019 名前:デフォルトの名無しさん mailto:sage [2019/11/24(日) 16:29:56.73 ID:E4b/CXSq.net] >>972 何をしたいのかいまいちよくわからんがとりあえず Get-ChildItem 'hoge,hage.*', '*.txt' とかでいいんじゃね?
1020 名前:デフォルトの名無しさん mailto:sage [2019/11/24(日) 20:06:33.13 ID:JDFz9pDe.net] うちはGet-ChildItem *.txt,*.binで引っかかるけど dir *.txt,*.bin | ?{ $_.Name -like "h*"}でフィルタして確認してみれば?
1021 名前:デフォルトの名無しさん [2019/11/28(木) 17:33:57.96 ID:G1SJ/xZS.net] スクリプトで VPNセッションを張って、opensshでLinuxサーバーにログインしたいんですが、クレデンシャル情報ってどう引き渡せば良いですか?
1022 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 17:35:59.16 ID:KHBZf3ql.net] どこのクレデンシャル情報を、どこに渡すんです?
1023 名前:デフォルトの名無しさん [2019/11/28(木) 17:40:45.55 ID:G1SJ/xZS.net] >>976 ssh、vpnのコマンドにです
1024 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 17:41:50.79 ID:KHBZf3ql.net] そのクレデンシャル情報には何が書かれてるんです?
1025 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 17:42:46.64 ID:KHBZf3ql.net] ssh、vpnにクレデンシャル情報を渡すとどうなるんです? どうなるように設定したんですか?
1026 名前:デフォルトの名無しさん [2019/11/28(木) 18:10:58.12 ID:G1SJ/xZS.net] すいません。 ここで聞いたのが間違いでした。 Linuxサーバーにログインしたいと書いてあるのにどうしたいと言われても困りますので。 では。
1027 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 18:17:16.35 ID:KHBZf3ql.net] だからログインできるようにLinuxサーバーに設定したんですか?
1028 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 19:03:26.14 ID:o2XGBpkX.net] VPN関係あるの? ssh -i 秘密キーファイル ユーザー名 という外部コマンドの呼び出し方を聞いてる
1029 名前:フ? [] [ここ壊れてます]
1030 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 06:19:20.47 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 06:21:03.31 ID:DPpTEq4j.net] すまん>>936 じゃなくて>>937 だったわ
1032 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 23:38:33.69 ID:kDyrT7eN.net] キャストでオブジェクト生成か 理屈は判るけどキモイな
1033 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 21:20:43.94 ID:A7bzsjq6.net] C#のオブジェクト初期化子みたいなものだと思えばいいかも
1034 名前:デフォルトの名無しさん [2019/12/31(火) 07:16:04.44 ID:xfr0s5Fj.net] 怒らないで教えて欲しいんだが WSLでよくね?
1035 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 07:38:32.37 ID:Ttaqvt+E.net] いや誰もPowerShellを万能の利器とは考えてない 適材適所
1036 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 09:49:11.63 ID:ZmMnRfLg.net] >>987 それに答えるためには、お前が何をしたいのかを聞く必要がある
1037 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 09:53:59.69 ID:vL9iUG+A.net] WSL使うなら最初からLinuxをインストールして使えばいい
1038 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 21:14:44.78 ID:wxhVB0za.net] WSLていうかUNIXシェルでいいなら、なんでLinuxユーザーがわざわざPowerShellを使ってると思うの? https://msit.powerbi.com/view?r=eyJrIjoiYTYyN2U3ODgtMjBlMi00MGM1LWI0ZjctMmQ3MzE2ZDNkMzIyIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9&pageName=Re
1039 名前:portSection5 [] [ここ壊れてます]
1040 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 21:26:22.98 ID:4NGA+Zr1.net] >>991 知らない教えて
1041 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 21:58:25.71 ID:ajjU1twk.net] 事情があって嫌々ながらLinux使わざるをえないWindowsユーザーがPowershell採用してる
1042 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 22:01:43.89 ID:FiZAbpfr.net] PowerShellのほうが強力だしな
1043 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 08:33:54.15 ID:KGLKi7tz.net] そろそろ Ruby ガイジが出てくる頃かな?
1044 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 13:06:34.59 ID:voSHdO49.net] rubyくんが出るのは、スクリプトを作れるような質問が出たときだろ
1045 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 15:19:12.54 ID:IT8L/q0G.net] h
1046 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 15:19:29.24 ID:IT8L/q0G.net] t
1047 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 15:19:45.39 ID:IT8L/q0G.net] l
1048 名前:小倉優子 mailto:sage [2020/01/01(水) 15:20:34.34 ID:IT8L/q0G.net] ∧,,,∧ ( ・∀・) 1000ならジュースでも飲むか ( ) し─J
1049 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 448日 21時間 33分 46秒
1050 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています