前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/
次スレは>>980が立ててね!!
探検
PowerShell -Part 5
■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
794デフォルトの名無しさん
2021/11/22(月) 11:57:50.46ID:vpaN3qMO robocopyという既存で使えるコマンドがあることはわかりました。
しかし、それを承知の上で、純PowerShellのコマンドで実現できる方法を探していました。
ストレージにも容量があるため、抽出とコピーを同時に済ませたかった次第です。
しかし、それを承知の上で、純PowerShellのコマンドで実現できる方法を探していました。
ストレージにも容量があるため、抽出とコピーを同時に済ませたかった次第です。
795デフォルトの名無しさん
2021/11/22(月) 12:33:14.41ID:DJE+GLbt あ、やっぱスクリプト書くのが目的なんですね
それならそれでよいと思います
ぱぱっと仕事を済ませるために使えるものを使うのであれば
そういう考え方もあるってことで
もちろん、コピー不要なファイルのサイズが大きすぎたりしたときは使えませんが
ただ、エラー時のリトライとかマルチスレッドをpowershellで実装するのは面倒なのでrobocopyかrsync使うことをお勧めします
自分しかアクセスしない領域を扱うなら、ここに書かれていた例でも十分かと思います
それならそれでよいと思います
ぱぱっと仕事を済ませるために使えるものを使うのであれば
そういう考え方もあるってことで
もちろん、コピー不要なファイルのサイズが大きすぎたりしたときは使えませんが
ただ、エラー時のリトライとかマルチスレッドをpowershellで実装するのは面倒なのでrobocopyかrsync使うことをお勧めします
自分しかアクセスしない領域を扱うなら、ここに書かれていた例でも十分かと思います
796デフォルトの名無しさん
2021/11/22(月) 12:46:04.31ID:JeDQJ1PF >>793
test-pathって複数ファイル判定できるのか?
test-pathって複数ファイル判定できるのか?
797デフォルトの名無しさん
2021/11/22(月) 13:07:04.73ID:DJE+GLbt test-pathはstring[]を引数に取れて、それぞれの判定結果を返しますね
798デフォルトの名無しさん
2021/11/22(月) 13:52:50.70ID:jUHFyU9k >>791
SSDを殺すツールでも作るのかね?
SSDを殺すツールでも作るのかね?
799デフォルトの名無しさん
2021/11/22(月) 20:21:46.68ID:nGTeQ/fQ 仕事で使うならrobocopyだな
800デフォルトの名無しさん
2021/11/22(月) 22:15:42.91ID:EOO8UMxm 今回の目的だとRobocopyで良いんだが
Powershellなら複数の条件のandでフィルターしたり正規表現でのフィルターやらリネームしながらのコピーとか活用シーンはあるわ
Powershellなら複数の条件のandでフィルターしたり正規表現でのフィルターやらリネームしながらのコピーとか活用シーンはあるわ
801デフォルトの名無しさん
2021/11/23(火) 00:34:07.96ID:co/a4Nbp >>787
大文字小文字の差異が発生したときにちゃんと動かないと思う
大文字小文字の差異が発生したときにちゃんと動かないと思う
802デフォルトの名無しさん
2021/11/23(火) 17:04:45.84ID:d0x80b5K じゃあ -reprace 演算子で
803デフォルトの名無しさん
2021/11/23(火) 20:11:06.49ID:LL+Lkvmb せめて-creplaceと書いとけ
804デフォルトの名無しさん
2021/11/23(火) 21:13:38.28ID:td4eh3RA Copy-Itemって時刻や属性とかACLやらもコピーされるんかな
同じにしといてや
同じにしといてや
805デフォルトの名無しさん
2021/11/23(火) 21:15:13.83ID:d0x80b5K >>803
大文字と小文字の差を無視したいんじゃないの?
大文字と小文字の差を無視したいんじゃないの?
806デフォルトの名無しさん
2021/11/25(木) 06:55:00.80ID:wkKQrHcX 質問です / たとえば…
膨大にファイルがあるディレクトリ以下から 古いファイルを探そうと思って
ls -r |? lastwritetime -lt "2015/10/10"
などとしたら…思いがけなく 沢山のファイルが該当したとき、
「この結果…変数に入れとけばよかったなぁ…そうすれば後で絞り込んだりできるし」
と思うことが あるのですが
でも、あらかじめ
$list = ls -r |? lastwritetime -lt "2015/10/10"
などとすると、検索中は 表示が見えない.
…というわけで、変数に入れつつ 表示させる手段を 今、探していますが なんだか分からず.
今のところは、「ファイルにリダイレクトしながら tee」ってのが、近いけど
使うかどうかわからない結果について、いちいちファイル作りたく無い気持ち(笑)はあったり
膨大にファイルがあるディレクトリ以下から 古いファイルを探そうと思って
ls -r |? lastwritetime -lt "2015/10/10"
などとしたら…思いがけなく 沢山のファイルが該当したとき、
「この結果…変数に入れとけばよかったなぁ…そうすれば後で絞り込んだりできるし」
と思うことが あるのですが
でも、あらかじめ
$list = ls -r |? lastwritetime -lt "2015/10/10"
などとすると、検索中は 表示が見えない.
…というわけで、変数に入れつつ 表示させる手段を 今、探していますが なんだか分からず.
今のところは、「ファイルにリダイレクトしながら tee」ってのが、近いけど
使うかどうかわからない結果について、いちいちファイル作りたく無い気持ち(笑)はあったり
807デフォルトの名無しさん
2021/11/25(木) 07:19:34.90ID:wkKQrHcX (これも 検索でも分からなかったのですが)
昔unixを使ってた慣れから pushd と popd を使うことがあるのですが
スタックの中身って見れないのでしょうか (dirsみたいな)
昔unixを使ってた慣れから pushd と popd を使うことがあるのですが
スタックの中身って見れないのでしょうか (dirsみたいな)
808デフォルトの名無しさん
2021/11/25(木) 07:47:43.37ID:tyDWZMxk >>806
Where-Object -OutVariableとかでできなかったっけ
Where-Object -OutVariableとかでできなかったっけ
809デフォルトの名無しさん
2021/11/25(木) 09:20:52.19ID:e/X72gP4 >>808 ありがとうございました
ls -r |? lastwritetime -lt "2015/10/10" -OutVariable list
知らなかった…調べてみると すべてのコマンドレットに備わってるんですね
ls -r |? lastwritetime -lt "2015/10/10" -OutVariable list
知らなかった…調べてみると すべてのコマンドレットに備わってるんですね
810デフォルトの名無しさん
2021/11/25(木) 09:38:35.33ID:e/X72gP4811デフォルトの名無しさん
2021/11/26(金) 10:20:48.79ID:ncT7Zn6W >>807
gl -stack
gl -stack
812デフォルトの名無しさん
2021/11/26(金) 11:04:55.34ID:ncT7Zn6W 遅レスだけど>>583にも関連ありそうなのでアンカー付けとく、slじゃなくてpush/pop-locationだけど
CDPATH的なモノはsl -で参照できることから存在してるとおもうけど、もっと柔軟に数の引数取りたい、とかなら簡単なシェル関数書けば良いかと
function cd($bwd=1){iex "cd -;" * $bwd}
さらに
{iex "sl ..;" * $up},
{iex "sl +;" * $fwd}…等
(cdのremove-alias、引数を読んでディスパッチ等はよしなに)
まあ気が散るからlocationスタックに慣れた方がいいとは思う
CDPATH的なモノはsl -で参照できることから存在してるとおもうけど、もっと柔軟に数の引数取りたい、とかなら簡単なシェル関数書けば良いかと
function cd($bwd=1){iex "cd -;" * $bwd}
さらに
{iex "sl ..;" * $up},
{iex "sl +;" * $fwd}…等
(cdのremove-alias、引数を読んでディスパッチ等はよしなに)
まあ気が散るからlocationスタックに慣れた方がいいとは思う
813デフォルトの名無しさん
2021/11/29(月) 19:58:38.42ID:FW3KUWhD $hoge = Invoke-Command -ComputerName 192.168.0.1 -Credential $cred -ScriptBlock {C:\script\cpu.bat}
こんな感じでリモートPCのCPUの情報を取得したんだけど、
リモート側では返り値の型が Hashtable で連想配列なんだけど、実行する側のPCだと Object[] になって配列になるんだけど
これって仕様なの?
連想配列のまま$hogeで受け取る方法とかない?
こんな感じでリモートPCのCPUの情報を取得したんだけど、
リモート側では返り値の型が Hashtable で連想配列なんだけど、実行する側のPCだと Object[] になって配列になるんだけど
これって仕様なの?
連想配列のまま$hogeで受け取る方法とかない?
814デフォルトの名無しさん
2021/11/29(月) 20:04:41.43ID:xU0y2yzX 無い
815デフォルトの名無しさん
2021/11/29(月) 20:07:54.41ID:FW3KUWhD 無いのかw
PowerShell初めて触ってるんだけど、こいつ癖が強いなぁw
PowerShell初めて触ってるんだけど、こいつ癖が強いなぁw
816デフォルトの名無しさん
2021/12/04(土) 15:49:34.45ID:3yJp3Bv8 パイプのあくの強さに辟易してからが本番
817デフォルトの名無しさん
2021/12/04(土) 15:57:56.73ID:lpLqhZbS パイプの魅力に取り憑かれたらもう後には戻れない
818デフォルトの名無しさん
2021/12/04(土) 20:29:02.53ID:dom41WHA819デフォルトの名無しさん
2021/12/04(土) 20:33:23.88ID:12OWCJtV パイプラインが気に入らなかったら使わなきゃ良いんだけど
配列は気に入らなくても使わざるを得ないんだよな
配列は気に入らなくても使わざるを得ないんだよな
820デフォルトの名無しさん
2021/12/04(土) 20:59:45.48ID:NLsksufL 初代プレステみたいな拡張子以外ないの?
もうちょっとかっちょいい拡張子使いたい
もうちょっとかっちょいい拡張子使いたい
821デフォルトの名無しさん
2021/12/04(土) 21:10:22.01ID:jlXR6Mjx pwshも起動遅いよな
NGenも上手く行かんし。起動の遅さには目をつぶって使ってる感じ?
NGenも上手く行かんし。起動の遅さには目をつぶって使ってる感じ?
822デフォルトの名無しさん
2021/12/04(土) 22:01:12.10ID:3yJp3Bv8 毎回pwsh起動時に最新バージョンのpwshかWebサイトに確認しにいってる予感
823デフォルトの名無しさん
2021/12/05(日) 16:39:28.02ID:iTfrMGLj 24時間ごとに最初のセッションでバージョンチェックが走るので、テレメトリーを無効にすればちょっとだけ起動が速くなるかも
https://github.com/PowerShell/PowerShell/issues/16234
POWERSHELL_UPDATECHECKは通知の制御だけで、バージョンチェック(を含む通信)はテレメトリー自体を止めないとダメみたい
https://github.com/PowerShell/PowerShell/issues/16234
POWERSHELL_UPDATECHECKは通知の制御だけで、バージョンチェック(を含む通信)はテレメトリー自体を止めないとダメみたい
824デフォルトの名無しさん
2021/12/05(日) 21:30:10.95ID:4E92Wydv PowerShellを使っている人はWindows Terminalも使っていること多いでしょ
どっちも素のコマンドプロンプトに比べて起動に時間がかかる
どっちも素のコマンドプロンプトに比べて起動に時間がかかる
825デフォルトの名無しさん
2021/12/05(日) 22:44:22.34ID:MGzOS3+Z WSL2 で、Linux も使っている人は、Windows Terminal が便利。
ctrl + c でコピーできる
Linux の端末では、右クリックメニューからコピーしないといけない
ctrl + c でコピーできる
Linux の端末では、右クリックメニューからコピーしないといけない
826デフォルトの名無しさん
2021/12/05(日) 23:06:07.82ID:2W/PRbgG 無変換キーで@が入力されるの治ってほしい…
827デフォルトの名無しさん
2021/12/05(日) 23:08:46.06ID:EbpaPfY1 >>826
なにそれ
なにそれ
828デフォルトの名無しさん
2021/12/05(日) 23:17:25.58ID:2W/PRbgG Windows Terminal上でPowershellを使ってるとき、IME OFFに割り当てた無変換キーを空打ちすると@が入力されちゃう
829デフォルトの名無しさん
2021/12/05(日) 23:46:17.42ID:EbpaPfY1 >>828
再現せんなあ
再現せんなあ
830デフォルトの名無しさん
2021/12/06(月) 00:19:03.74ID:l+QuXC+3 これか
https://twitter.com/nejigami/status/1381587748260249601
https://twitter.com/5chan_nel (5ch newer account)
https://twitter.com/nejigami/status/1381587748260249601
https://twitter.com/5chan_nel (5ch newer account)
831デフォルトの名無しさん
2021/12/06(月) 16:19:41.17ID:eOuwgSss psreadlineでバインドし直せばいいんでないの?
832デフォルトの名無しさん
2021/12/06(月) 16:45:47.86ID:RFIhcWIP >>828
Ahkで無変換をime off機能に割り当てて対策してる。
Ahkで無変換をime off機能に割り当てて対策してる。
833デフォルトの名無しさん
2021/12/06(月) 16:54:29.37ID:eOuwgSss psreadlineに渡る前にwtに吸われてるのなら無力だったな
めんご
めんご
834デフォルトの名無しさん
2021/12/08(水) 18:02:05.74ID:fwBoA4il >>832
AutoHotkeyで解決した、ありがとう
AutoHotkeyで解決した、ありがとう
835デフォルトの名無しさん
2021/12/11(土) 17:33:02.92ID:lpfa5wkz 今回リモートPCの使用状況をlog化して通知するシステムに利用したんだけど、
みんなは何にPowerShell使ってんの?やっぱり反復処理とか?イマイチ使いみちが思いつかないw
みんなは何にPowerShell使ってんの?やっぱり反復処理とか?イマイチ使いみちが思いつかないw
836デフォルトの名無しさん
2021/12/11(土) 18:31:42.90ID:l4zQKEWJ 分かってる人には当たり前のことなのかもしれないけど、 Set-PSReadLineOption -EditMode Emacs で
Emacs風味キーバインドにしたらCtrl+DでPowerShellが終了するね
Emacs風味キーバインドにしたらCtrl+DでPowerShellが終了するね
837デフォルトの名無しさん
2021/12/11(土) 19:33:39.75ID:Jze+N/0t Ctrl+Dでの終了はzshでも有効にしてるので、違和感なく使ってました
838デフォルトの名無しさん
2021/12/11(土) 19:42:02.74ID:Jze+N/0t 日常的に使ってるのは、VPN接続とリモート接続のログイン自動化スクリプトですね
839デフォルトの名無しさん
2021/12/11(土) 21:55:48.50ID:vdCi5/VF >>834
そんな大層なことしなくても
gci -pa HKLM:/system -rec -inc keyboard* -ea ignore
とかでキーマップが引っかかったと思うから、$profileにブチこんどけばいいんじゃないの、シェル閉じた時のリストア処理も書けるし
そんな大層なことしなくても
gci -pa HKLM:/system -rec -inc keyboard* -ea ignore
とかでキーマップが引っかかったと思うから、$profileにブチこんどけばいいんじゃないの、シェル閉じた時のリストア処理も書けるし
840デフォルトの名無しさん
2021/12/11(土) 21:58:38.54ID:vdCi5/VF ターミナル(wt.exe)の問題なら.jsonにキーマップ書けたはずで、それが一番礼儀正しいが
841デフォルトの名無しさん
2021/12/11(土) 22:11:14.55ID:T5tvegM+ レジストリはすぐどこ触ったか分からんくなるから$profileか、pwshの外ならuser\**\startupにコマンド書いて設定した方がいい
少なくとも何を触ったかは記録に残る
できれば初期値についてのコメントも
シェル/環境変数みたいにシャドウイングできるといいんだけど
少なくとも何を触ったかは記録に残る
できれば初期値についてのコメントも
シェル/環境変数みたいにシャドウイングできるといいんだけど
842デフォルトの名無しさん
2021/12/12(日) 00:04:01.85ID:kmuza9nw wsl --help の出力結果をパイプやファイルにリダイレクトすると、PowerShellとWSLが不?戴天の仇らしいことがよくわかる
843デフォルトの名無しさん
2021/12/12(日) 21:13:44.01ID:tlt3McAx Windows PowerShell Inventor Jeffrey Snover Interview
https://evrone.com/jeffrey-snover-interview
https://evrone.com/jeffrey-snover-interview
844デフォルトの名無しさん
2021/12/13(月) 13:52:11.42ID:MDj1w4qb >>842
とりあえず|out-file -enc 色々噛ませてみては
とりあえず|out-file -enc 色々噛ませてみては
845デフォルトの名無しさん
2021/12/14(火) 06:17:10.79ID:5jyEPH53 なんで不?戴天になってしまったのかと思ったら環境依存文字使ってたからか
不倶戴天 (環境依存文字なし)
不俱戴天 (環境依存文字あり)
不倶戴天 (環境依存文字なし)
不俱戴天 (環境依存文字あり)
846デフォルトの名無しさん
2021/12/14(火) 15:19:22.77ID:6iAGSMwm お前らlinuxマシンにpwsh入れてる?
847デフォルトの名無しさん
2021/12/14(火) 15:49:09.33ID:mpAOsF0a 入れるわけないだろ
こんなもんWindows以外では絶対使わん
こんなもんWindows以外では絶対使わん
848デフォルトの名無しさん
2021/12/14(火) 15:54:44.60ID:vLIDlmgW たぶん、PowerShell が、UTF-8 だからじゃないの?
コマンドプロンプトで、
wsl --help > a.txt
とすると、UTF-16LE になり、VSCode・サクラエディタでも見れる
でも、Windows Terminal(WT)では、PowerShell・コマンドプロンプト・WSL のLinux の3つが使えるけど、
そのコマンドプロンプトでやったら、文字化けして見れない
WT は、UTF-8 だから文字化けするのかも
だから、アプリによる
コマンドプロンプトで、
wsl --help > a.txt
とすると、UTF-16LE になり、VSCode・サクラエディタでも見れる
でも、Windows Terminal(WT)では、PowerShell・コマンドプロンプト・WSL のLinux の3つが使えるけど、
そのコマンドプロンプトでやったら、文字化けして見れない
WT は、UTF-8 だから文字化けするのかも
だから、アプリによる
849デフォルトの名無しさん
2021/12/14(火) 16:00:11.41ID:5jyEPH53850デフォルトの名無しさん
2021/12/14(火) 19:12:38.50ID:HCC7MYbd パワーー
851デフォルトの名無しさん
2021/12/14(火) 20:06:47.20ID:lHfIhTrg はい
852デフォルトの名無しさん
2021/12/15(水) 12:02:30.22ID:PaPmsmcA まあでもWindows上で使ってるぶんには安定してるな。
当たり前だけどw
当たり前だけどw
853デフォルトの名無しさん
2021/12/15(水) 20:55:34.12ID:zohMO0ui854デフォルトの名無しさん
2021/12/16(木) 03:32:22.22ID:V72yjyE9 PowerShell上で非ANSIコードページ文字列をパイプやリダイレクトするには以下のようにcmd /C を使うしかない
cmd /C 'wsl --help > aaa.txt'
「ねぇどんな気持ち?」のクマAAをPowerShell愛好家に贈りたい
cmd /C 'wsl --help > aaa.txt'
「ねぇどんな気持ち?」のクマAAをPowerShell愛好家に贈りたい
855848
2021/12/16(木) 12:30:02.79ID:pA5H+adw コマンドプロンプトを使わずに、PowerShell で、
wsl --help を文字化けせずに、ファイルへ保存する方法はないのか?
>>848
修正
>でも、Windows Terminal(WT)では、PowerShell・コマンドプロンプト・WSL のLinux の3つが使えるけど、
>そのコマンドプロンプトでやったら、文字化けして見れない。
>WT は、UTF-8 だから文字化けするのかも
Windows Terminal(WT)のコマンドプロンプトで、
もう一度やってみたら、正常に表示された!
ちなみにコマンドプロンプトも、WTのコマンドプロンプトも、両方とも、CP932 でした
chcp
#=> 932
wsl --help を文字化けせずに、ファイルへ保存する方法はないのか?
>>848
修正
>でも、Windows Terminal(WT)では、PowerShell・コマンドプロンプト・WSL のLinux の3つが使えるけど、
>そのコマンドプロンプトでやったら、文字化けして見れない。
>WT は、UTF-8 だから文字化けするのかも
Windows Terminal(WT)のコマンドプロンプトで、
もう一度やってみたら、正常に表示された!
ちなみにコマンドプロンプトも、WTのコマンドプロンプトも、両方とも、CP932 でした
chcp
#=> 932
856デフォルトの名無しさん
2021/12/16(木) 14:46:23.47ID:fd1vO2kC Correct output in CMD, but incorrect output to a file in PowerShell #16012
https://github.com/PowerShell/PowerShell/issues/16012
https://github.com/PowerShell/PowerShell/issues/16012
857デフォルトの名無しさん
2021/12/16(木) 15:06:10.72ID:V72yjyE9 PowerShellの定番質問に知ったかぶりしてOutputEncodingを変えろと回答する人って自分で試さないんだろうか?
それとも質問を理解できるだけの国語力がないのか?
それとも質問を理解できるだけの国語力がないのか?
858デフォルトの名無しさん
2021/12/16(木) 15:11:12.80ID:ywwvfrpp 負けた気がするけどロケールはもう諦めてen_us、圧力掛けるのはおまいらに任せた
あえて真っ白linuxでは使わんけどwslは快適になるな
$profile |add-member -noteprop
で属性付けて
. $profile.common; .$profile.platform
とそーすしてる
あえて真っ白linuxでは使わんけどwslは快適になるな
$profile |add-member -noteprop
で属性付けて
. $profile.common; .$profile.platform
とそーすしてる
859デフォルトの名無しさん
2021/12/16(木) 15:23:47.31ID:9aNyIMSV そんなことより
左辺コレクションの-eqのフィルタの罠に見事に引っ掛かったわ
左辺コレクションの-eqのフィルタの罠に見事に引っ掛かったわ
860デフォルトの名無しさん
2021/12/16(木) 15:41:05.53ID:ywwvfrpp -eq(ual elements are...)と読み慣わしてる
861848
2021/12/16(木) 16:19:44.83ID:pA5H+adw OutputEncoding を変えるぐらいでは、出来ないだろ。
PowerShell(PS)は、迷走しまくっている
UTF-16LE とか、あるのか?
PS 6 では、BOM 無しUTF-8 も出来るらしいけど
PowerShell(PS)は、迷走しまくっている
UTF-16LE とか、あるのか?
PS 6 では、BOM 無しUTF-8 も出来るらしいけど
862848
2021/12/16(木) 16:24:12.96ID:pA5H+adw Windows は、CP932, BOM 有りUTF-8/BOM 無しUTF-8, UTF-16LE が入り乱れて、
外部と日本語でやり取りできないw
一方、Linux は、UTF-8 で統一されているから、全く問題ない。
Ubuntu は、UTF-32 らしいけど、外部には関係ない
外部と日本語でやり取りできないw
一方、Linux は、UTF-8 で統一されているから、全く問題ない。
Ubuntu は、UTF-32 らしいけど、外部には関係ない
863デフォルトの名無しさん
2021/12/16(木) 16:37:31.00ID:V72yjyE9 >>861
Input Encodingがシステムコードページ一択(日本語版Windowsだと932)になってることが原因だよ
UTF16-LEの文字列をSJISとみなしてOutputEncodingに変換するから文字化けしているのが真相
このPowerShellのおバカ仕様のせいでMINGWのUTF-8対応済みアプリの恩恵をまったく活かせない
Input Encodingがシステムコードページ一択(日本語版Windowsだと932)になってることが原因だよ
UTF16-LEの文字列をSJISとみなしてOutputEncodingに変換するから文字化けしているのが真相
このPowerShellのおバカ仕様のせいでMINGWのUTF-8対応済みアプリの恩恵をまったく活かせない
864848
2021/12/16(木) 18:10:47.68ID:pA5H+adw >UTF16-LEの文字列を、SJISとみなして
すごい。文字化けの謎を解明してくれたのか!
すごい。文字化けの謎を解明してくれたのか!
865848
2021/12/16(木) 18:13:34.65ID:pA5H+adw と言うことは、逆変換すればどうかな?
SJIS → UTF16-LE
SJIS → UTF16-LE
866848
2021/12/16(木) 18:19:40.99ID:pA5H+adw それか、あらかじめデータを、SJIS へ変換しておいてから渡すとか
Ruby では、色々な携帯の機種依存の日本語を変換するのに、
最長6パスとか掛かるものもあるらしい
Ruby では、色々な携帯の機種依存の日本語を変換するのに、
最長6パスとか掛かるものもあるらしい
867デフォルトの名無しさん
2021/12/16(木) 18:50:41.75ID:qMSlwGZE [console]::OutputEncoding = [System.Text.Encoding]::Unicode
v5環境だけどこれでファイル出力の文字化けは解消できた
ただ改行コード\nが全部\r\nになる
v5環境だけどこれでファイル出力の文字化けは解消できた
ただ改行コード\nが全部\r\nになる
868デフォルトの名無しさん
2021/12/16(木) 18:55:45.31ID:bRV7vQKn v7だと多分問題はない、よろしくやってくれてるんだと思う
mingwは使ってないから知らんが少なくとも標準パッケマネのwingetで入るやつ(gnuwinポート)でエンコで困った事はない
mingwは使ってないから知らんが少なくとも標準パッケマネのwingetで入るやつ(gnuwinポート)でエンコで困った事はない
869デフォルトの名無しさん
2021/12/16(木) 19:06:43.69ID:V72yjyE9870デフォルトの名無しさん
2021/12/16(木) 19:15:07.46ID:bRV7vQKn とりあえず環境を(ターミナルも)書いてくれないとアドバイスのしようがない
>>856の対処は試した?
>>856の対処は試した?
871デフォルトの名無しさん
2021/12/16(木) 19:24:43.19ID:V72yjyE9872デフォルトの名無しさん
2021/12/16(木) 19:27:32.35ID:V72yjyE9 マイクロソフトが関与するオープンソース・コミュニティーは問題が解決してないのに解決したことにしてしまうずさんな所が多い
バグ票を閉じることを優先する隠蔽体質あると思う
バグ票を閉じることを優先する隠蔽体質あると思う
873デフォルトの名無しさん
2021/12/16(木) 19:34:07.64ID:V72yjyE9 共産圏の人間が仕切ってるのかと思うような閉じられ方する、まさにノルマ
874デフォルトの名無しさん
2021/12/16(木) 20:11:17.38ID:q0ua6jst そうだね
875デフォルトの名無しさん
2021/12/16(木) 20:20:13.49ID:Y2CVy/MB マイクロソフト文化圏。
876デフォルトの名無しさん
2021/12/16(木) 21:09:01.98ID:VSm+B60n >>871
> is not a raw-bytes conduit to a file in PowerShell, unlike in cmd.exe.
Instead, PowerShell always decodes output from external programs (into .NET strings) before further processing (but not when printing directly to the display), based on the character encoding stored in [Console]::OutputEncoding.
Therefore, before your external-program call, you must (at least temporarily) set [Console]::OutputEncoding to match the actual character encoding used in your external program's output; e.g., [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
> is not a raw-bytes conduit to a file in PowerShell, unlike in cmd.exe.
Instead, PowerShell always decodes output from external programs (into .NET strings) before further processing (but not when printing directly to the display), based on the character encoding stored in [Console]::OutputEncoding.
Therefore, before your external-program call, you must (at least temporarily) set [Console]::OutputEncoding to match the actual character encoding used in your external program's output; e.g., [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
877デフォルトの名無しさん
2021/12/16(木) 21:15:42.41ID:V72yjyE9 従来型のパイプラインを選べない時点で設計思想がおかしいんですよ
$(xxx) みたいな特殊表現によるパイプが提供されてしかるべき
というかPowerShellのパイプラインを特殊表現に閉じ込めるべき
$(xxx) みたいな特殊表現によるパイプが提供されてしかるべき
というかPowerShellのパイプラインを特殊表現に閉じ込めるべき
878デフォルトの名無しさん
2021/12/16(木) 21:56:24.21ID:V72yjyE9 OutputEncodingとコードページがごっちゃになってるのもよくない
OutputEncodingをUTF8に指定したら、cmd /? で英語ヘルプが返されるようになってしまう
この挙動は、コマンドプロンプト上のchcp コマンドでコードページを変えたときのcmd /?の挙動と同じ
OutputEncodingをUTF8に指定したら、cmd /? で英語ヘルプが返されるようになってしまう
この挙動は、コマンドプロンプト上のchcp コマンドでコードページを変えたときのcmd /?の挙動と同じ
879デフォルトの名無しさん
2021/12/16(木) 22:23:10.88ID:ywwvfrpp >>877
そもそも従来型のパイプラインは生バイト晒してたように聞こえるんだが、テキストモード(ascii)IOを忘れてないか
fopen等システムコールに行儀良く"b"フラグ渡してれば問題はないが、そうでない時にcmdはtypeや |を処理する際にコンソールのファント設定見に行く等奇怪な挙動をしてた
でもたまに制御文字をtypeして死んだり…
テキストモードを排除できれば可能かも
そもそも従来型のパイプラインは生バイト晒してたように聞こえるんだが、テキストモード(ascii)IOを忘れてないか
fopen等システムコールに行儀良く"b"フラグ渡してれば問題はないが、そうでない時にcmdはtypeや |を処理する際にコンソールのファント設定見に行く等奇怪な挙動をしてた
でもたまに制御文字をtypeして死んだり…
テキストモードを排除できれば可能かも
880デフォルトの名無しさん
2021/12/16(木) 22:31:55.77ID:ywwvfrpp gnuとかのプログラムは今でもioモード切り替えフラグ付いてたりするね
生バイトが欲しければProcessInfoとかからstdin/stdout引っこ抜いてIO.BinaryWriterに渡すとか
生バイトが欲しければProcessInfoとかからstdin/stdout引っこ抜いてIO.BinaryWriterに渡すとか
881デフォルトの名無しさん
2021/12/16(木) 22:47:57.71ID:peIHdemY 文字列中に紛れたeof文字相当のバイトを見ても読み込みを続ける挙動は多分windows的には正しくないよな
そんな文字無くしてしまえ、と思うけど
そんな文字無くしてしまえ、と思うけど
882デフォルトの名無しさん
2021/12/17(金) 06:27:47.69ID:cFRRrt8D wsl --helpのみっともない改行はUTF-16のL"\r\n"をテキストモードで出力するwslの変態行為がそもそもの原因だし
https://docs.microsoft.com/en-us/cpp/c-runtime-library/unicode-stream-i-o-in-text-and-binary-modes?view=msvc-170
https://docs.microsoft.com/en-us/cpp/c-runtime-library/unicode-stream-i-o-in-text-and-binary-modes?view=msvc-170
883デフォルトの名無しさん
2021/12/17(金) 06:36:45.15ID:cFRRrt8D PowerShell固有のパイプラインに、|, >, >> を使うのをやめて
例えば $|, $>, $>> のような特殊表現に閉じ込めてほしいんだが
今さら無理か
例えば $|, $>, $>> のような特殊表現に閉じ込めてほしいんだが
今さら無理か
884デフォルトの名無しさん
2021/12/17(金) 07:27:36.04ID:cFRRrt8D 昔、MINGWのcatコマンドが0x0aを勝手に0x0d,0x0aへテキストモード変換する迷惑行為で人知れず苦しんだ人は多かったと思う
885デフォルトの名無しさん
2021/12/17(金) 08:47:10.04ID:+hqMWYwb c標準ライブラリの"t"フラグはホスト側でよしなに変換してくれという表明だけど、たぶん行論理セパレータ\n↔\r\n変換してくれるやつくらいに考えてる人が多いんじゃねえかな
886デフォルトの名無しさん
2021/12/17(金) 09:02:49.38ID:z0PRPnA0 "t"はc規格には無いか、無指定の"w"フラグ等がテキストモードにデフォルトするというだけで
cっぽいopen関数備えてる言語(pythonとか)だと"b"との区別を意識させる為に"wt"とか受け付けるけど
cっぽいopen関数備えてる言語(pythonとか)だと"b"との区別を意識させる為に"wt"とか受け付けるけど
887デフォルトの名無しさん
2021/12/17(金) 09:38:27.97ID:cFRRrt8D マイクロソフト謹製アプリが率先してやらかしてるってところが肝
888デフォルトの名無しさん
2021/12/17(金) 10:04:59.46ID:YK+z10uu それと直接関係あるかは再現しないのでちょっと不明
>>871はconhostをsjisに設定してない?
>>871はconhostをsjisに設定してない?
889デフォルトの名無しさん
2021/12/17(金) 10:07:35.81ID:YK+z10uu v7.2/wt(preview)
[console]のioデフォルトはutf8(=旧nobom)になってた
[console]のioデフォルトはutf8(=旧nobom)になってた
890デフォルトの名無しさん
2021/12/17(金) 10:09:02.77ID:cFRRrt8D891デフォルトの名無しさん
2021/12/17(金) 10:14:30.90ID:YK+z10uu892デフォルトの名無しさん
2021/12/17(金) 10:27:09.40ID:YK+z10uu あとwin11非対応マシンでms配布のロールバック用iso(非ローカライズ版)イメージで再インストール→日本語パック選択した人も該当するはず
oem版はsjisが多いと思う
oem版はsjisが多いと思う
893デフォルトの名無しさん
2021/12/17(金) 10:32:50.05ID:cFRRrt8D >>891
Windows Terminalでも起きるんだからconhost.exeは関係ないぞ
Windows Terminalでも起きるんだからconhost.exeは関係ないぞ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 日本が「世界で最も魅力的な国」1位に!✨「魅力的な都市」では東京が2位 「魅力的な地域」は北海道が7位に [煮卵★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で-福岡市 ★2 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 ★2 [蚤の市★]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 高市の放漫財政が原因で日本国債大暴落!!!ザイム真理教崩壊へ!!! [252835186]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 東浩紀「日本はいままさに駆け引きをしている。」高市有事にピシャリ [834922174]
- んなっしょい🍬禁止🈲のお🏡
- 【悲報】ジャップってどの面下げて来年以降、戦没者追悼式典やる気なの🤔 [616817505]
