前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/
次スレは>>980が立ててね!!
探検
PowerShell -Part 5
■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
269デフォルトの名無しさん
2021/05/24(月) 21:35:34.82ID:w2G2xBi9270デフォルトの名無しさん
2021/05/24(月) 22:01:00.03ID:uBa1LY8b Ruby on Rails のテストでは、
HTTP のREST API なら、curl, Postman。
VSCode の拡張機能なら、REST Client, Thunder Client
REST Client では、コマンドパレットのGenerate Code Snippet で、
Ruby, PowerShell など、各言語のコードに変換してくれる!
TCP と言うのは、あまりに原始的過ぎて、よく分からない。
curlで出来るかも知れない
新し目のWindows 10 には、curl.exe も入った。
コマンドプロンプトで、where curl と入力すると、
C:\Windows\System32\curl.exe
なお、PowerShell内でcurlを使うのには注意が必要。
デフォルトで「Invoke-WebRequest」コマンドのエイリアスとして、curlが設定されている。
このため、PowerShell内でcurlコマンドを使うには、
フルパスを指定するか、curl.exeと指定する必要がある
Linux のcurlと区別するため、
漏れは、Invoke-WebRequest は、curlモドキ・なんちゃってcurlなどと呼んでいる
HTTP のREST API なら、curl, Postman。
VSCode の拡張機能なら、REST Client, Thunder Client
REST Client では、コマンドパレットのGenerate Code Snippet で、
Ruby, PowerShell など、各言語のコードに変換してくれる!
TCP と言うのは、あまりに原始的過ぎて、よく分からない。
curlで出来るかも知れない
新し目のWindows 10 には、curl.exe も入った。
コマンドプロンプトで、where curl と入力すると、
C:\Windows\System32\curl.exe
なお、PowerShell内でcurlを使うのには注意が必要。
デフォルトで「Invoke-WebRequest」コマンドのエイリアスとして、curlが設定されている。
このため、PowerShell内でcurlコマンドを使うには、
フルパスを指定するか、curl.exeと指定する必要がある
Linux のcurlと区別するため、
漏れは、Invoke-WebRequest は、curlモドキ・なんちゃってcurlなどと呼んでいる
271デフォルトの名無しさん
2021/05/24(月) 22:03:00.09ID:CXmqjMeO C#で書いてAdd-Typeで貼り付ければpowershellとして納品できるよ
下手にC#のコードをpowershellで書き直してもややこしくなるだけと俺は思う
C#のusingとか便利な機能はpowershellじゃ使えないし
下手にC#のコードをpowershellで書き直してもややこしくなるだけと俺は思う
C#のusingとか便利な機能はpowershellじゃ使えないし
272デフォルトの名無しさん
2021/05/24(月) 22:06:04.28ID:JeDrA5YU273270
2021/05/24(月) 22:12:06.08ID:uBa1LY8b 例えば、HTTP のREST API で、VSCode の拡張機能・REST Client で、
コマンドパレットのGenerate Code Snippet から、
PowerShell のInvoke-WebRequest に変換すると、
POST http://localhost:8888/ HTTP/1.1
content-type: application/json
[[0,0],[10,20],[10,10]]
変換後は、
$headers=@{}
$headers.Add("user-agent", "vscode-restclient")
$headers.Add("content-type", "application/json")
$response = Invoke-WebRequest -Uri 'http://localhost:8888/'
-Method POST -Headers $headers -ContentType 'application/json'
-Body '[[0,0],[10,20],[10,10]]'
コマンドパレットのGenerate Code Snippet から、
PowerShell のInvoke-WebRequest に変換すると、
POST http://localhost:8888/ HTTP/1.1
content-type: application/json
[[0,0],[10,20],[10,10]]
変換後は、
$headers=@{}
$headers.Add("user-agent", "vscode-restclient")
$headers.Add("content-type", "application/json")
$response = Invoke-WebRequest -Uri 'http://localhost:8888/'
-Method POST -Headers $headers -ContentType 'application/json'
-Body '[[0,0],[10,20],[10,10]]'
274デフォルトの名無しさん
2021/05/24(月) 22:44:21.48ID:w2G2xBi9275デフォルトの名無しさん
2021/05/25(火) 00:37:08.72ID:BrdQ0eWW 俺ならGo使うかな
276デフォルトの名無しさん
2021/05/25(火) 01:23:28.04ID:HjVIkAeM >>274
rawresponseじゃなくてbufferをencodingしてあげればいいところまでできてるんだから、このままpowershellでいいんでない?
rawresponseじゃなくてbufferをencodingしてあげればいいところまでできてるんだから、このままpowershellでいいんでない?
277デフォルトの名無しさん
2021/05/25(火) 08:42:47.61ID:ENuLboQX278デフォルトの名無しさん
2021/05/25(火) 09:15:13.27ID:aFPnVfgm readlineしたら解決しました。CUIだめって言われたらC#に手を出そうと思いますありがとうございました
279デフォルトの名無しさん
2021/05/26(水) 22:31:01.46ID:MX2vxe2/ xargs -I @に変わるものって何かあります?
280デフォルトの名無しさん
2021/05/26(水) 23:15:56.00ID:MX2vxe2/ 自己解決しました
$_にすでに代入されてました
$_にすでに代入されてました
281デフォルトの名無しさん
2021/05/31(月) 00:53:31.89ID:jC76eDpN サーバーのログファイルが24時越えの時刻形式で出力してくるんだけど
これをDateTime型に変換するもっとスマートな方法ありませんか?
$Date = "20210531285930"
# 24時超えなのでDateTime型に変換できない
[DateTime]::ParseExact($Date,"yyyyMMddHHmmss",$null)
# HH部分を-24でDateTime型に変換してからAddDays
[DateTime]::ParseExact(($Date.Insert(8,"{0:D2}" -f ($Date.Substring(8,2) -24))).Remove(10,2),"yyyyMMddHHmmss",$null).AddDays(1)
# 各部を切り出して-24でDateTime型に変換してからAddDays
([DateTime]($Date.SubString(0,4) + "/" + $Date.SubString(4,2) + "/" + $Date.SubString(6,2) + " {0:D2}" -f ($Date.SubString(8,2) -24) + ":" + $Date.SubString(10,2))).AddDays(1)
これをDateTime型に変換するもっとスマートな方法ありませんか?
$Date = "20210531285930"
# 24時超えなのでDateTime型に変換できない
[DateTime]::ParseExact($Date,"yyyyMMddHHmmss",$null)
# HH部分を-24でDateTime型に変換してからAddDays
[DateTime]::ParseExact(($Date.Insert(8,"{0:D2}" -f ($Date.Substring(8,2) -24))).Remove(10,2),"yyyyMMddHHmmss",$null).AddDays(1)
# 各部を切り出して-24でDateTime型に変換してからAddDays
([DateTime]($Date.SubString(0,4) + "/" + $Date.SubString(4,2) + "/" + $Date.SubString(6,2) + " {0:D2}" -f ($Date.SubString(8,2) -24) + ":" + $Date.SubString(10,2))).AddDays(1)
282デフォルトの名無しさん
2021/05/31(月) 00:57:08.36ID:jC76eDpN 一番下のやつ秒2桁が抜けてた・・
283デフォルトの名無しさん
2021/05/31(月) 04:45:30.44ID:c+QWTXgx ごく普通のやり方しか思いつかんかった
if ('20210531285931' -match '(\d{8})(\d\d)(\d\d)(\d\d)') {
$date = [datetime]::ParseExact($Matches[1],'yyyyMMdd', $null)
$h = $null
$date = $date.AddDays([math]::DivRem($Matches[2], 24, [ref]$h))
$date += [TimeSpan]::new($h, $Matches[3], $Matches[4])
$date.ToString('yyyyMMddhhmmss')
}
if ('20210531285931' -match '(\d{8})(\d\d)(\d\d)(\d\d)') {
$date = [datetime]::ParseExact($Matches[1],'yyyyMMdd', $null)
$h = $null
$date = $date.AddDays([math]::DivRem($Matches[2], 24, [ref]$h))
$date += [TimeSpan]::new($h, $Matches[3], $Matches[4])
$date.ToString('yyyyMMddhhmmss')
}
284デフォルトの名無しさん
2021/05/31(月) 07:24:21.11ID:M6x27Cpl >>281
24からいくつまで考慮すればいいですか?
24からいくつまで考慮すればいいですか?
285デフォルトの名無しさん
2021/05/31(月) 09:41:49.56ID:etoumxTf 0〜23時は、そのまま
24〜47時は、24 を引いて、0〜23 にして、1日足す
24〜47時は、24 を引いて、0〜23 にして、1日足す
286デフォルトの名無しさん
2021/05/31(月) 09:54:44.55ID:FG6+Y3f8 Javaだと勝手に繰り上げてむしろ頼んでねーよと思ったけどシェルスクリプトであるPSにはLenientな日付解釈が見当たらないな
ままならないね
ままならないね
287デフォルトの名無しさん
2021/05/31(月) 11:40:17.32ID:96kHy/rj 整数の24で割って割った値を日付に加算、余りを時間にすればいいんじゃね
288デフォルトの名無しさん
2021/05/31(月) 16:07:40.72ID:HhBT8tJD >>287
コード化するとこんな感じスかねぇ
$Date = "20210531285930"
if ($Date -match '(\d{8})(\d\d)(\d{4})') {
[DateTime]::ParseExact(
$matches[1] + "{0:00}" -f ($matches[2] % 24) + $Matches[3],
"yyyyMMddHHmmss",$null).AddDays([Math]::Truncate($matches[2] / 24))
}
結果
2021年6月1日 4:59:30
コード化するとこんな感じスかねぇ
$Date = "20210531285930"
if ($Date -match '(\d{8})(\d\d)(\d{4})') {
[DateTime]::ParseExact(
$matches[1] + "{0:00}" -f ($matches[2] % 24) + $Matches[3],
"yyyyMMddHHmmss",$null).AddDays([Math]::Truncate($matches[2] / 24))
}
結果
2021年6月1日 4:59:30
289デフォルトの名無しさん
2021/05/31(月) 17:54:07.74ID:Ji9/Q1Oe 短くできたw
if ('20210531285930' -match '(¥d{8})(¥d¥d)(¥d¥d)(¥d¥d)') {
$date = [datetime]::ParseExact($Matches[1],'yyyyMMdd', $null)
$date = $date.AddSeconds(3600 * $Matches[2] + 60 * $Matches[3] + $Matches[4])
}
if ('20210531285930' -match '(¥d{8})(¥d¥d)(¥d¥d)(¥d¥d)') {
$date = [datetime]::ParseExact($Matches[1],'yyyyMMdd', $null)
$date = $date.AddSeconds(3600 * $Matches[2] + 60 * $Matches[3] + $Matches[4])
}
291sage
2021/05/31(月) 22:04:33.58ID:u2buNtAx 普通にtimespanを足せば良いのでは
if ('20210531285930' -match '(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)') {
$date = [datetime]::new($Matches[1],$Matches[2],$Matches[3]) + [timespan]::new($Matches[4],$Matches[5],$Matches[6])
}
if ('20210531285930' -match '(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)') {
$date = [datetime]::new($Matches[1],$Matches[2],$Matches[3]) + [timespan]::new($Matches[4],$Matches[5],$Matches[6])
}
292デフォルトの名無しさん
2021/05/31(月) 22:21:34.37ID:Xrj+zWn5 それで良さそう
293デフォルトの名無しさん
2021/05/31(月) 22:56:32.02ID:Jlz0F1qQ なんや?!
みんな天才か〜?
みんな天才か〜?
295デフォルトの名無しさん
2021/06/01(火) 14:33:19.17ID:XU9T32gU うむ。.netのクラスとか俺ほとんど知らんしなw
296デフォルトの名無しさん
2021/06/01(火) 22:23:28.52ID:9NYpA/Ih Powershellって無くなるって本当ですか?
ある人が言うには、マイクロソフトが公式で
「Powershellは無くして、Bashに統合するって言ってるからPowershellなんて使えても意味ないよ」<ほぼ原文
という事らしいです。
@そのものズバリの公式案内って出てますか?
A「xxを拡大解釈して、↑のような話と勘違いしてるのではないか」というのがあったら教えてください。
ある人が言うには、マイクロソフトが公式で
「Powershellは無くして、Bashに統合するって言ってるからPowershellなんて使えても意味ないよ」<ほぼ原文
という事らしいです。
@そのものズバリの公式案内って出てますか?
A「xxを拡大解釈して、↑のような話と勘違いしてるのではないか」というのがあったら教えてください。
297デフォルトの名無しさん
2021/06/01(火) 22:39:23.71ID:4GbGJr6m 無くすとしても10年くらいかかりそう
298デフォルトの名無しさん
2021/06/01(火) 23:08:56.48ID:j5BVtDLr powershell 5.1じゃなくて.Net Coreベースのpowershell 7を学習しようとかじゃなくて、まるっきりbashに置き換わるってなると妄想レベルとしか
299デフォルトの名無しさん
2021/06/01(火) 23:19:45.60ID:zB/DdO2P マイクロソフト公式がそう言ってるならその発言ソースをググって見つければいい
公式→ある人→296→いまここ
なので、しょうもない伝言ゲームだろうね
公式→ある人→296→いまここ
なので、しょうもない伝言ゲームだろうね
300デフォルトの名無しさん
2021/06/02(水) 00:33:14.18ID:eotjJV13 そんな発言があれば間違いなくニュースになってる
301デフォルトの名無しさん
2021/06/02(水) 01:29:05.02ID:bSFCodu+ まあ無くなるかはともかく、pscoreでちょっと怪しくなってきたよね
pscoreが今後Windowsにバンドルされることは恐らくないだろうから、PowerShellはWindowsOSの一部から単なるアプリの一つへとある意味格下げされたわけだ
それについてはMSも公式に明言している(https://docs.microsoft.com/ja-jp/powershell/scripting/powershell-support-lifecycle?view=powershell-7.1)
そしてps5の方は既に完全にメンテナンスモード入りしており、今後の進化は無いし、いずれはWindowsにバンドルされなくなるだろう
PowerShellはWindowsプラットフォームにおいて特別な存在ではなくなりつつあり、bashと同じ土俵に降りるんだよ
pscoreが今後Windowsにバンドルされることは恐らくないだろうから、PowerShellはWindowsOSの一部から単なるアプリの一つへとある意味格下げされたわけだ
それについてはMSも公式に明言している(https://docs.microsoft.com/ja-jp/powershell/scripting/powershell-support-lifecycle?view=powershell-7.1)
そしてps5の方は既に完全にメンテナンスモード入りしており、今後の進化は無いし、いずれはWindowsにバンドルされなくなるだろう
PowerShellはWindowsプラットフォームにおいて特別な存在ではなくなりつつあり、bashと同じ土俵に降りるんだよ
302デフォルトの名無しさん
2021/06/02(水) 01:51:03.87ID:2CEtavTf 正直bash標準はイヤだな
PowerShellと比較して仕様が古臭過ぎる
PowerShellと比較して仕様が古臭過ぎる
303デフォルトの名無しさん
2021/06/02(水) 07:37:21.92ID:GaFo88h4 bashでwindowsの中身いじるのができなかったからpowershell作る必要があった訳で
304デフォルトの名無しさん
2021/06/02(水) 08:00:00.07ID:QekliMfV >>301
.NET 5か6がOSリリースに組み込まれるようになれば一緒に置き換わるでしょ
インタラクティブなシェル機能だけが重要でbashというかreadlineが使いたいなら使えばよいけど、.NETをbashから使える仕組みってできてるんだっけ?
.NET 5か6がOSリリースに組み込まれるようになれば一緒に置き換わるでしょ
インタラクティブなシェル機能だけが重要でbashというかreadlineが使いたいなら使えばよいけど、.NETをbashから使える仕組みってできてるんだっけ?
305デフォルトの名無しさん
2021/06/02(水) 08:48:27.00ID:UfLjqhXv bashとかを置き換えるつもりだと思ってたんだけど…
もうちょい野心持っていいのよ?
wsl使ってるけど$profileとか共有できてすごく便利なんだけど
bashもよく使うが、補完が各コマンドにハードコード対応してる仕組みなので、GNU Readlineが生きてないなと
PSReadline/pwshみたいにユーザースクリプトにParam記述できる仕様じゃないとインタラクティブシェルとして将来性が無いと思う
逆に言えば、コメントに#Param記述して読んで補完くれるbsh系があれば便利ね
コメントなら互換性も問題ないでしょ
もうちょい野心持っていいのよ?
wsl使ってるけど$profileとか共有できてすごく便利なんだけど
bashもよく使うが、補完が各コマンドにハードコード対応してる仕組みなので、GNU Readlineが生きてないなと
PSReadline/pwshみたいにユーザースクリプトにParam記述できる仕様じゃないとインタラクティブシェルとして将来性が無いと思う
逆に言えば、コメントに#Param記述して読んで補完くれるbsh系があれば便利ね
コメントなら互換性も問題ないでしょ
306デフォルトの名無しさん
2021/06/02(水) 08:52:13.04ID:UfLjqhXv wslスレ覗くとpwsh使ってる人結構多いように思える
まあ変なのいっぱい居てアレ過ぎるスレだが、蛇足
まあ変なのいっぱい居てアレ過ぎるスレだが、蛇足
307デフォルトの名無しさん
2021/06/02(水) 09:04:39.46ID:Q9QmX+x6 Windows Subsystem for Linux に関してよく寄せられる質問
https://docs.microsoft.com/ja-jp/windows/wsl/faq#powershell-----------------
PowerShell においてこれは何を意味しますか。
OSS プロジェクトでの作業中、PowerShell プロンプトから Bash を実行すると非常に役立つシナリオが多数あります。
Bash のサポートは補完的なものであり、Windows でのそのコマンド ラインの価値を高め、
PowerShell と PowerShell コミュニティでその他の一般的なテクノロジを利用できるようにします。
詳細については、PowerShell チームのブログ「Windows の Bash:それがすばらしい理由と PowerShell における意味」をお読みください
https://devblogs.microsoft.com/powershell/bash-for-windows-why-its-awesome-and-what-it-means-for-powershell/
https://docs.microsoft.com/ja-jp/windows/wsl/faq#powershell-----------------
PowerShell においてこれは何を意味しますか。
OSS プロジェクトでの作業中、PowerShell プロンプトから Bash を実行すると非常に役立つシナリオが多数あります。
Bash のサポートは補完的なものであり、Windows でのそのコマンド ラインの価値を高め、
PowerShell と PowerShell コミュニティでその他の一般的なテクノロジを利用できるようにします。
詳細については、PowerShell チームのブログ「Windows の Bash:それがすばらしい理由と PowerShell における意味」をお読みください
https://devblogs.microsoft.com/powershell/bash-for-windows-why-its-awesome-and-what-it-means-for-powershell/
308デフォルトの名無しさん
2021/06/02(水) 09:37:33.58ID:F5GxLFUH >>304
.NET5以降がWindowsにバンドルされることはないでしょ
ライフサイクルをWindowsに拘束されたくないから.NET Coreは完全なサイドバイサイドとSCDを実現したのに、そんなことをしたら台無し
.NETを使うならpwshというのはこれからもずっと変わらないだろうし、一貫したコマンドレットの体系でWindowsのサーバー管理ができるという強みもあるけど、後者については案外突然.NET非依存のWindows CLIとか出るかもよ
Azure CLIだってPythonで書かれてるんだし
.NET5以降がWindowsにバンドルされることはないでしょ
ライフサイクルをWindowsに拘束されたくないから.NET Coreは完全なサイドバイサイドとSCDを実現したのに、そんなことをしたら台無し
.NETを使うならpwshというのはこれからもずっと変わらないだろうし、一貫したコマンドレットの体系でWindowsのサーバー管理ができるという強みもあるけど、後者については案外突然.NET非依存のWindows CLIとか出るかもよ
Azure CLIだってPythonで書かれてるんだし
309デフォルトの名無しさん
2021/06/02(水) 09:53:48.83ID:IMALmVrS それもしかして、WSHというヤツでは?
まあ好きでもないし新しいのに置き換えてくれるのは歓迎だよ
$wsh = new-object -com w/cscript.shell
みたいにしてたまにメソッドこねこねするけど、COMオブジェクトのインターフェイス備えるなら今まで通り叩けるんじゃない
まあ好きでもないし新しいのに置き換えてくれるのは歓迎だよ
$wsh = new-object -com w/cscript.shell
みたいにしてたまにメソッドこねこねするけど、COMオブジェクトのインターフェイス備えるなら今まで通り叩けるんじゃない
310デフォルトの名無しさん
2021/06/02(水) 11:02:38.88ID:CFdyIdLe C#越しとかでローレベルAPI叩けたり大丈夫かこれって思ってたらやっぱ消えるのか・・・
311デフォルトの名無しさん
2021/06/02(水) 11:07:50.97ID:E0Lr8asm >>310
消えないよ
消えないよ
312デフォルトの名無しさん
2021/06/02(水) 11:15:29.60ID:UfLjqhXv .net coreの実装はいっぱいあるからバックエンドは心配ないんじゃない?
MS推奨の.net core, asp core, 使ったことないがMSから少し離れてもmonoとか他にも
.net core(linux)は50MBくらいにまとまってたかと
MS推奨の.net core, asp core, 使ったことないがMSから少し離れてもmonoとか他にも
.net core(linux)は50MBくらいにまとまってたかと
313デフォルトの名無しさん
2021/06/02(水) 11:35:59.36ID:UfLjqhXv >>308
winへの巨大なpythonランタイムのバンドルが許されるんなら、.net coreもバンドルしていいんじゃないかな(並存で)
.net coreはpythonライブラリとしても便利だし、今時数百MBくらいケチらないで両方入れて欲しい
スマホにすら.net core以上相当のXamarinやmono入ってるだろ(多分ストアから依存経由で)
winへの巨大なpythonランタイムのバンドルが許されるんなら、.net coreもバンドルしていいんじゃないかな(並存で)
.net coreはpythonライブラリとしても便利だし、今時数百MBくらいケチらないで両方入れて欲しい
スマホにすら.net core以上相当のXamarinやmono入ってるだろ(多分ストアから依存経由で)
314デフォルトの名無しさん
2021/06/02(水) 12:14:47.64ID:F5GxLFUH >>313
WindowsにバンドルされてしまうとMSはそれをWindowsの一部としてサポートしなければならなくなり、.NETのモダンライフサイクルポリシーと矛盾する
また、Windowsにバンドルされているバージョン以外はほとんど利用されなくなり、プラットフォームの進化が停滞する
もしpwshをWindowsにバンドルするならSCDにして.NETのライフサイクルから分離してしまうしかないだろうけど、
それはそれで.NETランタイムのバージョンがpwshにバンドルされているものに拘束されることになり、pwshエコシステムの外にある.NET資産との連携がしづらくなるだろうから難しいところだな
WindowsにバンドルされてしまうとMSはそれをWindowsの一部としてサポートしなければならなくなり、.NETのモダンライフサイクルポリシーと矛盾する
また、Windowsにバンドルされているバージョン以外はほとんど利用されなくなり、プラットフォームの進化が停滞する
もしpwshをWindowsにバンドルするならSCDにして.NETのライフサイクルから分離してしまうしかないだろうけど、
それはそれで.NETランタイムのバージョンがpwshにバンドルされているものに拘束されることになり、pwshエコシステムの外にある.NET資産との連携がしづらくなるだろうから難しいところだな
315デフォルトの名無しさん
2021/06/02(水) 12:36:23.07ID:rkuOfU34 winはサードパーティの物はバンドルしない方針じゃない?ルールになってるかはしらんが
まあ善き終身独裁者はMS社員なので、pythonがMSサポートになる可能性はあるかも?
最近サポート切れた2.7をバンドルし、ディストリ拡張に汎用してたlinuxは現に大変なことなってるし、止めといた方がいい
まあ善き終身独裁者はMS社員なので、pythonがMSサポートになる可能性はあるかも?
最近サポート切れた2.7をバンドルし、ディストリ拡張に汎用してたlinuxは現に大変なことなってるし、止めといた方がいい
316デフォルトの名無しさん
2021/06/02(水) 12:41:40.74ID:zHxHmDvh >>315
ゲイツはMSから退いてるぞ
ゲイツはMSから退いてるぞ
317デフォルトの名無しさん
2021/06/02(水) 12:47:09.90ID:UfLjqhXv python作者のことだろ、BDFL(benevolent dictator for life,だっけ)
30年以上歴史あるのに未だにバンバン破壊的変更加えてる姿勢は見習うべき
pwsh core使ってる層にロングタームサポート望んでる人はそんな多くないだろ
堅牢にやりたいならshやwsh、.net framework使え
30年以上歴史あるのに未だにバンバン破壊的変更加えてる姿勢は見習うべき
pwsh core使ってる層にロングタームサポート望んでる人はそんな多くないだろ
堅牢にやりたいならshやwsh、.net framework使え
318デフォルトの名無しさん
2021/06/02(水) 13:04:35.43ID:UfLjqhXv 見てきた
Version サポート終了
7.1 2022 年 2 月中旬 (予定)
7.0 2022 年 12 月 3 日 ☆LTS
意外と短かった、こんなもんでいい
python3はマイナーバージョンでも予告なしでAPI変わるけど誰も気にしてない
3.10にして外部ライブラリ入れたら標準ライブラリcollectionsでNotFound頻発してるけど、その場で名前書き変えて問題なし、ヨシ!
って感じだし
Version サポート終了
7.1 2022 年 2 月中旬 (予定)
7.0 2022 年 12 月 3 日 ☆LTS
意外と短かった、こんなもんでいい
python3はマイナーバージョンでも予告なしでAPI変わるけど誰も気にしてない
3.10にして外部ライブラリ入れたら標準ライブラリcollectionsでNotFound頻発してるけど、その場で名前書き変えて問題なし、ヨシ!
って感じだし
319デフォルトの名無しさん
2021/06/02(水) 13:11:04.61ID:CFdyIdLe .>誰も気にしてない
めっちゃ主語でかいなー
そんなわけないだろ
めっちゃ主語でかいなー
そんなわけないだろ
320デフォルトの名無しさん
2021/06/02(水) 13:16:47.25ID:UfLjqhXv ごめん、エンドユーザーじゃなくてライブラリユーザーレベルの話だね
まあ気にしてる作者は仮想環境で複数バージョンテストしてそのうち直すだろ
まあ気にしてる作者は仮想環境で複数バージョンテストしてそのうち直すだろ
321デフォルトの名無しさん
2021/06/02(水) 13:35:13.53ID:gM4d3FGp パッケージマネージャに対してversion≧3.3のような、未来バージョンも含めた指定をするのは普通じゃなかろうか
対象に含まれてるはずなのに対応してないってことはそういう事だろ
対象に含まれてるはずなのに対応してないってことはそういう事だろ
322デフォルトの名無しさん
2021/06/02(水) 14:38:34.65ID:UfLjqhXv >>314
そういうことかね
ところで.net(core含む)はwindowsコンポーネントではないけど、windows updateでリンクすることは可能なよう
Automatic patching on Windows operating system
All versions of .NET that are supported can be automatically patched via Microsoft Update. This enables organizations to manage all .NET updates in the same way.
ついでにpwshもランタイム分離版(sdkに付いてるdotnetサブコマンドで起動するやつ)を含めてしまえば、停滞も避けれると思うのだけれど
社内デプロイ想定のようだけど、その場合はWindow Updateはむしろ切っときたいというのは、ツッコミどころ?
https://dotnet.microsoft.com/platform/support/policy/dotnet-core
そういうことかね
ところで.net(core含む)はwindowsコンポーネントではないけど、windows updateでリンクすることは可能なよう
Automatic patching on Windows operating system
All versions of .NET that are supported can be automatically patched via Microsoft Update. This enables organizations to manage all .NET updates in the same way.
ついでにpwshもランタイム分離版(sdkに付いてるdotnetサブコマンドで起動するやつ)を含めてしまえば、停滞も避けれると思うのだけれど
社内デプロイ想定のようだけど、その場合はWindow Updateはむしろ切っときたいというのは、ツッコミどころ?
https://dotnet.microsoft.com/platform/support/policy/dotnet-core
323デフォルトの名無しさん
2021/06/02(水) 17:45:18.44ID:eotjJV13 .NET 5のバンドルがありえないならbashのバンドルはもっとありえないだろ
324デフォルトの名無しさん
2021/06/02(水) 18:10:19.15ID:F5GxLFUH WSLはオプションとして既にWindowsにバンドルされていて、Windowsの次期メジャーアップデートではデフォルトで有効化されてコマンド一発でBashが入るようになるよ
325デフォルトの名無しさん
2021/06/02(水) 18:11:19.60ID:t4iIkgqg bashはwindowsには向かないと思うよ…
既にcygwinや派生のmimgwがあるけど、前者は完全にunixっぽい箱庭だし
一応winに適応を試みてる後者も限られた外部コマンド以外は自力移植で苦労ばかり、変に合わせた分むしろunixに慣れたユーザに拒絶されそう
単にunixの資産を活用したいならwslという手段があるので、今更MSが参入するとも思えない
既にcygwinや派生のmimgwがあるけど、前者は完全にunixっぽい箱庭だし
一応winに適応を試みてる後者も限られた外部コマンド以外は自力移植で苦労ばかり、変に合わせた分むしろunixに慣れたユーザに拒絶されそう
単にunixの資産を活用したいならwslという手段があるので、今更MSが参入するとも思えない
326デフォルトの名無しさん
2021/06/02(水) 18:24:43.00ID:t4iIkgqg (b)sh資産を活用するって言ったって、ファイルシステムやコマンドの振る舞いを決め打ちして書かれた物ばっかりだろ
箱庭にするしかない
一応wslからNTFSにもアクセスできるけど、よりファイル属性の少ないext4想定でlnとか使うとおかしな事になるよ
gnuが対応要請に答えるとも思えんし
シンボリックリンク貼りたいならnew-itemを使おう
箱庭にするしかない
一応wslからNTFSにもアクセスできるけど、よりファイル属性の少ないext4想定でlnとか使うとおかしな事になるよ
gnuが対応要請に答えるとも思えんし
シンボリックリンク貼りたいならnew-itemを使おう
327デフォルトの名無しさん
2021/06/02(水) 18:43:46.15ID:UfLjqhXv 話が噛み合ってない感
328デフォルトの名無しさん
2021/06/02(水) 18:46:54.40ID:UfLjqhXv そもそもwin用シェルとしてbashがマトモに使えるなんて思ってる人なんて居ないだろう
それこそcygwin等の試み見れば明らかなわけで
それこそcygwin等の試み見れば明らかなわけで
329デフォルトの名無しさん
2021/06/02(水) 18:59:31.15ID:2HVZ8jbI あとは>>296の知り合いが何でこんな盲言を吐いたかだが
330デフォルトの名無しさん
2021/06/02(水) 19:03:10.35ID:3t5/Z9zL その知り合いのソースは何なんだ
331デフォルトの名無しさん
2021/06/02(水) 19:51:52.07ID:24d6Ptrc ウスターソース
332296
2021/06/02(水) 19:54:46.99ID:WrCWc0lw すいません、もうちっと前後関係書くべきでした、
私→転職者
ボス→ボス
無くなるさん→Powershell無くなるよさん
ボス「私さん、何がスクリプト言語的なものって扱える?」
私「bashと、Powershellはそこそこ使えます」「あと、おまけ程度ですがVBAも少々」
ボスLinuxとWindows両方いけるんだね」「Powershellは使える人少ないから、助かる!」
無くなるさん「Powershellは無くして、Bashに統合するって言ってるからPowershellなんて使えても意味ないよ」
っていう流れがありました事を、ご報告いたします。
今は7系勉強中です。
私→転職者
ボス→ボス
無くなるさん→Powershell無くなるよさん
ボス「私さん、何がスクリプト言語的なものって扱える?」
私「bashと、Powershellはそこそこ使えます」「あと、おまけ程度ですがVBAも少々」
ボスLinuxとWindows両方いけるんだね」「Powershellは使える人少ないから、助かる!」
無くなるさん「Powershellは無くして、Bashに統合するって言ってるからPowershellなんて使えても意味ないよ」
っていう流れがありました事を、ご報告いたします。
今は7系勉強中です。
333デフォルトの名無しさん
2021/06/02(水) 19:59:01.30ID:QekliMfV スクリプト前提の文脈なんで、なおさらスルーでよさげですね
ただのマウンターにしかみえないっす
ただのマウンターにしかみえないっす
334デフォルトの名無しさん
2021/06/02(水) 20:05:35.68ID:paXbiIpM ボスの発言の後でそれ言える勇気は凄いな
詳細thxだけど知り合いにバレないよう気を付けてね
詳細thxだけど知り合いにバレないよう気を付けてね
335デフォルトの名無しさん
2021/06/02(水) 20:16:35.85ID:bfx/xSx/ wslとか言ってる奴はプロセス制御とかどうする気なのか気になる
winネイティブ実装のbash(msys?)なら原理的には可能とおもうが…
*-Processがそれぞれどのコマンドにマッピングされてるのか気になる
winネイティブ実装のbash(msys?)なら原理的には可能とおもうが…
*-Processがそれぞれどのコマンドにマッピングされてるのか気になる
336デフォルトの名無しさん
2021/06/02(水) 21:09:20.70ID:hTaL5nRv 公式win版sh系移植が出るんなら、それはそれで裾野が広がるからいいと思う
ただし新規導入されるであろうcomオブジェクトやレジストリ弄りコマンドを、引数補完の弱いbashでやるのは勘弁してほしい
たぶん古き悪き対話式のwinコマンド叩く事になりそう
もしやるならzshで頼む
ただし新規導入されるであろうcomオブジェクトやレジストリ弄りコマンドを、引数補完の弱いbashでやるのは勘弁してほしい
たぶん古き悪き対話式のwinコマンド叩く事になりそう
もしやるならzshで頼む
337デフォルトの名無しさん
2021/06/02(水) 21:58:17.73ID:rILnhmEC シェルスクリプトなんて現システムで動けば十分なのに遠い未来になくなること心配しても意味ないような
338デフォルトの名無しさん
2021/06/02(水) 22:02:01.60ID:UfLjqhXv プロバイダを擬似ファイルシステムとしてマウントしすれば補完できないかな
プロパティやメソッドまでそうすべきかは悩むところ、やりすぎ?
同名の環境変数やコマンドをどうマップするか
unix系pwshは割り切って環境変数は倣ってる($env:プロバイダ以下に)
コマンドレットは命名規則上被らない
win標準エイリアスはwriteとかが被るけどこれも尊重
pwsh -nop
gal write # not found
(gcm write) # /usr/bin/write
らしい
マイナーコマンドなのでもちろんset-aliasしてるが
ポータブルなps1書く時には一般的な名前のwin標準エイリアスは避けた方がいいかもね
プロパティやメソッドまでそうすべきかは悩むところ、やりすぎ?
同名の環境変数やコマンドをどうマップするか
unix系pwshは割り切って環境変数は倣ってる($env:プロバイダ以下に)
コマンドレットは命名規則上被らない
win標準エイリアスはwriteとかが被るけどこれも尊重
pwsh -nop
gal write # not found
(gcm write) # /usr/bin/write
らしい
マイナーコマンドなのでもちろんset-aliasしてるが
ポータブルなps1書く時には一般的な名前のwin標準エイリアスは避けた方がいいかもね
339デフォルトの名無しさん
2021/06/02(水) 22:05:33.29ID:UfLjqhXv 話が逸れた…
まあ逆移植ではこうなってるという例として
まあ逆移植ではこうなってるという例として
340デフォルトの名無しさん
2021/06/02(水) 22:34:03.30ID:tWTDTS70 Write(-Output)はよく使うからwriteで済ましてしまうな
どうせ俺はPublish-Script/Moduleするようなレベルじゃないけど
どうせ俺はPublish-Script/Moduleするようなレベルじゃないけど
341デフォルトの名無しさん
2021/06/03(木) 02:06:10.68ID:Xmy19u29 パイプラインとリダイレクトの解釈フェーズが独立しているbshの文法では、疑似ファイル方式は難しいと思う
"> /dev/null"なんて使ってないスクリプトの方が稀に思うけど、winの変な"NUL"ファイルに適切に読み替えるには| Out-Fileと>file (またはコマンド置換)が可換である必要があるよね?
powershellでも合法なはずの"> NUL"は普通オープンに失敗するはず
だから自動変数を使った"> $null"、コマンドを使った" | Out-Null"と書けるように>と|を同格にしたわけで
shっぽい言語が使いたいなら、ぱっと見似てる新言語作ったほうが早い
"> /dev/null"なんて使ってないスクリプトの方が稀に思うけど、winの変な"NUL"ファイルに適切に読み替えるには| Out-Fileと>file (またはコマンド置換)が可換である必要があるよね?
powershellでも合法なはずの"> NUL"は普通オープンに失敗するはず
だから自動変数を使った"> $null"、コマンドを使った" | Out-Null"と書けるように>と|を同格にしたわけで
shっぽい言語が使いたいなら、ぱっと見似てる新言語作ったほうが早い
342デフォルトの名無しさん
2021/06/03(木) 02:17:23.64ID:Xmy19u29 winの変な仕様に適合する為にpowershellは柔軟な文法になった説
343デフォルトの名無しさん
2021/06/03(木) 08:24:01.46ID:xKlnG0sF >winの変な仕様
具体的に
具体的に
344デフォルトの名無しさん
2021/06/03(木) 09:17:38.99ID:CvOb6PLb >>335
プロセス制御って?
Windowsの他のプロセスを制御したいならWSLからWindowsのコマンドを呼べばいいし、
Linuxのプロセスなら当然UNIXの世界で管理するだろう
自分自身のプロセスを制御したいなら当然後者だわな
何が問題?
プロセス制御って?
Windowsの他のプロセスを制御したいならWSLからWindowsのコマンドを呼べばいいし、
Linuxのプロセスなら当然UNIXの世界で管理するだろう
自分自身のプロセスを制御したいなら当然後者だわな
何が問題?
345デフォルトの名無しさん
2021/06/03(木) 09:41:56.32ID:CA79M4bt UNIXの世界
346デフォルトの名無しさん
2021/06/04(金) 06:21:24.37ID:q/6JXt/b プロンプトからのffmpegの実行で引数として -metadata に指定する値に空白とエスケープシーケンスを含めたく
¥"abc`n def¥"
でできましたが、更に " を含めるにはどうすればいいでしょうか?
"" や `" は駄目でした
¥"abc`n def¥"
でできましたが、更に " を含めるにはどうすればいいでしょうか?
"" や `" は駄目でした
347デフォルトの名無しさん
2021/06/04(金) 08:07:53.84ID:d2fkafbJ >write-output "abc`n `"`"def `n`""
abc
""def""
ネイティブアプリ例
>gc ~/bin/args
#!/bin/sh
printf "%d args:" $#; printf " <%s>" "$@"
>args "abc`n `"`"def `n`""
1 args: <abc
""def"">
期待通りでは?
cmd用に書かれたものには、独自のパースをするものがあるので(悪名高いのはruby等)、もしかしたらそれでは?
abc
""def""
ネイティブアプリ例
>gc ~/bin/args
#!/bin/sh
printf "%d args:" $#; printf " <%s>" "$@"
>args "abc`n `"`"def `n`""
1 args: <abc
""def"">
期待通りでは?
cmd用に書かれたものには、独自のパースをするものがあるので(悪名高いのはruby等)、もしかしたらそれでは?
348デフォルトの名無しさん
2021/06/04(金) 08:16:32.83ID:d2fkafbJ もしかして、こういうことか
>args "`"abc`n def"`" sanitycheck
2 args: <"abc
def"> <sanitycheck>
>args "`"abc`n def"`" sanitycheck
2 args: <"abc
def"> <sanitycheck>
349デフォルトの名無しさん
2021/06/04(金) 08:25:48.17ID:d2fkafbJ ごめんレスを読み違えてたかも
エスケープシーケンスを渡したい、のなら、ffmpegのエスケープシーケンスを調べて渡すべき
上に挙げた例は「生の」空白と改行と"を、pwshのエスケープシーケンスを用いて渡す、という例
エスケープシーケンスを渡したい、のなら、ffmpegのエスケープシーケンスを調べて渡すべき
上に挙げた例は「生の」空白と改行と"を、pwshのエスケープシーケンスを用いて渡す、という例
350デフォルトの名無しさん
2021/06/04(金) 08:43:46.19ID:d2fkafbJ winでは所謂c風のargvを使わない、シェルのパースを無視し、コマンドラインを文字列として取得する事、が可能
>>343
コマンドラインの> NULをプログラム側でアドホックに認識して、出力を止める手法が横行した
展開前の環境変数名をエスパーしたりも
cmdで> NULが動く事が多いのもこれ
>>343
コマンドラインの> NULをプログラム側でアドホックに認識して、出力を止める手法が横行した
展開前の環境変数名をエスパーしたりも
cmdで> NULが動く事が多いのもこれ
351デフォルトの名無しさん
2021/06/04(金) 08:53:40.98ID:d2fkafbJ そして\はpwshのエスケープシーケンスではなく、winのエスケープシーケンスだ>>346
352デフォルトの名無しさん
2021/06/04(金) 09:45:00.85ID:d2fkafbJ \"bc\" 文字列 \ + bc\ = \bc\
a"ba" が文字列abaなのと同じ
a"ba"a" は閉じてない文字列
a"ba" が文字列abaなのと同じ
a"ba"a" は閉じてない文字列
353デフォルトの名無しさん
2021/06/04(金) 10:00:36.23ID:IHTmGKSa え、コマンドプロンプトのエスケープシーケンスと、それが解釈された後のPSのエスケープシーケンスを2重に考えて引数を渡しなさいよってオチじゃないの?
354デフォルトの名無しさん
2021/06/04(金) 10:18:52.38ID:d2fkafbJ cmdと直接の関係はないよ
とりあえず
"\abc改行文字 \"
という文字列をpwshは渡すはずだけど
環境も意図した書式も不明だし、フィードバック無しに詮索はやめとこう
とりあえず
"\abc改行文字 \"
という文字列をpwshは渡すはずだけど
環境も意図した書式も不明だし、フィードバック無しに詮索はやめとこう
355デフォルトの名無しさん
2021/06/04(金) 10:20:17.19ID:d2fkafbJ \abc改行 def\だねごめん
356デフォルトの名無しさん
2021/06/04(金) 10:38:55.66ID:WP3FEn4a cmd関係なくwindowsだと\はStartProcessコールのエスケープ文字だしな
システムコール自体やcmdに食われるの想定して、余分に付け足したりするプログラムが多いので複雑怪奇になる
そんなwindowsプロセスにも賢く渡す機能が7.2以降に付きそうだけど、これでまたアドホックな要素がまた一つ増える…
システムコール自体やcmdに食われるの想定して、余分に付け足したりするプログラムが多いので複雑怪奇になる
そんなwindowsプロセスにも賢く渡す機能が7.2以降に付きそうだけど、これでまたアドホックな要素がまた一つ増える…
357デフォルトの名無しさん
2021/06/04(金) 11:31:36.60ID:WP3FEn4a358デフォルトの名無しさん
2021/06/06(日) 16:31:42.58ID:MKTuQ6ZL わかりにくいなら配列$argsにまとめて渡したり' 'で括って_などをreplaceがいいかも
クオートが続くと''→'、""→"となるcmdっぽい例外は抹消してほしい
クオートされた文字列とされてない文字列は併置で連接されるけど、例外になってしまう
クオートが続くと''→'、""→"となるcmdっぽい例外は抹消してほしい
クオートされた文字列とされてない文字列は併置で連接されるけど、例外になってしまう
359デフォルトの名無しさん
2021/06/06(日) 16:38:11.80ID:MKTuQ6ZL 最後の引数に限るけど、--%で以降のパースを全て止めてしまうのも便利
単語分割もされない
単語分割もされない
360デフォルトの名無しさん
2021/06/06(日) 16:59:25.93ID:I2RNTewS 文字列メソッド使うのが一番頭使わなくて良い
361デフォルトの名無しさん
2021/06/06(日) 19:16:20.18ID:OPfMT94L362デフォルトの名無しさん
2021/06/11(金) 08:48:29.09ID:nMyRbz+O PowerCLIの話ってここでいいのかな
モジュールコマンドレットの引数ってとう調べればいいんだろ
モジュールコマンドレットの引数ってとう調べればいいんだろ
363デフォルトの名無しさん
2021/06/11(金) 17:03:16.40ID:iy4yRVw6 すんません自己解決です。
Module内のpsm1ファイルとかにありました。
Module内のpsm1ファイルとかにありました。
364デフォルトの名無しさん
2021/06/15(火) 11:09:45.95ID:vhbon9Jn スクリプト、シェル関数、フィルター、モジュール等々
コメントや引数からのヘルプ生成いいよね、(MSサイトのアヤシイ自動翻訳と比べれば)割と読める
ghできてびっくりした
コメントや引数からのヘルプ生成いいよね、(MSサイトのアヤシイ自動翻訳と比べれば)割と読める
ghできてびっくりした
365デフォルトの名無しさん
2021/06/15(火) 22:37:29.05ID:sMCwQ3p2 powershellなかったらWindows10嫌いになってた
まあ嫌いだけど
まあ嫌いだけど
366デフォルトの名無しさん
2021/06/15(火) 23:16:19.96ID:tENeeutP 昔からあるがな
367デフォルトの名無しさん
2021/06/16(水) 08:41:42.53ID:tdb40TiY スマホでPowerShell使いたい人っているの?
Distribution Support Request: PowerShell for Android
https://github.com/PowerShell/PowerShell/issues/15556
Distribution Support Request: PowerShell for iOS
https://github.com/PowerShell/PowerShell/issues/15563
Distribution Support Request: PowerShell for Android
https://github.com/PowerShell/PowerShell/issues/15556
Distribution Support Request: PowerShell for iOS
https://github.com/PowerShell/PowerShell/issues/15563
368デフォルトの名無しさん
2021/06/16(水) 08:50:31.44ID:drc75L4c ぶっちゃけplaystoreで何回も検索してるけど引っかからなくて悲しんでる
about_*をブラウザで読んでた方が百倍マシな紙芝居チュートリアルみたいのは存在してる(検索ノイズ)
アンドロの採用してるmkshへのインターフェイス提供するアプリは、個人投稿ぽいのがいっぱい出てくるんだけども…
about_*をブラウザで読んでた方が百倍マシな紙芝居チュートリアルみたいのは存在してる(検索ノイズ)
アンドロの採用してるmkshへのインターフェイス提供するアプリは、個人投稿ぽいのがいっぱい出てくるんだけども…
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
- 高市政権「中国さん、日本はいつでも対話に応じるで」 [834922174]
