GeTtype()は.NETのオブジェクトのメソッドだからGet-Helpじゃ見れんやろ
Powershellの与り知らんとこだし
PowerShell -Part 3
レス数が1000を超えています。これ以上書き込みはできません。
759デフォルトの名無しさん
2019/08/12(月) 03:14:57.78ID:k4SaZ4yK760デフォルトの名無しさん
2019/08/12(月) 06:13:32.21ID:kdU0FwTT761デフォルトの名無しさん
2019/08/15(木) 08:40:37.86ID:HmFqQFvo Windows以外でもGUI使えるのか
Out-GridView Returns!
https://devblogs.microsoft.com/powershell/out-gridview-returns/
Out-GridView Returns!
https://devblogs.microsoft.com/powershell/out-gridview-returns/
762デフォルトの名無しさん
2019/08/15(木) 19:53:03.53ID:1FEo3MBg 俺の大好きなogv!!
763デフォルトの名無しさん
2019/08/17(土) 18:24:44.34ID:2EecLECc ここの人がPowershell、vbs、C#に精通していると思い質問させていただきます。
C#もまだ覚え中ですが、vbsをC#に移行していました。
最近Powershellを知って、
C#より分かりづらいですが、同じことがC#より短く書けます。
shellで.NETも使えてほぼ何でもできるPowershellに可能性を感じたのですが、
全然盛り上がっていませんw
Powershellをどんどん使っていくか、
C#を覚えていくか、将来性も含めどちらがいいでしょうか?
C#もまだ覚え中ですが、vbsをC#に移行していました。
最近Powershellを知って、
C#より分かりづらいですが、同じことがC#より短く書けます。
shellで.NETも使えてほぼ何でもできるPowershellに可能性を感じたのですが、
全然盛り上がっていませんw
Powershellをどんどん使っていくか、
C#を覚えていくか、将来性も含めどちらがいいでしょうか?
764デフォルトの名無しさん
2019/08/17(土) 18:58:18.44ID:Q0D8gSGr そんなの状況次第だよ
大雑把に分けるなら
アプリケーションを作りたいならC#
システム管理ツールを作りたいならPowerShell
大雑把に分けるなら
アプリケーションを作りたいならC#
システム管理ツールを作りたいならPowerShell
765デフォルトの名無しさん
2019/08/17(土) 19:03:01.90ID:CK+x7f61 用途が違うからC#とは並べるものじゃない
windowsがメインならどっちもできるようになった方がいい
複雑なGUIをPowerShellで頑張って作ってる人見るとごくろうさまですとしか思えんし
PowerShellでさくっと書けるCUIをわざわざVisualStudio入れてC#で書いてビルドしてバイナリ配置して
ソースも別の場所でずっと管理してんの見るとアホだなあと思う
修正の度にソース探してまたビルドしてバイナリ配置して・・・ってなるんだし
あとPowershellのスクリプトの中でC#のコードを書いて使うこともできる
これがまた強力だからどっちも覚えて損はない
(速度はC#が圧倒的に速いから速度的にネックになってる部分だけC#でかくということができる)
将来性についてどっちもMSが力入れてるから気にすることはない
vbsに関して言えば所詮道具だから現状やりたいことができているんならわざわざ移行する必要もない
今んとこMSがWSHを切るって話もないし
windowsがメインならどっちもできるようになった方がいい
複雑なGUIをPowerShellで頑張って作ってる人見るとごくろうさまですとしか思えんし
PowerShellでさくっと書けるCUIをわざわざVisualStudio入れてC#で書いてビルドしてバイナリ配置して
ソースも別の場所でずっと管理してんの見るとアホだなあと思う
修正の度にソース探してまたビルドしてバイナリ配置して・・・ってなるんだし
あとPowershellのスクリプトの中でC#のコードを書いて使うこともできる
これがまた強力だからどっちも覚えて損はない
(速度はC#が圧倒的に速いから速度的にネックになってる部分だけC#でかくということができる)
将来性についてどっちもMSが力入れてるから気にすることはない
vbsに関して言えば所詮道具だから現状やりたいことができているんならわざわざ移行する必要もない
今んとこMSがWSHを切るって話もないし
766デフォルトの名無しさん
2019/08/17(土) 19:11:51.36ID:Ic+b/2I0 Linux 覚えたほうが良さそうw
767デフォルトの名無しさん
2019/08/17(土) 20:01:01.84ID:2EecLECc768デフォルトの名無しさん
2019/08/17(土) 20:37:46.41ID:fWrg11mT 役割違うからどっちも必要だと思う
Windows技術者じゃなく.NET技術者を目指して勉強して欲しい
Windows技術者じゃなく.NET技術者を目指して勉強して欲しい
769デフォルトの名無しさん
2019/08/18(日) 00:06:00.19ID:26pp6bRY 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 の方が可読性が高い
より複雑な、ファイル操作・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 の方が可読性が高い
770デフォルトの名無しさん
2019/08/18(日) 00:15:38.74ID:4oEGaRbg >>769
お前は出てこなくていい
お前は出てこなくていい
771デフォルトの名無しさん
2019/08/18(日) 08:18:26.56ID:vD0MLvXn772デフォルトの名無しさん
2019/08/18(日) 22:05:00.38ID:aNJOLvna WindowsでRuby使うとかギャグだろ
773デフォルトの名無しさん
2019/08/19(月) 23:45:41.47ID:6VXOyYrl RubyがギャグならPythonは?
774デフォルトの名無しさん
2019/08/20(火) 00:23:10.44ID:S2+8M2EA PythonはAIプログラミングで一躍有名になったね
775デフォルトの名無しさん
2019/08/20(火) 08:18:30.85ID:trDWBWGh >>773
Visual Studio が対応してるし、.NET Framework 上で動く IronPython なんてのがあるくらいだから「アリ」だろうな。
Visual Studio が対応してるし、.NET Framework 上で動く IronPython なんてのがあるくらいだから「アリ」だろうな。
776デフォルトの名無しさん
2019/08/20(火) 15:46:07.95ID:OusQ3pFE Windows版のPythonは結構ちゃんと動くし、Python製のGUIアプリもDropboxとかたまにある
WindowsのRubyは非推奨の流れで、WSL使うか仮想環境のLinux使うか
WindowsのRubyは非推奨の流れで、WSL使うか仮想環境のLinux使うか
777デフォルトの名無しさん
2019/08/20(火) 21:28:48.24ID:n/ZUSiaV 昔、七行プログラミングってあったけど、
PowerShellなら7行ですごいことできるよね
PowerShellなら7行ですごいことできるよね
778デフォルトの名無しさん
2019/08/24(土) 01:22:08.40ID:kPbBL5c4 csvファイル内の特定セル?(エクセルでいうところのcells(1,2)みたいな)を変数に格納して、
そのファイルのファイル名にしたいのですが、こういったことはできますか?
そのファイルのファイル名にしたいのですが、こういったことはできますか?
779778
2019/08/24(土) 01:39:25.56ID:kPbBL5c4 できました。import-csvから要素の取り出しをするだけでした。
780デフォルトの名無しさん
2019/08/26(月) 04:00:34.51ID:yeIOnWDr781デフォルトの名無しさん
2019/08/26(月) 07:51:25.55ID:LOkM9Twk コマンドプロンプトで、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つ表示された
と入力すると、メモ帳のパスが、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つ表示された
782デフォルトの名無しさん
2019/08/26(月) 08:31:04.34ID:sAEBXghq >>781
Get-Command -CommandType Application notepad は試した?
Get-Command -CommandType Application notepad は試した?
783デフォルトの名無しさん
2019/08/26(月) 14:58:24.63ID:R1/Rmq9c >>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 の仕組み上、便宜的に「実態」と呼んでも差し支えないだろう。
何を主張したいのかが良く分からんレスだな。
困ってるから何とかしてくれ、とでも言いたいのか?
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 の仕組み上、便宜的に「実態」と呼んでも差し支えないだろう。
784デフォルトの名無しさん
2019/08/26(月) 15:00:01.45ID:R1/Rmq9c785デフォルトの名無しさん
2019/08/26(月) 15:10:26.74ID:JMmOsJb3 Why are there two copies of Notepad?
https://devblogs.microsoft.com/oldnewthing/20060328-17/?p=31753
https://devblogs.microsoft.com/oldnewthing/20060328-17/?p=31753
786デフォルトの名無しさん
2019/08/26(月) 15:27:38.53ID:j8vvMRg5 >>783
独特の文体からして、この板で有名なRuby君かと思われる。話の流れと無関係にRuby推ししてきたり、頓珍漢な知識披露(間違い多数)をしてきたりする奴だから、相手するだけ無駄だよ。
おそらく、ぼくこんなこと気づいたんだよ!って嬉しくて書かずにいられなかっただけだと思う。
独特の文体からして、この板で有名なRuby君かと思われる。話の流れと無関係にRuby推ししてきたり、頓珍漢な知識披露(間違い多数)をしてきたりする奴だから、相手するだけ無駄だよ。
おそらく、ぼくこんなこと気づいたんだよ!って嬉しくて書かずにいられなかっただけだと思う。
788デフォルトの名無しさん
2019/08/27(火) 01:45:40.61ID:OLaosybt DOSメインでPSでしかできない部分だけPSにしてるのをやめて、PS一本化を増やそうかと思い立ったが
そういやDOSからキックしないと動かないのであった
というわけでやはりDOSメイン
そういやDOSからキックしないと動かないのであった
というわけでやはりDOSメイン
789デフォルトの名無しさん
2019/08/27(火) 01:49:02.45ID:OLaosybt なんでそんな仕様にしたんだろうね
かといってPS直でやりたいというより、DOSを拡張して欲しかった
かといってPS直でやりたいというより、DOSを拡張して欲しかった
790デフォルトの名無しさん
2019/08/27(火) 02:31:00.22ID:AUeyxvTx まだDOSなんて使ってんの
791デフォルトの名無しさん
2019/08/27(火) 17:41:47.14ID:DT/yO98c なんでps1てへんてこな拡張子なの
792デフォルトの名無しさん
2019/08/27(火) 18:06:41.10ID:JlFv53u2 どっかのゲーム機みたいにPowerShell 2, PowerShell 3, …って作るんじゃね?w
793デフォルトの名無しさん
2019/08/27(火) 21:28:53.53ID:2r3hz+dJ794デフォルトの名無しさん
2019/08/28(水) 02:40:35.65ID:tqyYzyWN 考え無しに作った結果か・・・
795デフォルトの名無しさん
2019/08/29(木) 03:16:31.66ID:RYMiansx 基本的なことが分かってない気がするのだけど教えてください
get-date, get-childitem, get-location といったコマンドレットの代わりに
get 無しで date, childitem, location と入力しても同じ結果になる
これら get 無しコマンドは get 付きのエイリアスなのか? と最初は思ったのだけど
そんなエイリアスはないと言われる
これらの get 無しコマンド(?) はどういう立ち位置なんでそ?
ちなみに例えば location.bat とかを PATH の通った場所に置いておくと
そっちが実行されるので、これらはサーチパスより優先度が低いようです
get-date, get-childitem, get-location といったコマンドレットの代わりに
get 無しで date, childitem, location と入力しても同じ結果になる
これら get 無しコマンドは get 付きのエイリアスなのか? と最初は思ったのだけど
そんなエイリアスはないと言われる
これらの get 無しコマンド(?) はどういう立ち位置なんでそ?
ちなみに例えば location.bat とかを PATH の通った場所に置いておくと
そっちが実行されるので、これらはサーチパスより優先度が低いようです
796デフォルトの名無しさん
2019/08/29(木) 04:05:52.42ID:TR1/uwdi >>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を探すよってこと
基本的なことはここにまとまってる
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を探すよってこと
797デフォルトの名無しさん
2019/08/29(木) 04:22:51.28ID:RYMiansx798デフォルトの名無しさん
2019/08/29(木) 19:25:49.72ID:+UUfxV7s 初心者で右も左もわからない状況で申し訳無いのですが、
明示的に設定してる共有ディレクトリとアクセス権を一括で出力ってできたりするんですかね?
Get-wmiobject -class win32_share
だとアクセス権までは出力されなかったんで...
詳しい方教えて頂きたいです。
明示的に設定してる共有ディレクトリとアクセス権を一括で出力ってできたりするんですかね?
Get-wmiobject -class win32_share
だとアクセス権までは出力されなかったんで...
詳しい方教えて頂きたいです。
799デフォルトの名無しさん
2019/08/30(金) 00:19:55.56ID:kVpvpBih 「powershell アクセス権限 確認」で検索!
こんな感じ?
ls | Get-ACL
こんな感じ?
ls | Get-ACL
800デフォルトの名無しさん
2019/08/30(金) 10:55:43.01ID:uzgqDeg8801デフォルトの名無しさん
2019/09/06(金) 17:24:06.26ID:LE0BBPZ5 ふぁあああ・・・・
解決してよかったよぉお
ハロー優しい世界、だねええええ^^
解決してよかったよぉお
ハロー優しい世界、だねええええ^^
802デフォルトの名無しさん
2019/09/07(土) 01:23:05.71ID:SOW3zbb3 Set-ACLは使うな
803デフォルトの名無しさん
2019/09/07(土) 06:28:56.33ID:jlJXcZnh >>802
替わりに何を使ったら良いですか?
替わりに何を使ったら良いですか?
804デフォルトの名無しさん
2019/09/07(土) 06:44:55.31ID:jb/JoUUS >>802
why?
why?
805デフォルトの名無しさん
2019/09/07(土) 10:39:33.44ID:sSufJvsQ >>804
俺は >>802 ではないが、Set-Acl は使いづらい。
そもそもの理由は Windows の ACL (ACE) が複雑だからなのだが、対象にセットする ACL オブジェクトを作るのが分かりづらい。
例:All Users のスタートメニューのアクセス権を変更し、一般ユーザにも書き換えられるようにする場合(既存の権限に追加)
https://pastebin.com/R3JBWF2h
他のフォルダなどから ACL オブジェクトをコピーし、それをそのままターゲットに適用するだけなら簡単なのだけど。
>>803
「何が何でもすべて PS でやる!」 というポリシーでないのなら、cscls.exe、icacls.exe のほうがお手軽。
俺は >>802 ではないが、Set-Acl は使いづらい。
そもそもの理由は Windows の ACL (ACE) が複雑だからなのだが、対象にセットする ACL オブジェクトを作るのが分かりづらい。
例:All Users のスタートメニューのアクセス権を変更し、一般ユーザにも書き換えられるようにする場合(既存の権限に追加)
https://pastebin.com/R3JBWF2h
他のフォルダなどから ACL オブジェクトをコピーし、それをそのままターゲットに適用するだけなら簡単なのだけど。
>>803
「何が何でもすべて PS でやる!」 というポリシーでないのなら、cscls.exe、icacls.exe のほうがお手軽。
806デフォルトの名無しさん
2019/09/07(土) 10:48:02.60ID:jlJXcZnh >>802に答えて欲しいな
807デフォルトの名無しさん
2019/09/07(土) 11:08:11.46ID:sSufJvsQ >>806
ごめんね
ごめんね
808デフォルトの名無しさん
2019/09/07(土) 15:10:43.76ID:SOW3zbb3809デフォルトの名無しさん
2019/09/07(土) 15:12:47.14ID:SOW3zbb3 あ、>>803への答えはicaclsコマンド使えね
powershellは変な仕様あるから割と警戒した方がいい
powershellは変な仕様あるから割と警戒した方がいい
810デフォルトの名無しさん
2019/09/08(日) 20:21:13.64ID:d6DJW1MN F:/ に SDカードがマウントされているのを
アンマウントするコマンドは何ですか?
アンマウントするコマンドは何ですか?
811デフォルトの名無しさん
2019/09/08(日) 21:55:23.61ID:D+CIKcq7 >>810
(New-Object -comObject Shell.Application).Namespace(17).ParseName('F:').Verbs()|?{$_.Name -match '取り出し'}|%{$_.Doit()}
(New-Object -comObject Shell.Application).Namespace(17).ParseName('F:').Verbs()|?{$_.Name -match '取り出し'}|%{$_.Doit()}
812デフォルトの名無しさん
2019/09/09(月) 16:38:34.04ID:8EKyQA8Q >>811
thanks
thanks
813デフォルトの名無しさん
2019/09/10(火) 21:38:04.40ID:Eo4YqZPr ■C:\hoge.txtの内容
aaa
bbb
bbb
bbb
ccc
ccc
ccc
ccc
ccc
↑のようなテキストファイルがある場合に、↓の結果(タブ区切り)を得るにはどうすれば良いのでしょうか?
aaa 1
bbb 3
ccc 5
aaa
bbb
bbb
bbb
ccc
ccc
ccc
ccc
ccc
↑のようなテキストファイルがある場合に、↓の結果(タブ区切り)を得るにはどうすれば良いのでしょうか?
aaa 1
bbb 3
ccc 5
814デフォルトの名無しさん
2019/09/10(火) 22:19:37.38ID:L5QX1JAH >>813
Group-Object
Group-Object
815デフォルトの名無しさん
2019/09/10(火) 22:36:34.85ID:hrOpSOVs 頼むから順不同なのかそうじゃないのか
書いてから質問してくれ
書いてから質問してくれ
816デフォルトの名無しさん
2019/09/10(火) 23:28:19.24ID:Eo4YqZPr817デフォルトの名無しさん
2019/09/10(火) 23:30:43.39ID:L5QX1JAH818デフォルトの名無しさん
2019/09/11(水) 00:05:23.05ID:TMos3buL あータブ区切りの文字列にしたいんか
gc hoge.txt | group | foreach { $_.name,$_.count -join "`t" }
gc hoge.txt | group | foreach { $_.name,$_.count -join "`t" }
820デフォルトの名無しさん
2019/09/12(木) 10:44:16.82ID:W/V8jwbc821デフォルトの名無しさん
2019/09/12(木) 13:07:06.37ID:9SxJRVV0822デフォルトの名無しさん
2019/09/12(木) 14:46:18.96ID:pQlsfVOK ふーむ、アホがアホに同調するアホな好例だな、アホすぎてオレにはよく分らんのだが、アホだということは分かる
アホA「ありがとうございます! まだ試していないけど! ★5つです!(^_^)」
アホB「・・これは良い! これからは★で評価しよう!」
ボク「・・いやいや、まだ試してもいないのだから評価もくそもねーだろ、★2〜3の定義もねーし、こいつらアホの極みだな」
アホA「ありがとうございます! まだ試していないけど! ★5つです!(^_^)」
アホB「・・これは良い! これからは★で評価しよう!」
ボク「・・いやいや、まだ試してもいないのだから評価もくそもねーだろ、★2〜3の定義もねーし、こいつらアホの極みだな」
823デフォルトの名無しさん
2019/09/12(木) 14:53:12.75ID:j3ZoG8EK >>822
★
★
824デフォルトの名無しさん
2019/09/12(木) 17:51:47.62ID:TUHPbFV0 >>822
これが噂のヤラセレビューってやつか?
これが噂のヤラセレビューってやつか?
825デフォルトの名無しさん
2019/09/12(木) 18:29:54.11ID:5CMOpd/7 >>822
☆
☆
826デフォルトの名無しさん
2019/09/12(木) 19:50:41.33ID:igJ/H+nC icaclsとか括弧を多用するコマンドはエスケープうざいですね
ヒアドキュメントみたいな感じでスマートに書けませんか
ヒアドキュメントみたいな感じでスマートに書けませんか
827デフォルトの名無しさん
2019/09/13(金) 20:13:01.19ID:Vx47yrR/ PowerShellで非同期処理って酷く書きづらいと思ってるんだが、こんなもんなんか?
変数を渡すのにめっちゃ苦労したんだが…
変数を渡すのにめっちゃ苦労したんだが…
828デフォルトの名無しさん
2019/09/13(金) 21:35:11.86ID:3ZdspPUD 具体的にはどんなコードを書いたの?
829デフォルトの名無しさん
2019/09/13(金) 21:49:24.82ID:Vx47yrR/ あまりにもニッチな製品の負荷テスト用スクリプトだから具体的には言えないが、平たく言えば自作関数とWin標準コマンドを引数変えながら並列投入するだけ
bashと比べちゃ駄目なんだろうが、スクリプト書いててキレそうになったのは久しぶりだわ
bashと比べちゃ駄目なんだろうが、スクリプト書いててキレそうになったのは久しぶりだわ
830デフォルトの名無しさん
2019/09/13(金) 23:05:20.75ID:ha69B7nJ runspaceでやってるのかjobでやってるのか
831デフォルトの名無しさん
2019/09/14(土) 01:25:26.61ID:XbAlqDVd そんな苦労するもんだっけか
832デフォルトの名無しさん
2019/09/14(土) 01:53:38.89ID:ogAZWftq 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()
}
ちょっと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()
}
833デフォルトの名無しさん
2019/09/14(土) 01:55:28.35ID:ogAZWftq $ps.EndInvoke($result)
だわ
だわ
834デフォルトの名無しさん
2019/09/14(土) 20:16:09.07ID:atxyCPua 変数じゃねーじゃねーか!
835デフォルトの名無しさん
2019/09/14(土) 20:31:39.96ID:jbpc8Cnk836デフォルトの名無しさん
2019/09/14(土) 20:49:09.80ID:atxyCPua 渡したかったのは関数だって言ってんじゃねーか!
837デフォルトの名無しさん
2019/09/14(土) 21:11:58.91ID:ogAZWftq838デフォルトの名無しさん
2019/09/14(土) 22:03:58.44ID:atxyCPua psm1にまとめて読み込んだほうが楽そう…
839デフォルトの名無しさん
2019/09/14(土) 22:24:21.00ID:Tzf8a7mL うむ
840デフォルトの名無しさん
2019/09/15(日) 15:45:03.86ID:4TgO8+RX >>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
大文字小文字が区別されないから、-CaseSensitive オプションも付けた方がよい
"Aa", "b", "aa" | group-object -noelement | where {$_.Count -gt 1}
出力
2 Aa
"A", "a" | group-object -noelement -CaseSensitive
出力
1 A
1 a
841デフォルトの名無しさん
2019/09/15(日) 17:42:03.16ID:tc+PQ4bB 5.1から4.0に戻さないと日本語でいろいろ書いてくれないからわからないんです…
どうやって戻したらいいんでしょうか…(´・ω・`)
どうやって戻したらいいんでしょうか…(´・ω・`)
842デフォルトの名無しさん
2019/09/15(日) 18:02:21.21ID:LMFjfaUx どういうこと(´・ω・`)
843デフォルトの名無しさん
2019/09/15(日) 19:37:50.46ID:tc+PQ4bB (´・ω・`)すみません自己解決しました 更新プログラムの一部を削除したら望む結果が得られました お騒がせしました
844デフォルトの名無しさん
2019/09/15(日) 20:17:50.41ID:aATf+6N9 WMF 5 に上げるとUIの表示が英語になるやつかねたぶん
845デフォルトの名無しさん
2019/09/15(日) 20:48:36.32ID:ORV+CvDJ win7pcのPSを5.1にした時に日本語化探したけどわかんなかったから詳しく書いてほしかった感
846デフォルトの名無しさん
2019/09/15(日) 22:28:51.53ID:tc+PQ4bB847デフォルトの名無しさん
2019/09/15(日) 22:30:29.90ID:tc+PQ4bB848デフォルトの名無しさん
2019/09/18(水) 09:25:06.97ID:jcGpm5QT849デフォルトの名無しさん
2019/09/18(水) 12:47:39.59ID:iUGh13ZQ バッチファイルでいう、
echo %errorlevel%
はパワーシェルではどうやればいいんでしょうか?
echo %errorlevel%
はパワーシェルではどうやればいいんでしょうか?
850デフォルトの名無しさん
2019/09/18(水) 14:54:54.64ID:nNyCwAkD echo $LASTEXITCODE
851デフォルトの名無しさん
2019/09/23(月) 16:12:06.99ID:yWN8gkqC [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])"
に反応するものだけで出来ればと思います
どのように書けばよいのでしょうか?
[2018.11.29] 納品書B社
[181129] 納品書C社
このようなフォルダ構造になっている状態で、
このフォルダ階層だけ
3行目の"[YYMMDD] 〜〜"のような書式にフォルダ名を変更したいと思っています。
" 納品書A社"などはそのままで
元の日付も保持します
正規表現では"([2][0][1][0-9])\.([01][0-9])\.([0-3][0-9])"
に反応するものだけで出来ればと思います
どのように書けばよいのでしょうか?
852デフォルトの名無しさん
2019/09/23(月) 18:10:16.40ID:mK3aarjp >>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に入ってることを覚えておくといい
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に入ってることを覚えておくといい
853デフォルトの名無しさん
2019/09/23(月) 22:41:23.65ID:CUAPT5Qo NewNameにスクリプトブロック渡せるんだ
%{〜}の中で整形して渡す発想しかなかった
%{〜}の中で整形して渡す発想しかなかった
854デフォルトの名無しさん
2019/09/23(月) 22:54:01.34ID:GUxJcSSn DIRとって一つずつ条件に合致するオブジェジェクトをパイプ渡しするだけだよ
855デフォルトの名無しさん
2019/09/23(月) 23:39:14.69ID:mK3aarjp >>853
Delay Bindingっていって以下の条件を満たすパラメータにスクリプトブロックを渡すと
パイプラインから値が入ってくる度にパラメータの値を評価してくれる
・ ByValue, ByPropertyName属性が付加されてること
・ 型が明示的に指定されてること(ただし[scriptblock]または[object]以外)
Delay Bindingっていって以下の条件を満たすパラメータにスクリプトブロックを渡すと
パイプラインから値が入ってくる度にパラメータの値を評価してくれる
・ ByValue, ByPropertyName属性が付加されてること
・ 型が明示的に指定されてること(ただし[scriptblock]または[object]以外)
856デフォルトの名無しさん
2019/09/24(火) 10:08:27.83ID:hYZHYmb1 >>852
横だけど、すごく参考になった。ありがとう。
横だけど、すごく参考になった。ありがとう。
858デフォルトの名無しさん
2019/09/25(水) 10:57:26.88ID:E/zWVp/e PowerShell って、「Shell」と一括にされてるんだっけ?
The Top Programming Languages 2019
https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2019
The Top Programming Languages 2019
https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2019
859デフォルトの名無しさん
2019/09/25(水) 20:24:06.99ID:idiO5sU0 素のCが3位とかだから老害向けランキングでしょ
860デフォルトの名無しさん
2019/10/14(月) 15:09:43.96ID:WeKpLulI LL言語入門で有名なM.Hiroiさんは
なんでpowershellにかたくなに手を出さんのかと思ってたけど
bashとかシェルスクリプト方面は全く手を付けてないので納得
今はまさかのtcltkのページを更新中というマイペースぶり
なんでpowershellにかたくなに手を出さんのかと思ってたけど
bashとかシェルスクリプト方面は全く手を付けてないので納得
今はまさかのtcltkのページを更新中というマイペースぶり
861デフォルトの名無しさん
2019/10/22(火) 22:39:49.38ID:xAr/pqiO 3位PowerShellってマジかよ
ガチ調査版::2019年プログラミング言語 求人人気ランキング
https://qiita.com/bitai/items/c8941da683ebedd135fd
ガチ調査版::2019年プログラミング言語 求人人気ランキング
https://qiita.com/bitai/items/c8941da683ebedd135fd
862デフォルトの名無しさん
2019/10/23(水) 07:15:39.57ID:4jedgKvl >>861
決め方テキトーだからあてにならんよ
決め方テキトーだからあてにならんよ
863デフォルトの名無しさん
2019/10/23(水) 08:54:10.32ID:1cyp8e5C >>861
開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。
求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは
後者じゃないかと推測。
Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が
いくつかあるから、そういう案件もカウントされてるかもしれない。
自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。
開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。
求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは
後者じゃないかと推測。
Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が
いくつかあるから、そういう案件もカウントされてるかもしれない。
自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。
864デフォルトの名無しさん
2019/10/27(日) 10:53:22.24ID:NsKzBf3L 詳しい方、教えて下さい!
シェバン記法でバッチファイル化して実行したいのですが、自スクリプトパスを取得する方法がわかりません。
誰か教えて下さい。
シェバン記法でバッチファイル化して実行したいのですが、自スクリプトパスを取得する方法がわかりません。
誰か教えて下さい。
865デフォルトの名無しさん
2019/10/27(日) 10:58:27.15ID:Lik42TLZ PowerShell、起動が遅いのがなー
なんとかならんかなー
なんとかならんかなー
866デフォルトの名無しさん
2019/10/27(日) 11:38:43.07ID:7LOf++Wk シェバン記法てなぁに?
867デフォルトの名無しさん
2019/10/27(日) 11:42:15.29ID:NsKzBf3L >>866
以下を頭につけて拡張子を.batにするとダブルクリック実行できるようになるという記法のことです。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
以下を頭につけて拡張子を.batにするとダブルクリック実行できるようになるという記法のことです。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
868デフォルトの名無しさん
2019/10/27(日) 11:47:16.24ID:7LOf++Wk ありがと
869デフォルトの名無しさん
2019/10/27(日) 11:48:06.40ID:hJUpCTqv Ruby では、__FILE__ が現在評価中のスクリプトファイル名
シェバンは、Linux では、
#!/usr/bin/ruby
Windows に、シェバンってあるの?
.bat に、ruby .\script.rb
と書いて、ダブルクリックで起動したりする事はあるけど
.vbs でも、起動ファイルを作れる
シェバンは、Linux では、
#!/usr/bin/ruby
Windows に、シェバンってあるの?
.bat に、ruby .\script.rb
と書いて、ダブルクリックで起動したりする事はあるけど
.vbs でも、起動ファイルを作れる
870869
2019/10/27(日) 11:52:51.51ID:hJUpCTqv .bat に、powershell .\script.ps1
と書けば、ダブルクリックで起動できないか?
または、.vbs に、
CreateObject("WScript.Shell").Run "powershell .\script.ps1", 0
と書けば、ダブルクリックで起動できないか?
または、.vbs に、
CreateObject("WScript.Shell").Run "powershell .\script.ps1", 0
871デフォルトの名無しさん
2019/10/27(日) 12:06:15.48ID:NsKzBf3L872869
2019/10/27(日) 12:21:42.69ID:hJUpCTqv よく知らないけど、powershell は、ダブルクリックで起動するような、
危険なことは出来ないのじゃないか?
危険なことは出来ないのじゃないか?
873デフォルトの名無しさん
2019/10/27(日) 12:38:31.80ID:pI9qWgY0 >>872
バッチやvbsならダブルクリックも安全だとおっしゃるのでしょうか?
バッチやvbsならダブルクリックも安全だとおっしゃるのでしょうか?
874869
2019/10/27(日) 12:54:36.77ID:hJUpCTqv ダブルクリックで起動するのは、危険!
あくまで、個人用途
仕事ではやらない方が良い。
危険すぎる
あくまで、個人用途
仕事ではやらない方が良い。
危険すぎる
875デフォルトの名無しさん
2019/10/27(日) 12:57:45.64ID:gYi3Gz62 スクリプトのパスなら$MyInvocation.MyCommand.Path
876デフォルトの名無しさん
2019/10/27(日) 13:07:05.42ID:hKAQ6fM+ >>873
そのとおり
そのとおり
877デフォルトの名無しさん
2019/10/27(日) 13:40:21.93ID:Lik42TLZ878デフォルトの名無しさん
2019/10/27(日) 13:50:19.81ID:NsKzBf3L879869
2019/10/27(日) 14:01:18.04ID:hJUpCTqv ダブルクリックで起動するのは、危険!
ファイルをちょっと触っただけでも、
ダブルクリックになって起動起動されてしまうから、Microsoft も禁止してる!
Linux のシェバンでも、
ファイル名だけじゃ起動できないようにしてるだろ
./ファイル名
みたいに、パス付きじゃないと起動しないようにしてる
これも、ファイル名だけでリターンキーを触ってしまうと、起動されてしまって危険だから!
ダブルクリック起動では、多くの被害者が出てる
ファイルをちょっと触っただけでも、
ダブルクリックになって起動起動されてしまうから、Microsoft も禁止してる!
Linux のシェバンでも、
ファイル名だけじゃ起動できないようにしてるだろ
./ファイル名
みたいに、パス付きじゃないと起動しないようにしてる
これも、ファイル名だけでリターンキーを触ってしまうと、起動されてしまって危険だから!
ダブルクリック起動では、多くの被害者が出てる
880デフォルトの名無しさん
2019/10/27(日) 14:05:08.75ID:v/8cx3Zl vbsはファイルを全部パースしようとするからシェバン記法は使えないな
881デフォルトの名無しさん
2019/10/27(日) 14:05:49.29ID:Lik42TLZ ダブルクリックは危険!
ファイルをクリックしただけで起動しちゃう!
エクスプローラーからファイルをクリックできない
全部開いちゃう!
こうですか?
ファイルをクリックしただけで起動しちゃう!
エクスプローラーからファイルをクリックできない
全部開いちゃう!
こうですか?
882デフォルトの名無しさん
2019/10/27(日) 14:06:46.38ID:v/8cx3Zl 危険はexeでもバッチでも同じだろうに
powershellスクリプトだけを危険とする理由はない
powershellスクリプトだけを危険とする理由はない
883デフォルトの名無しさん
2019/10/27(日) 14:13:43.83ID:Lik42TLZ バッチファイルは危険じゃない!
APIが使えない。PowerShellスクリプトは何でもできる!
バッチファイルは他のスクリプトを呼び出すぐらいしかできない!
こうなるんですかね?
APIが使えない。PowerShellスクリプトは何でもできる!
バッチファイルは他のスクリプトを呼び出すぐらいしかできない!
こうなるんですかね?
884デフォルトの名無しさん
2019/10/27(日) 14:22:52.49ID:4/fJTv/Q >>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 キーを押してください...:
引数の名前を指定して%~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 キーを押してください...:
885デフォルトの名無しさん
2019/10/27(日) 14:26:31.81ID:vcUKQgsd >>865
PC買いかえろよ…
PC買いかえろよ…
886デフォルトの名無しさん
2019/10/27(日) 14:31:11.79ID:vcUKQgsd887デフォルトの名無しさん
2019/10/27(日) 14:32:02.36ID:v/8cx3Zl マシン替えても相対的に速くなるだけで起動が遅いのは変わらないよ
888デフォルトの名無しさん
2019/10/27(日) 14:57:41.64ID:vcUKQgsd >>887
何を言ってるんだ?w
何を言ってるんだ?w
889デフォルトの名無しさん
2019/10/27(日) 15:18:23.27ID:FsLuN3Ol 前から気になってたんだがダブルクリックでps1が起動できない設計にどれだけのセキュリティの効能があるんだろな
batの中にPSスクリプトを埋め込んで実行ポリシーも上書きできるなら実質batのセキュリティレベルまで落ちる
batをメールに添付すると自動でフィルタリングされるけどps1なら安全だからフィルタされず拡張子を書き換える手間が省ける、というレベルの価値なのかな
batの中にPSスクリプトを埋め込んで実行ポリシーも上書きできるなら実質batのセキュリティレベルまで落ちる
batをメールに添付すると自動でフィルタリングされるけどps1なら安全だからフィルタされず拡張子を書き換える手間が省ける、というレベルの価値なのかな
890デフォルトの名無しさん
2019/10/27(日) 15:40:44.98ID:Lik42TLZ >>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
これは遅すぎる。
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
これは遅すぎる。
891デフォルトの名無しさん
2019/10/27(日) 15:41:31.49ID:Lik42TLZ892デフォルトの名無しさん
2019/10/27(日) 15:46:43.24ID:Lik42TLZ ちなみに-NoProfileをつけても大差ない
-NoProfileが無いから当然だが
-NoProfileが無いから当然だが
893デフォルトの名無しさん
2019/10/27(日) 15:47:02.36ID:Lik42TLZ × -NoProfileが無いから当然だが
○ Profileが無いから当然だが
○ Profileが無いから当然だが
894デフォルトの名無しさん
2019/10/27(日) 15:50:55.08ID:ho9vIROt895デフォルトの名無しさん
2019/10/27(日) 16:00:15.75ID:Lik42TLZ896デフォルトの名無しさん
2019/10/27(日) 16:37:26.26ID:rrcAfXPk897デフォルトの名無しさん
2019/10/27(日) 16:42:00.99ID:ElQsR2/N898デフォルトの名無しさん
2019/10/27(日) 17:18:28.01ID:cWrRHY0n ColorTool を使わずに同等のことって出来ませんかね。客先のマシンなので入れられないんです。
powershell.exe から ssh で Linux につないでるんだけど、青と黒の色が似通ってて、すごく見づらいのをなんとかしたいです。
powershell.exe から ssh で Linux につないでるんだけど、青と黒の色が似通ってて、すごく見づらいのをなんとかしたいです。
899デフォルトの名無しさん
2019/10/27(日) 17:20:23.02ID:ElQsR2/N プロパティから画面の色を変えるだけやろ?しらんけど
900898
2019/10/27(日) 18:07:06.31ID:cWrRHY0n901デフォルトの名無しさん
2019/10/27(日) 19:03:23.84ID:vcUKQgsd902デフォルトの名無しさん
2019/10/27(日) 19:07:32.81ID:f+MCPxtM Write-Hostは日本語環境だと遅いよ
903デフォルトの名無しさん
2019/10/27(日) 21:04:44.37ID:jAqyy8Vt904デフォルトの名無しさん
2019/10/28(月) 00:41:43.54ID:T67vLNbE >>903
出るでしょ、と言われてもそれ俺の疑問とズレてると思うんだが…
その理屈だと、ネットワークから入手したときに警告が出るからbatもそれなりに安全
ps1も同じように警告が出るなら同じように安全
だったらダブルクリックで実行できない仕様にしたことにはあまり意味がなかった、という結論だと受け取って良い?
出るでしょ、と言われてもそれ俺の疑問とズレてると思うんだが…
その理屈だと、ネットワークから入手したときに警告が出るからbatもそれなりに安全
ps1も同じように警告が出るなら同じように安全
だったらダブルクリックで実行できない仕様にしたことにはあまり意味がなかった、という結論だと受け取って良い?
905デフォルトの名無しさん
2019/10/28(月) 00:48:33.12ID:ML+fUsJB ダブルクリック実行が危険ってのは、オペレーション次第で意図しないタイミングで実行されるからだろ
別に実行されても問題ないタイプのものならいいけど
ファイル削除系とか実行されたら何らかの情報が変化しちゃう系だと困るってことだよ
あと、ダウンロードでフラグが立つのはNTFSに落とした場合のみでFATなら警告なしだよ
別に実行されても問題ないタイプのものならいいけど
ファイル削除系とか実行されたら何らかの情報が変化しちゃう系だと困るってことだよ
あと、ダウンロードでフラグが立つのはNTFSに落とした場合のみでFATなら警告なしだよ
906デフォルトの名無しさん
2019/10/28(月) 02:25:37.55ID:bqlyCkZ6 読み込むアセンブリを減らしたりして0.1秒減らした。
これでコマンド実行時間が0.45秒ぐらいになった。
でもPowerShellの起動時間0.3秒がやはり大きい
ネイティブexeにすりゃいいんだろうけど、そうすると気軽じゃなくなるからな
VBScriptでAPIが使えるならそっちのほうが速くなりそうだけど
これでコマンド実行時間が0.45秒ぐらいになった。
でもPowerShellの起動時間0.3秒がやはり大きい
ネイティブexeにすりゃいいんだろうけど、そうすると気軽じゃなくなるからな
VBScriptでAPIが使えるならそっちのほうが速くなりそうだけど
907デフォルトの名無しさん
2019/10/28(月) 06:35:24.37ID:kjzN6NI8 >>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
漏れは、パソコン工房のノート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
908907
2019/10/28(月) 06:41:24.18ID:kjzN6NI8 ただし、漏れはいつも、ノートPC を、
CPUを1つだけ使う、省エネモードにして使っている
それで、コンパイルが遅いのかも?
CPUを1つだけ使う、省エネモードにして使っている
それで、コンパイルが遅いのかも?
909デフォルトの名無しさん
2019/10/28(月) 08:13:17.35ID:SMRk50Ri910デフォルトの名無しさん
2019/10/28(月) 11:15:58.10ID:tEsfLTI+911デフォルトの名無しさん
2019/10/28(月) 12:44:27.32ID:tEsfLTI+ Windows Updateしたら大幅に下がったwww
今裏でなにかビルドしてるんかな? ngenとか?
$ time powershell.exe -Command echo ok
ok
real 0m1.390s
user 0m0.000s
sys 0m0.016s
今裏でなにかビルドしてるんかな? ngenとか?
$ time powershell.exe -Command echo ok
ok
real 0m1.390s
user 0m0.000s
sys 0m0.016s
912デフォルトの名無しさん
2019/10/28(月) 13:01:44.65ID:tEsfLTI+ これやったけど速くならない(´・ω・`)
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/
アップデート前まで速かったのに・・・
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/
アップデート前まで速かったのに・・・
913デフォルトの名無しさん
2019/10/28(月) 13:15:03.68ID:tEsfLTI+ なにかやったような記憶をたどり、
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
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
914デフォルトの名無しさん
2019/10/28(月) 13:24:18.55ID:tEsfLTI+ ここに情報があった。
https://blogs.msdn.microsoft.com/jpvsblog/2018/05/07/ngen/
v4.0.30319 というバージョンはいつ変わるんだろう?
https://blogs.msdn.microsoft.com/jpvsblog/2018/05/07/ngen/
v4.0.30319 というバージョンはいつ変わるんだろう?
915デフォルトの名無しさん
2019/10/28(月) 13:28:19.78ID:tEsfLTI+ Windows Updateしたせいかとも思ったけど、Visual Studio入れたからかもしれんな
ともかく、ngen updateしたらもとに戻った。
しばらく放置してても治るんだろうけど
ともかく、ngen updateしたらもとに戻った。
しばらく放置してても治るんだろうけど
916デフォルトの名無しさん
2019/10/28(月) 21:32:05.62ID:WDVIXPLl 強力そうなので始めてみたんだけど、たかが文字コード変換がなんで
さらっとできないんだろう…
さらっとできないんだろう…
917デフォルトの名無しさん
2019/10/28(月) 22:42:59.54ID:8eaZgTeu C#もどうせ遅いんだろ?と思ってやってみたら単純なHello Worldだと0.1秒程度だった
PowerShellよりマシなのか。読み込むアセンブリで変わってくるとは思うけど
C++だと0.05秒。圧倒的だが情報が少なすぎる。
PowerShellよりマシなのか。読み込むアセンブリで変わってくるとは思うけど
C++だと0.05秒。圧倒的だが情報が少なすぎる。
918デフォルトの名無しさん
2019/10/28(月) 22:43:45.66ID:i5LGlrvW PowerShellがあれば、文字コード変換も簡単です。
http://scripting.cocolog-nifty.com/blog/2010/01/powershell-6147.html
http://scripting.cocolog-nifty.com/blog/2010/01/powershell-6147.html
919デフォルトの名無しさん
2019/10/29(火) 02:18:49.94ID:vBIRwBaE 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
$ 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
920デフォルトの名無しさん
2019/10/29(火) 03:21:02.42ID:rBco2ITF echoというよりコマンドレットの呼び出しにコストがかかるんだよ
Write-Outputの使用はあらゆる場面で完全に無意味で無駄だから使わない方がいい
それについてブログ書いてる人もいた
https://get-powershellblog.blogspot.com/2017/06/lets-kill-write-output.html
Write-Outputの使用はあらゆる場面で完全に無意味で無駄だから使わない方がいい
それについてブログ書いてる人もいた
https://get-powershellblog.blogspot.com/2017/06/lets-kill-write-output.html
921デフォルトの名無しさん
2019/10/29(火) 03:55:39.34ID:vBIRwBaE >>920
そうなんだろうなって気はしてた。
まだどれがコマンドレットかそうでないかよくわかってないレベルだけどw
間にハイフンで区切られてて、呼び出しにカッコがいらないのはコマンドレットだよな?
Where-Objectとかもなくせば速くなるんだろうか?
ようやくC++で実装できそうな情報が溜まってきた。
Unicodeとか訳わかんねぇ。情報がバラバラで多すぎてわからん。
たったこれだけ、たったこれだけなのに!
C++で実装したら0.1秒。だけどバイナリのビルドが必要
PowerShellだと0.45秒。
CLIコマンドとしてサクッと実行したときの体感速度が違いすぎる。
そうなんだろうなって気はしてた。
まだどれがコマンドレットかそうでないかよくわかってないレベルだけどw
間にハイフンで区切られてて、呼び出しにカッコがいらないのはコマンドレットだよな?
Where-Objectとかもなくせば速くなるんだろうか?
ようやくC++で実装できそうな情報が溜まってきた。
Unicodeとか訳わかんねぇ。情報がバラバラで多すぎてわからん。
たったこれだけ、たったこれだけなのに!
C++で実装したら0.1秒。だけどバイナリのビルドが必要
PowerShellだと0.45秒。
CLIコマンドとしてサクッと実行したときの体感速度が違いすぎる。
922デフォルトの名無しさん
2019/10/29(火) 04:14:17.53ID:rBco2ITF >>921
Where-Objectはめちゃくちゃ遅くて遅いコマンドレットの代表みたいな奴だから俺はスクリプトでは一切使わない
同様にForEach-Objectも遅い
何作ってるのか知らんけどC++はスレ違いだからあとはC++のスレでやった方がいい
powershell自体の起動も含めてC++で作ったバイナリより遅いとかいう情報は当然すぎるから要らない
Where-Objectはめちゃくちゃ遅くて遅いコマンドレットの代表みたいな奴だから俺はスクリプトでは一切使わない
同様にForEach-Objectも遅い
何作ってるのか知らんけどC++はスレ違いだからあとはC++のスレでやった方がいい
powershell自体の起動も含めてC++で作ったバイナリより遅いとかいう情報は当然すぎるから要らない
923デフォルトの名無しさん
2019/10/29(火) 05:02:05.41ID:CowX2GWO 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
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
924デフォルトの名無しさん
2019/10/29(火) 08:28:11.85ID:+8XugnXa925デフォルトの名無しさん
2019/10/29(火) 20:44:54.51ID:ltL5L5Cn こっちのスレにも書いておくわ
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
それぞれ、別々のコマンドとして実行してるのに、状態が変わるのはなんで?
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
それぞれ、別々のコマンドとして実行してるのに、状態が変わるのはなんで?
926デフォルトの名無しさん
2019/10/29(火) 20:47:41.08ID:ltL5L5Cn しかも powershell.exe だけに影響する話じゃなくて、
UTF8で書いたファイルを、コマンドプロンプト起動直後、
シフトJISモードのときにtypeしたら文字化けし、
UTF8に変更してからtypeしたら文字化けしない
明らかにコマンドプロンプトの状態が変わってる。
だけどchcpの値は932のままかわらない
ただ、PowerShellを使ってUTF8モードに切り替えると、
chcpすると「Active code page: 932」と英語で表示される。
UTF8で書いたファイルを、コマンドプロンプト起動直後、
シフトJISモードのときにtypeしたら文字化けし、
UTF8に変更してからtypeしたら文字化けしない
明らかにコマンドプロンプトの状態が変わってる。
だけどchcpの値は932のままかわらない
ただ、PowerShellを使ってUTF8モードに切り替えると、
chcpすると「Active code page: 932」と英語で表示される。
927デフォルトの名無しさん
2019/10/29(火) 23:40:36.07ID:JjalWxmz928デフォルトの名無しさん
2019/11/02(土) 12:30:04.56ID:1PdjBp7d この場合は 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' というふうに格納されてるようなんだけど、変数を展開するにはどうすればいいだろう?
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' というふうに格納されてるようなんだけど、変数を展開するにはどうすればいいだろう?
929デフォルトの名無しさん
2019/11/02(土) 12:34:23.96ID:dF2n6ehk invoke expression
930デフォルトの名無しさん
2019/11/02(土) 13:07:31.37ID:esIitHWU931928
2019/11/02(土) 13:33:24.00ID:1PdjBp7d932デフォルトの名無しさん
2019/11/02(土) 18:11:26.52ID:71SUtLbe Powershellの演算子の優先順位が判るサイトが見当たらないんですがどっかにないですかね
演算子をカテゴリ毎に紹介してるサイトは多く見かけるんですが
演算子をカテゴリ毎に紹介してるサイトは多く見かけるんですが
933デフォルトの名無しさん
2019/11/02(土) 20:16:26.21ID:0WeT0cpY934デフォルトの名無しさん
2019/11/03(日) 02:57:41.69ID:hkCRv+PE >>933
ありがとうございます!助かりました!
ありがとうございます!助かりました!
935デフォルトの名無しさん
2019/11/03(日) 03:32:58.98ID:Y1hBQ+8z どういたしまして!
936デフォルトの名無しさん
2019/11/05(火) 23:35:55.67ID:ocMK86pm 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)
フォーム上にコンボボックスを大量配置したいのですが、一つずつ以下みたいに書くと大変です。
これを関数化する方法を教えて下さい。
$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)
937デフォルトの名無しさん
2019/11/06(水) 02:58:52.99ID:+N82MWJ/ >>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()
普通に$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()
938デフォルトの名無しさん
2019/11/06(水) 05:18:39.91ID:+Isovp9U x.Size="1,2"
こういう書き方できるの知らんかった
こういう書き方できるの知らんかった
939936
2019/11/06(水) 11:38:21.31ID:viRYf3W9940デフォルトの名無しさん
2019/11/06(水) 19:25:34.62ID:du9DeY6n >>939
5.0以上にアップグレードすればWin7でも使えるんじゃないの?インストール不可なだめだけど
5.0以上にアップグレードすればWin7でも使えるんじゃないの?インストール不可なだめだけど
941936
2019/11/08(金) 09:54:16.57ID:RMGDBEVY 緊急でお願いします。マルチバイト文字のパディングのやり方を教えて下さい。サンプルコードがあると嬉しいです。
942デフォルトの名無しさん
2019/11/08(金) 10:20:36.03ID:weGpRZzk 入力と出力のサンプル位出したら
943デフォルトの名無しさん
2019/11/08(金) 10:20:37.27ID:bpFYbH+Z うっかり bash と間違えて ctrl+R と打ってしまったんだけど、PowerShel でも同じように機能したんだな。
軽く感動したわ。
軽く感動したわ。
944デフォルトの名無しさん
2019/11/08(金) 10:41:43.51ID:wfK2aVsO ctrl + Alt + shift + /
でショートカット一覧が出るからざっと見ておくといいよ
でショートカット一覧が出るからざっと見ておくといいよ
945デフォルトの名無しさん
2019/11/08(金) 11:47:48.53ID:bt2cbsd4 PowerShellにディレクトリ、ファイル名以外の
補完機能ってあるの?
補完機能ってあるの?
946デフォルトの名無しさん
2019/11/08(金) 12:27:29.71ID:CJ6EXBGx947デフォルトの名無しさん
2019/11/08(金) 14:17:43.58ID:bpFYbH+Z948デフォルトの名無しさん
2019/11/08(金) 14:41:45.11ID:wfK2aVsO ついでに以下のコマンドで画面だしとけばチートシートになるよ
Get-PSReadLineKeyHandler | ogv
Get-PSReadLineKeyHandler | ogv
949デフォルトの名無しさん
2019/11/08(金) 17:13:11.44ID:bpFYbH+Z >>948
「俺専用PowerShellアンチョコ.txt」に記録した。重ね重ねありがとう。
「俺専用PowerShellアンチョコ.txt」に記録した。重ね重ねありがとう。
950デフォルトの名無しさん
2019/11/09(土) 17:39:02.10ID:LvjWth2U powershellで海外にアクセスできないように設定できますか?
951デフォルトの名無しさん
2019/11/09(土) 17:42:01.74ID:FbsqDOHf 海外とは
952デフォルトの名無しさん
2019/11/10(日) 05:11:31.78ID:47iDVxCF そういやweb鯖のサンプルがあったな
ピロキシぐらい作れるよな
ピロキシぐらい作れるよな
953デフォルトの名無しさん
2019/11/10(日) 16:21:24.11ID:LxY6Tlm9 海外鯖を経由しない通信にしたい。
それか海外からの通信をファイアウォールで
全部ブロックしたい。
って考えたらhostsしかないかな?
めんどくさいな。
それか海外からの通信をファイアウォールで
全部ブロックしたい。
って考えたらhostsしかないかな?
めんどくさいな。
954デフォルトの名無しさん
2019/11/10(日) 16:35:30.22ID:z3CQn4/q 自分ですべての経路把握する必要あるし無理じゃね?
955デフォルトの名無しさん
2019/11/10(日) 17:15:59.31ID:iyIsn8nz >>953
曖昧すぎてアドバイスのしようがないな
曖昧すぎてアドバイスのしようがないな
956デフォルトの名無しさん
2019/11/10(日) 17:17:57.36ID:uhrgfz89 hostsに一体いくつ「海外」とやらのホストを指定するのやら
OS側でやるのが適当なのかそれ
業務用なのか個人用なのかもわからん
OS側でやるのが適当なのかそれ
業務用なのか個人用なのかもわからん
957デフォルトの名無しさん
2019/11/10(日) 17:54:04.00ID:otD8Z0ZU windows updateも海外なのか?
958デフォルトの名無しさん
2019/11/10(日) 20:34:29.07ID:LxY6Tlm9 すみませんでした。そうなるとなんかややこしくなりそうなのでやめます。
ブラウザの拡張でやりますわ。
ありがとうございました。
ブラウザの拡張でやりますわ。
ありがとうございました。
959デフォルトの名無しさん
2019/11/11(月) 08:27:46.29ID://Nnw6zP 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
https://docs.microsoft.com/ja-jp/windows/security/threat-protection/windows-firewall/windows-firewall-with-advanced-security-administration-with-windows-powershell
960デフォルトの名無しさん
2019/11/11(月) 17:18:43.20ID:WYwNeQAp ありがとうございました。
961デフォルトの名無しさん
2019/11/18(月) 08:47:59.75ID:604fXs7f タブストップ中コンボボックスの文字の背景色を青ではなく薄水色にしたいのですが、やり方がわかりません。ご存知の方、よろしくお願い申し上げます。
962自己レス
2019/11/18(月) 12:09:14.04ID:604fXs7f963デフォルトの名無しさん
2019/11/18(月) 15:09:03.25ID:Crm1ovkb test 452452424524524
964デフォルトの名無しさん
2019/11/18(月) 15:10:33.45ID:Crm1ovkb Windows 10 に標準搭載された OpenSSH と PowerShell の機能だけを使用して、公開鍵をサーバにアップロードしたいと考えています。
(ssh-copy-id は shell スクリプトなので Windows 版の OpenSSH には含まれていない)
(ssh-copy-id は shell スクリプトなので Windows 版の OpenSSH には含まれていない)
965デフォルトの名無しさん
2019/11/18(月) 15:11:33.77ID:Crm1ovkb 調べた結果、まず以下のコマンドが cmd.exe 上では完璧に動作することを確認しました。
※元のコードを貼ると 403 Forbidden となるので Pastebin を使ってます
https://pastebin.com/kCqKQm9T
これを以下の通り PowerShel に置き換えました。
https://pastebin.com/CSE9sCnB
一応、公開鍵のアップロードまでは出来たんですけど、ssh.exe のプロセスが終了しません。
(wait = $true にした場合はプロンプトが返ってこない)
何が悪いんでしょうね。
※元のコードを貼ると 403 Forbidden となるので Pastebin を使ってます
https://pastebin.com/kCqKQm9T
これを以下の通り PowerShel に置き換えました。
https://pastebin.com/CSE9sCnB
一応、公開鍵のアップロードまでは出来たんですけど、ssh.exe のプロセスが終了しません。
(wait = $true にした場合はプロンプトが返ってこない)
何が悪いんでしょうね。
966デフォルトの名無しさん
2019/11/18(月) 15:15:42.87ID:Crm1ovkb 追伸:CloudFlare で 403 Forbidden になってたのはレスに cmd.exe という文字列が含まれいたのが原因のようです。コードは関係なかったっぽい。
967デフォルトの名無しさん
2019/11/18(月) 15:35:44.61ID:Crm1ovkb どうやら、ssh.exe に対して公開鍵の文字列をパイプで渡した場合は正常終了するのですが、標準入力で渡した場合はプロセスが残ることが分かりました。
cmd.exe 上でも、標準入力で渡した場合はプロセスが残ります。
Start-Process は「You cannot pipe input to this cmdlet.」とのことでパイプからの入力を受け付けないんですけど、なにか良い手はないですかね?
cmd.exe 上でも、標準入力で渡した場合はプロセスが残ります。
Start-Process は「You cannot pipe input to this cmdlet.」とのことでパイプからの入力を受け付けないんですけど、なにか良い手はないですかね?
968デフォルトの名無しさん
2019/11/18(月) 16:07:26.07ID:Crm1ovkb 何度もすみません、自己レス。
パイプならよかろう、ということで以下の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
パイプならよかろう、ということで以下の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
969デフォルトの名無しさん
2019/11/18(月) 16:13:01.04ID:Crm1ovkb ごめんなさい、標準入力では ssh.exe が終了しない原因が分かりました。
sshkeygen で生成された id_rsa.pub は、行末で改行していないためでした。
エディタで開いて改行させたところ、
https://pastebin.com/CSE9sCnB
これでも動作しました。
お騒がせしました。
sshkeygen で生成された id_rsa.pub は、行末で改行していないためでした。
エディタで開いて改行させたところ、
https://pastebin.com/CSE9sCnB
これでも動作しました。
お騒がせしました。
970デフォルトの名無しさん
2019/11/19(火) 00:02:22.77ID:rlpD1oBO 参考になった ありがとう
971デフォルトの名無しさん
2019/11/20(水) 13:28:40.93ID:aW1lygKI どういたしまして
972デフォルトの名無しさん
2019/11/24(日) 16:11:02.22ID:UhvIpOa2 Get-ChildItemで困っている事があります。
解決方法を知っている方がいましたら教えてください。
*.txt *.bin
などの拡張子を持つファイルを一括して集める場合
$result = Get-ChildItem *.txt,*.bin
とすれば集まりますが
hoge,hage.txt
というファイル名に、 ',' が含まれているファイル名があると、 *.txt,*.bin のようなセパレーターとして認識してしまい
ワイルドカードにヒットするbase nameが hoge までになってしまい$resultに値が入ってきません。
','などのセパレーターを含むファイル名を Get-ChildItem でワイルドカード指定するにはどうすればよいでしょうか?
解決方法を知っている方がいましたら教えてください。
*.txt *.bin
などの拡張子を持つファイルを一括して集める場合
$result = Get-ChildItem *.txt,*.bin
とすれば集まりますが
hoge,hage.txt
というファイル名に、 ',' が含まれているファイル名があると、 *.txt,*.bin のようなセパレーターとして認識してしまい
ワイルドカードにヒットするbase nameが hoge までになってしまい$resultに値が入ってきません。
','などのセパレーターを含むファイル名を Get-ChildItem でワイルドカード指定するにはどうすればよいでしょうか?
973デフォルトの名無しさん
2019/11/24(日) 16:29:56.73ID:E4b/CXSq974デフォルトの名無しさん
2019/11/24(日) 20:06:33.13ID:JDFz9pDe うちはGet-ChildItem *.txt,*.binで引っかかるけど
dir *.txt,*.bin | ?{ $_.Name -like "h*"}でフィルタして確認してみれば?
dir *.txt,*.bin | ?{ $_.Name -like "h*"}でフィルタして確認してみれば?
975デフォルトの名無しさん
2019/11/28(木) 17:33:57.96ID:G1SJ/xZS スクリプトで
VPNセッションを張って、opensshでLinuxサーバーにログインしたいんですが、クレデンシャル情報ってどう引き渡せば良いですか?
VPNセッションを張って、opensshでLinuxサーバーにログインしたいんですが、クレデンシャル情報ってどう引き渡せば良いですか?
976デフォルトの名無しさん
2019/11/28(木) 17:35:59.16ID:KHBZf3ql どこのクレデンシャル情報を、どこに渡すんです?
977デフォルトの名無しさん
2019/11/28(木) 17:40:45.55ID:G1SJ/xZS >>976
ssh、vpnのコマンドにです
ssh、vpnのコマンドにです
978デフォルトの名無しさん
2019/11/28(木) 17:41:50.79ID:KHBZf3ql そのクレデンシャル情報には何が書かれてるんです?
979デフォルトの名無しさん
2019/11/28(木) 17:42:46.64ID:KHBZf3ql ssh、vpnにクレデンシャル情報を渡すとどうなるんです?
どうなるように設定したんですか?
どうなるように設定したんですか?
980デフォルトの名無しさん
2019/11/28(木) 18:10:58.12ID:G1SJ/xZS すいません。
ここで聞いたのが間違いでした。
Linuxサーバーにログインしたいと書いてあるのにどうしたいと言われても困りますので。
では。
ここで聞いたのが間違いでした。
Linuxサーバーにログインしたいと書いてあるのにどうしたいと言われても困りますので。
では。
981デフォルトの名無しさん
2019/11/28(木) 18:17:16.35ID:KHBZf3ql だからログインできるようにLinuxサーバーに設定したんですか?
982デフォルトの名無しさん
2019/11/28(木) 19:03:26.14ID:o2XGBpkX VPN関係あるの?
ssh -i 秘密キーファイル ユーザー名
という外部コマンドの呼び出し方を聞いてるの?
ssh -i 秘密キーファイル ユーザー名
という外部コマンドの呼び出し方を聞いてるの?
983デフォルトの名無しさん
2019/12/18(水) 06:19:20.47ID:DPpTEq4j ちょっと気づいたのでメモ
ハッシュテーブルからいろいろな型にキャストするのがわりといろんな場面で使える
例えば>>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 } }
としてもいい
ハッシュテーブルからいろいろな型にキャストするのがわりといろんな場面で使える
例えば>>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 } }
としてもいい
984デフォルトの名無しさん
2019/12/18(水) 06:21:03.31ID:DPpTEq4j985デフォルトの名無しさん
2019/12/18(水) 23:38:33.69ID:kDyrT7eN キャストでオブジェクト生成か
理屈は判るけどキモイな
理屈は判るけどキモイな
986デフォルトの名無しさん
2019/12/19(木) 21:20:43.94ID:A7bzsjq6 C#のオブジェクト初期化子みたいなものだと思えばいいかも
987デフォルトの名無しさん
2019/12/31(火) 07:16:04.44ID:xfr0s5Fj 怒らないで教えて欲しいんだが
WSLでよくね?
WSLでよくね?
988デフォルトの名無しさん
2019/12/31(火) 07:38:32.37ID:Ttaqvt+E いや誰もPowerShellを万能の利器とは考えてない
適材適所
適材適所
989デフォルトの名無しさん
2019/12/31(火) 09:49:11.63ID:ZmMnRfLg >>987
それに答えるためには、お前が何をしたいのかを聞く必要がある
それに答えるためには、お前が何をしたいのかを聞く必要がある
990デフォルトの名無しさん
2019/12/31(火) 09:53:59.69ID:vL9iUG+A WSL使うなら最初からLinuxをインストールして使えばいい
991デフォルトの名無しさん
2019/12/31(火) 21:14:44.78ID:wxhVB0za WSLていうかUNIXシェルでいいなら、なんでLinuxユーザーがわざわざPowerShellを使ってると思うの?
https://msit.powerbi.com/view?r=eyJrIjoiYTYyN2U3ODgtMjBlMi00MGM1LWI0ZjctMmQ3MzE2ZDNkMzIyIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9&pageName=ReportSection5
https://msit.powerbi.com/view?r=eyJrIjoiYTYyN2U3ODgtMjBlMi00MGM1LWI0ZjctMmQ3MzE2ZDNkMzIyIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9&pageName=ReportSection5
992デフォルトの名無しさん
2019/12/31(火) 21:26:22.98ID:4NGA+Zr1 >>991
知らない教えて
知らない教えて
993デフォルトの名無しさん
2019/12/31(火) 21:58:25.71ID:ajjU1twk 事情があって嫌々ながらLinux使わざるをえないWindowsユーザーがPowershell採用してる
994デフォルトの名無しさん
2019/12/31(火) 22:01:43.89ID:FiZAbpfr PowerShellのほうが強力だしな
995デフォルトの名無しさん
2020/01/01(水) 08:33:54.15ID:KGLKi7tz そろそろ Ruby ガイジが出てくる頃かな?
996デフォルトの名無しさん
2020/01/01(水) 13:06:34.59ID:voSHdO49 rubyくんが出るのは、スクリプトを作れるような質問が出たときだろ
997デフォルトの名無しさん
2020/01/01(水) 15:19:12.54ID:IT8L/q0G h
998デフォルトの名無しさん
2020/01/01(水) 15:19:29.24ID:IT8L/q0G t
999デフォルトの名無しさん
2020/01/01(水) 15:19:45.39ID:IT8L/q0G l
1000小倉優子 ◆YUKOH0W58Q
2020/01/01(水) 15:20:34.34ID:IT8L/q0G ∧,,,∧
( ・∀・) 1000ならジュースでも飲むか
( )
し─J
( ・∀・) 1000ならジュースでも飲むか
( )
し─J
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 448日 21時間 33分 46秒
新しいスレッドを立ててください。
life time: 448日 21時間 33分 46秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 江藤農相釈明「消費者への配慮足りなかった」 実際には定期的にコメは買っていると説明 ★4 [少考さん★]
- 【芸能】永野芽郁、レギュラーラジオも出演辞退 ニッポン放送「ANNX」19日放送から 番組も終了 ★2 [Ailuropoda melanoleuca★]
- 石破首相、日本の財政はギリシャより「良くない」-減税をけん制 ★2 [少考さん★]
- 車が子どもの列に突っ込んだか 小学生含む5人搬送 福岡 筑紫野 [香味焙煎★]
- 関西万博で「写真を見て絶句」 大屋根リング周辺に大量の虫が発生…ネットで話題に「不快すぎた」 [バイト歴50年★]
- 大阪万博のフランス館の美術品に虫が大量発生、元宝塚女優が苦言「フランスに謝りたい」 [muffin★]
- 【安倍悲報】トランプ、移民が米市民権かけて争うリアリティー番組を検討🥺 [359965264]
- 🍏Mrs.GREEN APPLEファンスレ🏡
- 🌝tuki.ファンスレ🏡
- 【悲報】万博2億円トイレ、またバチーン!と全面閉鎖🚽【定期】 [359965264]
- 農水大臣、『米を買ったことがない』発言を謝罪「米を買ったことがないような誤解を与えてしまい申し訳ない」 [918862327]
- 下から陥没、上から人体… 日本人、もはやおちおち外を出歩けなくなる… どうすんの、これ… [452836546]