前スレ
【最強CUI】PowerShell -Part 2
http://mevius.5ch.net/test/read.cgi/tech/1480109402/
PowerShell -Part 3
レス数が950を超えています。1000を超えると書き込みができなくなります。
2018/10/09(火) 17:46:48.32ID:G4IJkzod
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
これでも動作しました。
お騒がせしました。
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 【悲報】ジャップ、どうやら中国が一方的に戦争仕掛けてくると思ってる模様😰 [616817505]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【高市速報】明日から中国からの輸入が停止すれば2ヵ月で国内の生産業に53兆円の損失発生 [931948549]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
