前スレ
PowerShell -Part 5
https://mevius.5ch.net/test/read.cgi/tech/1615994992/
次スレは>>980が立ててね!!
探検
PowerShell -Part 6
■ このスレッドは過去ログ倉庫に格納されています
2022/02/13(日) 18:36:12.07ID:LaQ04ZoE
508デフォルトの名無しさん
2022/07/27(水) 20:35:46.87ID:8xZeKJIl >>506
起動時環境ノイズから勝手に取ってくるのが普通かと
同じハッシュ値持つキーがあると、まあ実装によるがDoS攻撃のいい的
追加情報で判別にフォールバックしたり、テーブル作り直したり、非常に負荷がかかる
perl, python, pwshは少なくともそう
python -c print(hash(""))→0
python -c print(hash(" "))→ランダムなint64
pwsh -nop -c '"".GetHashCode()'→ランダムなint32
perlはスマホに入ってないのでまた
どちらも勝手に種植えてるね、Pythonは64bitにハッシュしてるから単純に強度が強いが、pwshが0でもランダムに見えるのに対し、常にf("")=0のpythonの実装はちょっと謎
fによって""と同じ値に写る文字列も毎回変わるので探すのも容易じゃないだろうけど、実際に規則性を見てしまうと他にも弱点ありそうな気がしてくる
事実としてpwshよりはwebで扱かれてるわけで、まあ大丈夫なんでしょう
起動時環境ノイズから勝手に取ってくるのが普通かと
同じハッシュ値持つキーがあると、まあ実装によるがDoS攻撃のいい的
追加情報で判別にフォールバックしたり、テーブル作り直したり、非常に負荷がかかる
perl, python, pwshは少なくともそう
python -c print(hash(""))→0
python -c print(hash(" "))→ランダムなint64
pwsh -nop -c '"".GetHashCode()'→ランダムなint32
perlはスマホに入ってないのでまた
どちらも勝手に種植えてるね、Pythonは64bitにハッシュしてるから単純に強度が強いが、pwshが0でもランダムに見えるのに対し、常にf("")=0のpythonの実装はちょっと謎
fによって""と同じ値に写る文字列も毎回変わるので探すのも容易じゃないだろうけど、実際に規則性を見てしまうと他にも弱点ありそうな気がしてくる
事実としてpwshよりはwebで扱かれてるわけで、まあ大丈夫なんでしょう
509デフォルトの名無しさん
2022/07/27(水) 20:38:19.25ID:8xZeKJIl >>507
デバッグ用に手動で植える機能はあるはずだよ、マニュアルのどっか見たら書いてるはず、もちろん非推奨だけど
デバッグ用に手動で植える機能はあるはずだよ、マニュアルのどっか見たら書いてるはず、もちろん非推奨だけど
510デフォルトの名無しさん
2022/07/27(水) 20:49:17.30ID:8xZeKJIl 今perl環境無いので記述だけ、v5.8以来ハッシュ関数の種は秘密に植えてるようで、あと人力で植えたい人への植え方
誰か検証たのむ
https://perldoc.jp/docs/perl/5.36.0/perlsec.pod#Algorithmic32Complexity32Attacks
既にwebで流行ってた頃だと思うんだけど大丈夫だったのか
誰か検証たのむ
https://perldoc.jp/docs/perl/5.36.0/perlsec.pod#Algorithmic32Complexity32Attacks
既にwebで流行ってた頃だと思うんだけど大丈夫だったのか
511デフォルトの名無しさん
2022/07/27(水) 20:49:36.14ID:8xZeKJIl 今perl環境無いので記述だけ、v5.8以来ハッシュ関数の種は秘密に植えてるようで、あと人力で植えたい人への植え方
誰か検証たのむ
https://perldoc.jp/docs/perl/5.36.0/perlsec.pod#Algorithmic32Complexity32Attacks
既にwebで流行ってた頃だと思うんだけど大丈夫だったのか
誰か検証たのむ
https://perldoc.jp/docs/perl/5.36.0/perlsec.pod#Algorithmic32Complexity32Attacks
既にwebで流行ってた頃だと思うんだけど大丈夫だったのか
512デフォルトの名無しさん
2022/07/27(水) 20:50:04.66ID:8xZeKJIl 今perl環境無いので記述だけ、v5.8以来ハッシュ関数の種は秘密に植えてるようで、あと人力で植えたい人への植え方
誰か検証たのむ
tps://perldoc.jp/docs/perl/5.36.0/perlsec.pod#Algorithmic32Complexity32Attacks
既にwebで流行ってた頃だと思うんだけど大丈夫だったのか
誰か検証たのむ
tps://perldoc.jp/docs/perl/5.36.0/perlsec.pod#Algorithmic32Complexity32Attacks
既にwebで流行ってた頃だと思うんだけど大丈夫だったのか
513デフォルトの名無しさん
2022/07/27(水) 20:50:41.34ID:8xZeKJIl 今perl環境無いので記述だけ、v5.8以来ハッシュ関数の種は秘密に植えてるようで、あと人力で植えたい人への植え方
誰か検証たのむ
perldoc.jp/docs/perl/5.36.0/perlsec.pod#Algorithmic32Complexity32Attacks
(そのまま貼れない)
既にwebで流行ってた頃だと思うんだけど大丈夫だったのか
誰か検証たのむ
perldoc.jp/docs/perl/5.36.0/perlsec.pod#Algorithmic32Complexity32Attacks
(そのまま貼れない)
既にwebで流行ってた頃だと思うんだけど大丈夫だったのか
514デフォルトの名無しさん
2022/07/27(水) 20:51:20.66ID:8xZeKJIl 連投ごめん
515デフォルトの名無しさん
2022/07/27(水) 21:27:35.49ID:xJ8anoa4 とりあえずマニュアルをちゃんと読むことをお勧めしておく
https://docs.python.org/ja/3/library/functions.html?highlight=hash#hash
https://docs.python.org/ja/3/library/functions.html?highlight=hash#hash
516デフォルトの名無しさん
2022/07/27(水) 21:29:23.20ID:rYm6iVSU で、件のjsの仕様だが、空文字でもよしなにハッシュしてくれるってことかいな?多分
空文字をキーとして使う事に関しては、言語固有のデータ型の概念も絡む
パスカル文字列でもc文字列でも、空文字列自体はいかなるバイト表現も持ち得ない
値がなけりゃ関数にも渡せない
文字数や終端の0埋めバイトごと渡せば値になるが、そこは思想の問題だろうね
空文字をキーとして使う事に関しては、言語固有のデータ型の概念も絡む
パスカル文字列でもc文字列でも、空文字列自体はいかなるバイト表現も持ち得ない
値がなけりゃ関数にも渡せない
文字数や終端の0埋めバイトごと渡せば値になるが、そこは思想の問題だろうね
517デフォルトの名無しさん
2022/07/27(水) 21:36:12.72ID:8xZeKJIl >>515
そこは言語リファレンスであって、リファレンス実装の(c)pythonとは(建前上)関係がない
インタプリタについてはこっち、hash関数のランダム化とどうしても植えたい人用
https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEED
そこは言語リファレンスであって、リファレンス実装の(c)pythonとは(建前上)関係がない
インタプリタについてはこっち、hash関数のランダム化とどうしても植えたい人用
https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEED
518デフォルトの名無しさん
2022/07/27(水) 22:08:43.58ID:xJ8anoa4 ああすまん、最近の実装まで追いかけきれてなかったな
なるほど一つ賢くなったわ、ありがとう
なるほど一つ賢くなったわ、ありがとう
519デフォルトの名無しさん
2022/07/27(水) 22:10:01.71ID:ZpfKnwiP 実装のドキュメントもランダム化の有無に関わらず空文字列に0を返す事については触れてないな
まあ実装の詳細も詳細だし、保証する意味も無いから、気になるならソース読むしかない
気になるなら、この実装に問題無いんですか、と元気があるなら問い合わせる案件
まあ実装の詳細も詳細だし、保証する意味も無いから、気になるならソース読むしかない
気になるなら、この実装に問題無いんですか、と元気があるなら問い合わせる案件
520デフォルトの名無しさん
2022/07/27(水) 22:30:36.76ID:Sct47BON とりあえずPythonでhash("")==0なことはundocumentedなので依存するコードは書いちゃダメってことかな
偶々タイプが面倒だったのか、それでもよく見つけたな
一点だけ分かって現実に問題になるかはともかく、理想的なハッシュ関数の振る舞い(=完全にランダムに見える)として好ましくないのは確か
pwshのこういう面白ネタないかな、まあまだまだ開発中なので山ほどありそうなのがアレだけど
偶々タイプが面倒だったのか、それでもよく見つけたな
一点だけ分かって現実に問題になるかはともかく、理想的なハッシュ関数の振る舞い(=完全にランダムに見える)として好ましくないのは確か
pwshのこういう面白ネタないかな、まあまだまだ開発中なので山ほどありそうなのがアレだけど
521デフォルトの名無しさん
2022/07/27(水) 22:32:46.88ID:8xZeKJIl undocumentedはMSのお家芸です
522デフォルトの名無しさん
2022/07/27(水) 22:49:04.75ID:FyEJHrzo 面白そうなのでハッシュ衝突させてみた
d=dict()
d[0]="int 0"
d[""]="nullstr"
print(hash(0), hash(""), d)
0 0 {0: 'int 0', '': 'nullstr'}
たった2個ぶつけて死ぬ事はまあ無いが、いくらか試して中身は予想付いてきた
スレチごめん
d=dict()
d[0]="int 0"
d[""]="nullstr"
print(hash(0), hash(""), d)
0 0 {0: 'int 0', '': 'nullstr'}
たった2個ぶつけて死ぬ事はまあ無いが、いくらか試して中身は予想付いてきた
スレチごめん
523デフォルトの名無しさん
2022/07/27(水) 23:59:51.61ID:su1evgJ+ 面白そうなのでpwshでも
$h=@{0='int0'; ''='strnull'}
write (0).GetHashCode(), ''.GetHashCode(). $h[0, '']
→0 498565465 int0 strnull
cpythonと違い空文字列は0とは別物のようです
なおpython/pwshともに値の等しいintとfloat型をキーにしようとしたらエラー
([double][int]::MaxValue -eq [int]::MaxValue)
→True
キーにfloatを使うアホが居るかは不明だけど、[double]の範囲では全ての[int32]が表せるので今の実装の整合性に問題はない
さらに型を大きくするとfloatで表せる整数は歯抜けになってくるけどまあ
-0.0→-0.0
(-0.0).GetHashCode()→0
整数としての値ですね
$nan=[double]::NaN
$nancode=$nan.GetHashCode()
-214643572
$maxcode=[double]::MaxValue.GetHashCode()
214635072
$nancode + $maxcode→0ですね
ところでナンだか見慣れた数字が…
2gb, 4gb→2147483648 42949672
$nan -eq $nan→False
そう決めたからまあ、そうなんだけど
$nancode -eq $nancode→True
なんだかなー
$h=@{0='int0'; ''='strnull'}
write (0).GetHashCode(), ''.GetHashCode(). $h[0, '']
→0 498565465 int0 strnull
cpythonと違い空文字列は0とは別物のようです
なおpython/pwshともに値の等しいintとfloat型をキーにしようとしたらエラー
([double][int]::MaxValue -eq [int]::MaxValue)
→True
キーにfloatを使うアホが居るかは不明だけど、[double]の範囲では全ての[int32]が表せるので今の実装の整合性に問題はない
さらに型を大きくするとfloatで表せる整数は歯抜けになってくるけどまあ
-0.0→-0.0
(-0.0).GetHashCode()→0
整数としての値ですね
$nan=[double]::NaN
$nancode=$nan.GetHashCode()
-214643572
$maxcode=[double]::MaxValue.GetHashCode()
214635072
$nancode + $maxcode→0ですね
ところでナンだか見慣れた数字が…
2gb, 4gb→2147483648 42949672
$nan -eq $nan→False
そう決めたからまあ、そうなんだけど
$nancode -eq $nancode→True
なんだかなー
524デフォルトの名無しさん
2022/07/28(木) 00:20:32.59ID:y/Pgitn8 複数のNaNをキーにしたハッシュリテラル書くとInvalidOperation例外投げるな、Duplicate Keys 'NaN' are not allowed...らしい
アサインすると値が上書き
見方によってはハッシュテーブルというアルゴリズムの敗北と言えるかもしれん
困る機会も思いつかないのが幸い
アサインすると値が上書き
見方によってはハッシュテーブルというアルゴリズムの敗北と言えるかもしれん
困る機会も思いつかないのが幸い
525デフォルトの名無しさん
2022/07/28(木) 00:31:26.53ID:8WeqhqUG どのNaNとNaNも互いに値が等しくないからといって、キーがNaNまみれのハッシュ$nansが作れたとして
じゃあ$nans[NaN]はどの値を返せば正解なんだよ
じゃあ$nans[NaN]はどの値を返せば正解なんだよ
526デフォルトの名無しさん
2022/07/28(木) 00:51:33.48ID:y/Pgitn8 抽象データ構造としての連想配列なら、NaNがインデックスとして渡されたら探索すらせずに常に$nullを返せばいい
NaNと-eqなキーは$nansがNaNまみれであるかに関わらず存在し得ないんだから
ハッシュテーブルはあくまで"ほぼ-eq"を使った連想配列の実装
$nan=[double]::NaN;
$ht=@{$nan="abc"}; $h[$nan]
は"abc" を返すはず
NaNと-eqなキーは$nansがNaNまみれであるかに関わらず存在し得ないんだから
ハッシュテーブルはあくまで"ほぼ-eq"を使った連想配列の実装
$nan=[double]::NaN;
$ht=@{$nan="abc"}; $h[$nan]
は"abc" を返すはず
527デフォルトの名無しさん
2022/07/28(木) 01:22:01.83ID:AWyQ+yiB そもそもnanは論理学と数学基礎論の公理、同一律を否定しているので、論理的思考を行っている限り無矛盾に理解することは原理的に不可能だぞ
考えるな、感じろ
考えるな、感じろ
528デフォルトの名無しさん
2022/07/28(木) 13:14:46.86ID:y/Pgitn8 >>505
jqはフィルターとして便利なだけじゃなく、プログラミング言語として非常に面白いと思ってるので、学ぶ価値ありだと思うよ
移行前はcmd+vimで何でもやってたな
vimは安定してwinサポートしてたし、ユニコ以前から常に日本語パッチ供給されてて、強力なテキスト処理とある程度の構造化データ処理もできる入手性よいツールとして稀有だったはず
引数に直接スクリプト渡して非インタラクティブにバッチ処理できるからbatの中身はほぼvim/exスクリプトだった
多分2000年あたりでvim並みの機能かつ日本語サポートもしっかりしてるのはperlくらい
jqはフィルターとして便利なだけじゃなく、プログラミング言語として非常に面白いと思ってるので、学ぶ価値ありだと思うよ
移行前はcmd+vimで何でもやってたな
vimは安定してwinサポートしてたし、ユニコ以前から常に日本語パッチ供給されてて、強力なテキスト処理とある程度の構造化データ処理もできる入手性よいツールとして稀有だったはず
引数に直接スクリプト渡して非インタラクティブにバッチ処理できるからbatの中身はほぼvim/exスクリプトだった
多分2000年あたりでvim並みの機能かつ日本語サポートもしっかりしてるのはperlくらい
529デフォルトの名無しさん
2022/07/28(木) 14:57:01.82ID:HSo5zcUE コードエディタとしては愛用してるけど、vimをコマンドとして使う発想に時代を感じる
530デフォルトの名無しさん
2022/07/28(木) 15:19:13.17ID:HSo5zcUE こんな感じかね
vim -es "g/\W?\|\Wwhere/ s//Where-Object/p" -c wq $profile
こわいから-c wqはしないけど
findstrでパターンマッチ、for /f ... in (file.txt)で行毎にスキャンして置換したのをechoとかやってたな
vim -es "g/\W?\|\Wwhere/ s//Where-Object/p" -c wq $profile
こわいから-c wqはしないけど
findstrでパターンマッチ、for /f ... in (file.txt)で行毎にスキャンして置換したのをechoとかやってたな
531デフォルトの名無しさん
2022/07/28(木) 15:43:37.36ID:y/Pgitn8 for /f "tokens=...delims=...skip=...eol=..."はプレーンな行毎のテーブルの処理には悪くない、明示的にフォーマットを指定してパースするので、むしろ分かりやすいまである
クオートやエスケープの解釈、ダメ文字などイレギュラーに全く対応出来なかったり、/フラグ毎にforの挙動が別コマンドと言えるほど違ったりで、融通が全く効かないのがアレというだけ
for /fで扱いやすいフォーマットで書いて読む閉じた世界に住んでるなら幸せ
クオートやエスケープの解釈、ダメ文字などイレギュラーに全く対応出来なかったり、/フラグ毎にforの挙動が別コマンドと言えるほど違ったりで、融通が全く効かないのがアレというだけ
for /fで扱いやすいフォーマットで書いて読む閉じた世界に住んでるなら幸せ
532デフォルトの名無しさん
2022/07/28(木) 16:33:20.60ID:y/Pgitn8 >>530
あーよく見たら$proflleか
フリーフォーマットをfor /fで走査は黒魔術になるな、行をどう分割するにしろ、変数展開時の文字列置換は分割単位毎だし、行内複数マッチの場合どうするのか考えるだけでぞっとする
vimに引数でコマンド渡すにはたとえ単一引数でも-cが必要、兄弟のsedやvi(m)のエイリアスexは専ら引数にコマンドを期待するので-e落として紛れはないけど、vi(m)はその名の通りvisualエディタだからはじめの引数にファイルを期待する
あーよく見たら$proflleか
フリーフォーマットをfor /fで走査は黒魔術になるな、行をどう分割するにしろ、変数展開時の文字列置換は分割単位毎だし、行内複数マッチの場合どうするのか考えるだけでぞっとする
vimに引数でコマンド渡すにはたとえ単一引数でも-cが必要、兄弟のsedやvi(m)のエイリアスexは専ら引数にコマンドを期待するので-e落として紛れはないけど、vi(m)はその名の通りvisualエディタだからはじめの引数にファイルを期待する
533デフォルトの名無しさん
2022/07/29(金) 21:36:58.16ID:HWojhWX3 最近仕事で触ることになって使い方習ったけど全然わからん
534デフォルトの名無しさん
2022/07/29(金) 21:41:36.22ID:wZddRh7F 右も左も分からないなら、とりあえず良く使いそうなコマンドレットはエイリアスが事前に定義されてるので、galで出てくるのを順番に弄り回したりghするといいかも
535デフォルトの名無しさん
2022/07/29(金) 23:32:09.97ID:HWojhWX3 基本文法を覚える前にVB.NETでモジュールメソッド作成して呼び出すやり方覚えたら動けばいいやでそっちばかり使ってしまってなかなか覚えられない
536デフォルトの名無しさん
2022/09/13(火) 01:54:14.48ID:G28B9gdh $OutputEncoding の初期値をUS-ASCIIからShift-JIS 932に変更したいのですが方法が分かりません
変更は
$OutputEncoding = [Console]::OutputEncoding
$OutputEncoding = [System.Text.Encoding]::GetEncoding(‘Shift_JIS’)
などで出来るようなのですが既定値を変えたいです
やりたい事はcmd上でripgrepをパイプで繋いだ際に文字化けしないようにしたいのですが
https://github.com/BurntSushi/ripgrep/blob/master/FAQ.md#pipe-non-ascii-windows
$OutputEncoding の既定値を変えられたとしてもcmd上でも効果があるのかは試してみないと分かりません
こちらの解決法が分かる方が居ましたら是非教えて欲しいです
変更は
$OutputEncoding = [Console]::OutputEncoding
$OutputEncoding = [System.Text.Encoding]::GetEncoding(‘Shift_JIS’)
などで出来るようなのですが既定値を変えたいです
やりたい事はcmd上でripgrepをパイプで繋いだ際に文字化けしないようにしたいのですが
https://github.com/BurntSushi/ripgrep/blob/master/FAQ.md#pipe-non-ascii-windows
$OutputEncoding の既定値を変えられたとしてもcmd上でも効果があるのかは試してみないと分かりません
こちらの解決法が分かる方が居ましたら是非教えて欲しいです
537デフォルトの名無しさん
2022/09/13(火) 10:05:14.78ID:3Aj3EGjO プロファイルに記述、じゃだめ?
PS> notepad $PROFILE.CurrentUserAllHosts
PS> notepad $PROFILE.CurrentUserAllHosts
538デフォルトの名無しさん
2022/09/13(火) 17:28:13.33ID:BFM47HY2 >>537
ありがとうございます
$profileでやってみました。UTF-8でなら使えそうなのですが
$OutputEncoding をsjisにしたps上でもrgがUTF-8で吐いてるので無理みたいです
【.cmd】 バッチファイルスクリプト %13 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1542779527/496
参照先のようにUTF-8にすれば一応化けずに使えるのですがUTF-8だとコマンド類がascii以外機能しないものが多いのでバッチなどでは使いづらい
sjisで使えたら貧弱なfindstrに置き換えられ便利になると思ったのですが残念です
ありがとうございます
$profileでやってみました。UTF-8でなら使えそうなのですが
$OutputEncoding をsjisにしたps上でもrgがUTF-8で吐いてるので無理みたいです
【.cmd】 バッチファイルスクリプト %13 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1542779527/496
参照先のようにUTF-8にすれば一応化けずに使えるのですがUTF-8だとコマンド類がascii以外機能しないものが多いのでバッチなどでは使いづらい
sjisで使えたら貧弱なfindstrに置き換えられ便利になると思ったのですが残念です
539デフォルトの名無しさん
2022/09/13(火) 18:34:17.55ID:3Aj3EGjO findstr置き換え目的でPowerShell持ち出すなら、Select-Stringとかの手もある。
rgの高速検索のメリットがPowerShellのオーバーヘッドを上回るなら、
例えば以下のような処理を関数なりスクリプトなりにしておくといいと思う。
スクリプト化しておけばcmdからもpowershell経由で使える。
#…けど、他のgrepコマンド導入した方が良さそうな気がする。
$path = "検索対象ファイルパス"
$pattern = "検索パターン"
$si = [Diagnostics.ProcessStartInfo]::new("rg.exe")
$si.Arguments = '"{0}" "{1}"' -f $pattern, $path
$si.UseShellExecute = $false
$si.RedirectStandardOutput = $true
$si.StandardOutputEncoding = [Text.Encoding]::UTF8
$proc = [Process]::Start($si)
$stdout = $proc.StandardOutput
while (! $stdout.EndOfStream) {
$stdout.ReadLine()
}
rgの高速検索のメリットがPowerShellのオーバーヘッドを上回るなら、
例えば以下のような処理を関数なりスクリプトなりにしておくといいと思う。
スクリプト化しておけばcmdからもpowershell経由で使える。
#…けど、他のgrepコマンド導入した方が良さそうな気がする。
$path = "検索対象ファイルパス"
$pattern = "検索パターン"
$si = [Diagnostics.ProcessStartInfo]::new("rg.exe")
$si.Arguments = '"{0}" "{1}"' -f $pattern, $path
$si.UseShellExecute = $false
$si.RedirectStandardOutput = $true
$si.StandardOutputEncoding = [Text.Encoding]::UTF8
$proc = [Process]::Start($si)
$stdout = $proc.StandardOutput
while (! $stdout.EndOfStream) {
$stdout.ReadLine()
}
540デフォルトの名無しさん
2022/09/13(火) 18:36:39.73ID:3Aj3EGjO 誤:$proc = [Process]::Start($si)
正:$proc = [Diagnostics.Process]::Start($si)
動作確認してないので他にもあるかも。
正:$proc = [Diagnostics.Process]::Start($si)
動作確認してないので他にもあるかも。
541デフォルトの名無しさん
2022/09/21(水) 00:41:00.54ID:MPN5wMTP 同階層にフォルダツリーA~Zまであり、それぞれのツリーの中身はバラバラです。
それぞれのツリーのCSVを出力したいのですが、やり方がイマイチ分かりません。
CSVにはツリー名、ツリー毎の合計サイズと、ツリー毎に最新更新ファイル(ファイル1つだけ)の日時を抜き出したいです。
PSFolderSizeをインストールして色んなサイトから拝借してコピペの集合体でやってみたのですが、各ツリー内の更新日を取得する部分とフォルダサイズを取得する部分を同時に行う事が私の頭では無理でした。何方かお助け頂けないでしょうか
それぞれのツリーのCSVを出力したいのですが、やり方がイマイチ分かりません。
CSVにはツリー名、ツリー毎の合計サイズと、ツリー毎に最新更新ファイル(ファイル1つだけ)の日時を抜き出したいです。
PSFolderSizeをインストールして色んなサイトから拝借してコピペの集合体でやってみたのですが、各ツリー内の更新日を取得する部分とフォルダサイズを取得する部分を同時に行う事が私の頭では無理でした。何方かお助け頂けないでしょうか
542デフォルトの名無しさん
2022/09/21(水) 17:45:18.14ID:xipfHTvE ツリーて何だ?
フォルダに階層があってその中全部見たいということならGet-ChildItem -Recurseだぞ
フォルダに階層があってその中全部見たいということならGet-ChildItem -Recurseだぞ
543デフォルトの名無しさん
2022/09/21(水) 17:57:09.50ID:Wu29T3MH ・コード貼ってバカにされるの嫌
・具体例挙げるなど仕様詳細説明面倒臭いから文章から汲み取れ
・全部やれ
こういうことだろう
舐め腐ってるヤツはスルーしときなよ
・具体例挙げるなど仕様詳細説明面倒臭いから文章から汲み取れ
・全部やれ
こういうことだろう
舐め腐ってるヤツはスルーしときなよ
544デフォルトの名無しさん
2022/09/21(水) 18:12:43.86ID:6s8rSvAF 本人はいたって真面目なパターンだろ
ググった情報を組み合わせるスキルがないということは、悲しいかな往々にして他人に要件を一発で伝えるスキルも不足しがち
同時にやるのが無理めに感じるのはパイプを使おうとしてるからだろう
for文とローカル変数で書き変えれば簡単
ググった情報を組み合わせるスキルがないということは、悲しいかな往々にして他人に要件を一発で伝えるスキルも不足しがち
同時にやるのが無理めに感じるのはパイプを使おうとしてるからだろう
for文とローカル変数で書き変えれば簡単
545デフォルトの名無しさん
2022/09/21(水) 18:29:01.13ID:757dNGj4 伝えるスキルうんぬんの前に
> PSFolderSizeをインストールして色んなサイトから拝借してコピペの集合体でやってみたのですが
って言うならそのコード上げろって話
ヘタに説明するより100倍早い
> PSFolderSizeをインストールして色んなサイトから拝借してコピペの集合体でやってみたのですが
って言うならそのコード上げろって話
ヘタに説明するより100倍早い
546デフォルトの名無しさん
2022/09/21(水) 18:53:18.61ID:VZ2CqY7n いやできなかったコード上げても何の説明にもならんから
現状と得たい結果の図示だな
現状と得たい結果の図示だな
547デフォルトの名無しさん
2022/09/21(水) 19:02:42.62ID:6s8rSvAF コードを上げたほうがいいんじゃないかとか図で伝えるべきなんじゃないかとかそういうの引っくるめての伝えるスキルだよ
コミュニケーションは言葉に限定されない
コミュニケーションは言葉に限定されない
548デフォルトの名無しさん
2022/09/21(水) 20:42:50.25ID:9IkSSHYa >CSVにはツリー名、ツリー毎の合計サイズと、ツリー毎に最新更新ファイル(ファイル1つだけ)の日時を抜き出したい
変なモジュール入れんでも数行で書けるからがんばれ
変なモジュール入れんでも数行で書けるからがんばれ
549デフォルトの名無しさん
2022/09/21(水) 22:28:24.59ID:RTQsXz5w パワー!
550デフォルトの名無しさん
2022/09/21(水) 22:31:28.97ID:RTQsXz5w しっかしコマンドレットがコマンドライン実行時とスクリプト内呼び出しでパラメータ解釈が異なるって
どんなキチガイが仕様考えたのか気になるわw
switch型パラメータをスクリプト内で動的に外したり与える方法がないとか終わってる
どんなキチガイが仕様考えたのか気になるわw
switch型パラメータをスクリプト内で動的に外したり与える方法がないとか終わってる
551デフォルトの名無しさん
2022/09/21(水) 23:16:07.40ID:9fmju/sW552デフォルトの名無しさん
2022/09/22(木) 00:48:03.74ID:XoRPEjFK Ruby で、win32ole を使って、
フォルダ以下のサイズ(再帰的な子孫も含めて)は、
require 'win32ole'
fso = WIN32OLE.new( 'Scripting.FileSystemObject' )
folders = [ "C:/Users/Owner/Documents/test_1",
"C:/Users/Owner/Documents/test_2" ]
folders.each do |folder|
folder_obj = fso.GetFolder( folder )
puts File.expand_path( folder_obj.path ) # \ を、/ に変換する
puts "#{ folder_obj.name } : #{ folder_obj.size }"
end
出力
C:/Users/Owner/Documents/test_1
test_1 : 28803
C:/Users/Owner/Documents/test_2
test_2 : 4390
フォルダ以下のサイズ(再帰的な子孫も含めて)は、
require 'win32ole'
fso = WIN32OLE.new( 'Scripting.FileSystemObject' )
folders = [ "C:/Users/Owner/Documents/test_1",
"C:/Users/Owner/Documents/test_2" ]
folders.each do |folder|
folder_obj = fso.GetFolder( folder )
puts File.expand_path( folder_obj.path ) # \ を、/ に変換する
puts "#{ folder_obj.name } : #{ folder_obj.size }"
end
出力
C:/Users/Owner/Documents/test_1
test_1 : 28803
C:/Users/Owner/Documents/test_2
test_2 : 4390
553552
2022/09/22(木) 01:41:34.82ID:XoRPEjFK Ruby で、フォルダ以下のファイル(再帰的な子孫も含めて)で、
更新時刻が最も最近のものを求めた
folders = [ "C:/Users/Owner/Documents/test_1",
"C:/Users/Owner/Documents/test_2" ]
folders.each do |folder|
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = folder + "/**/*"
latest_file = Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.max_by { |full_path| File.mtime( full_path ) } # 更新時刻が最も最近のファイルパス
puts "#{ latest_file }\n#{ File.mtime( latest_file ) }"
end
出力
C:/Users/Owner/Documents/test_1/a.txt
2022-05-19 14:38:35 +0900
C:/Users/Owner/Documents/test_2/x/x.txt
2022-02-24 16:01:54 +0900
更新時刻が最も最近のものを求めた
folders = [ "C:/Users/Owner/Documents/test_1",
"C:/Users/Owner/Documents/test_2" ]
folders.each do |folder|
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = folder + "/**/*"
latest_file = Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.max_by { |full_path| File.mtime( full_path ) } # 更新時刻が最も最近のファイルパス
puts "#{ latest_file }\n#{ File.mtime( latest_file ) }"
end
出力
C:/Users/Owner/Documents/test_1/a.txt
2022-05-19 14:38:35 +0900
C:/Users/Owner/Documents/test_2/x/x.txt
2022-02-24 16:01:54 +0900
554552
2022/09/22(木) 05:06:16.90ID:XoRPEjFK Ruby で、CSV 形式で出力する部分は、
require 'csv'
result_ary = [
[ "C:/Users/Owner/Documents/test_1", "28,803", "2022-05-19 14:38:35 +0900" ],
[ "C:/Users/Owner/Documents/test_2", "4,390", "2022-02-24 16:01:54 +0900" ]
]
# 2次元配列を、CSV 文字列に変換する
csv_str = result_ary.map( &:to_csv ).join
print csv_str
出力
C:/Users/Owner/Documents/test_1,"28,803",2022-05-19 14:38:35 +0900
C:/Users/Owner/Documents/test_2,"4,390",2022-02-24 16:01:54 +0900
require 'csv'
result_ary = [
[ "C:/Users/Owner/Documents/test_1", "28,803", "2022-05-19 14:38:35 +0900" ],
[ "C:/Users/Owner/Documents/test_2", "4,390", "2022-02-24 16:01:54 +0900" ]
]
# 2次元配列を、CSV 文字列に変換する
csv_str = result_ary.map( &:to_csv ).join
print csv_str
出力
C:/Users/Owner/Documents/test_1,"28,803",2022-05-19 14:38:35 +0900
C:/Users/Owner/Documents/test_2,"4,390",2022-02-24 16:01:54 +0900
555デフォルトの名無しさん
2022/09/22(木) 09:18:39.47ID:5Z2vYjCC >>541
@(
"C:\dir1"
"C:\dir2"
) | %{
$prop = [Ordered] @{Path=$_}
$file = @(Get-ChildItem -LiteralPath $_ -Force -Recurse -File)
([Ordered] @{LastWriteTime='Maximum'; Length='Sum';}).GetEnumerator() | %{
$opt = @{'Property'=$_.Key; $_.Value=$true;}
$prop += @{$_.Key = $file | measure @opt | select -exp $_.Value}
}
[PSCustomObject] $prop
} | ConvertTo-Csv -NoTypeInformation
@(
"C:\dir1"
"C:\dir2"
) | %{
$prop = [Ordered] @{Path=$_}
$file = @(Get-ChildItem -LiteralPath $_ -Force -Recurse -File)
([Ordered] @{LastWriteTime='Maximum'; Length='Sum';}).GetEnumerator() | %{
$opt = @{'Property'=$_.Key; $_.Value=$true;}
$prop += @{$_.Key = $file | measure @opt | select -exp $_.Value}
}
[PSCustomObject] $prop
} | ConvertTo-Csv -NoTypeInformation
556デフォルトの名無しさん
2022/09/23(金) 00:05:04.72ID:r49iT1KO >>555
おおー無駄がなくてすごい
これぐらい書けるようになりてぇ
開始は配列の変わりにコマンドレットでも良さそう
Get-ChildItem -LiteralPath <親フォルダ> -Directory | ...
おおー無駄がなくてすごい
これぐらい書けるようになりてぇ
開始は配列の変わりにコマンドレットでも良さそう
Get-ChildItem -LiteralPath <親フォルダ> -Directory | ...
557デフォルトの名無しさん
2022/09/25(日) 13:45:46.35ID:5ly2Ski6 >>556
確かに。てか半端に汎用性意識せず、素直にこんなんでも良かったな。
@(Get-ChildItem -LiteralPath <親フォルダ> -Directory).FullName | %{
$file = @(Get-ChildItem -LiteralPath $_ -Force -Recurse -File)
[PSCustomObject] @{
Path = $_
LastWriteTime = ($file | measure LastWriteTime -Maximum).Maximum
Length = ($file | measure Length -Sum).Sum
}
} | ConvertTo-Csv -NoTypeInformation
確かに。てか半端に汎用性意識せず、素直にこんなんでも良かったな。
@(Get-ChildItem -LiteralPath <親フォルダ> -Directory).FullName | %{
$file = @(Get-ChildItem -LiteralPath $_ -Force -Recurse -File)
[PSCustomObject] @{
Path = $_
LastWriteTime = ($file | measure LastWriteTime -Maximum).Maximum
Length = ($file | measure Length -Sum).Sum
}
} | ConvertTo-Csv -NoTypeInformation
558デフォルトの名無しさん
2022/09/25(日) 14:01:26.72ID:5ly2Ski6 いや、こうか。
Get-ChildItem -LiteralPath <親フォルダ> -Directory | %{
$file = @($_ | Get-ChildItem -Force -Recurse -File)
[PSCustomObject] @{
Path = $_.FullName
LastWriteTime = ($file | measure LastWriteTime -Maximum).Maximum
Length = ($file | measure Length -Sum).Sum
}
} | ConvertTo-Csv -NoTypeInformation
Get-ChildItem -LiteralPath <親フォルダ> -Directory | %{
$file = @($_ | Get-ChildItem -Force -Recurse -File)
[PSCustomObject] @{
Path = $_.FullName
LastWriteTime = ($file | measure LastWriteTime -Maximum).Maximum
Length = ($file | measure Length -Sum).Sum
}
} | ConvertTo-Csv -NoTypeInformation
559デフォルトの名無しさん
2022/09/25(日) 14:13:19.66ID:76wlmrvm 試してないけどフォルダにファイルが1個も無い場合を考慮できてない気がする
560デフォルトの名無しさん
2022/09/25(日) 14:48:45.69ID:5ly2Ski6 知らんかった。前者つもりだった。
(@() | measure -Sum).Sum → 0
(@() | measure Length -Sum).Sum → Null
(@() | measure -Sum).Sum → 0
(@() | measure Length -Sum).Sum → Null
561デフォルトの名無しさん
2022/09/25(日) 15:45:18.22ID:76wlmrvm powershellはgciはともかくmeasureが遅くてファイルが多くなると辛くなるね
結局C#に丸投げとかの手段になりそう
結局C#に丸投げとかの手段になりそう
562デフォルトの名無しさん
2022/09/25(日) 16:18:35.15ID:PDKGWlWe 試してないけど
Get-ChildItem -LiteralPath <親フォルダ> -Directory | %{
$Stat = $_ | Get-ChildItem -Force -Recurse -File | Measure-Object LastWriteTimeLastWriteTime, Length -Sum -Maximum
[PSCustomObject] @{
Path = $_.FullName
LastWriteTime = $Stat[0].Maximum
Length = $Stat[1].Sum
}
} | ConvertTo-Csv -NoTypeInformation
ってやると多少効率的かと
Get-ChildItem -LiteralPath <親フォルダ> -Directory | %{
$Stat = $_ | Get-ChildItem -Force -Recurse -File | Measure-Object LastWriteTimeLastWriteTime, Length -Sum -Maximum
[PSCustomObject] @{
Path = $_.FullName
LastWriteTime = $Stat[0].Maximum
Length = $Stat[1].Sum
}
} | ConvertTo-Csv -NoTypeInformation
ってやると多少効率的かと
563デフォルトの名無しさん
2022/09/25(日) 17:09:36.54ID:UvTk6pcp >>561
まあC#でやった方が速いわな
まあC#でやった方が速いわな
564デフォルトの名無しさん
2022/09/25(日) 19:58:47.42ID:5ly2Ski6 >>562
なるほどな〜、余分な集計をする事になるとしても
measureを1回で済ませられれば効率的な可能性があるのか、
さらにパイプラインで列挙と集計が同時進行になる可能性もあったり?
と思い試してみたけど、残念ながらLastWriteTimeの-Sumがダメらしい。
-ea:SilentlyContinueなら?と思ったがLengthのMaximumしか出ない。
でもこのアイデアは使えそう。
なるほどな〜、余分な集計をする事になるとしても
measureを1回で済ませられれば効率的な可能性があるのか、
さらにパイプラインで列挙と集計が同時進行になる可能性もあったり?
と思い試してみたけど、残念ながらLastWriteTimeの-Sumがダメらしい。
-ea:SilentlyContinueなら?と思ったがLengthのMaximumしか出ない。
でもこのアイデアは使えそう。
565デフォルトの名無しさん
2022/09/25(日) 20:11:16.46ID:PDKGWlWe >>564
ああなるほど、だから小細工してたのか、すまんかった
てか、初めからURL書いとけば良かったな
$Stat = $_ | Get-ChildItem -Force -Recurse -File | Measure-Object LastWriteTime.Ticks, Length -Sum -Maximum
[PSCustomObject] @{
Path = $_.FullName
LastWriteTime = [DateTime][Int64]$Stat[0].Maximum
Length = $Stat[1].Sum
}
https://stackoverflow.com/questions/66697384/measure-multiple-properties
ああなるほど、だから小細工してたのか、すまんかった
てか、初めからURL書いとけば良かったな
$Stat = $_ | Get-ChildItem -Force -Recurse -File | Measure-Object LastWriteTime.Ticks, Length -Sum -Maximum
[PSCustomObject] @{
Path = $_.FullName
LastWriteTime = [DateTime][Int64]$Stat[0].Maximum
Length = $Stat[1].Sum
}
https://stackoverflow.com/questions/66697384/measure-multiple-properties
566デフォルトの名無しさん
2022/09/25(日) 21:00:46.43ID:UvTk6pcp >>565
さも自分で考えたかのように書いて劣化パクリかよ
さも自分で考えたかのように書いて劣化パクリかよ
567デフォルトの名無しさん
2022/09/25(日) 21:03:35.79ID:PDKGWlWe そりゃすまんな
568デフォルトの名無しさん
2022/09/25(日) 21:18:28.66ID:5ly2Ski6 PSv7だとmeasureに集計プロパティ使えるのか。
PSv5なので試せないのが残念。
速度の話が出てたからmeasureの速度がどんなもんか>>558で計ってみたら
自環境だと普通の実装(最高水位線と足し算)より7〜8倍くらい遅いわ。
まあ、標準コマンドレットのよくある結果だな…。
PSv5なので試せないのが残念。
速度の話が出てたからmeasureの速度がどんなもんか>>558で計ってみたら
自環境だと普通の実装(最高水位線と足し算)より7〜8倍くらい遅いわ。
まあ、標準コマンドレットのよくある結果だな…。
569デフォルトの名無しさん
2022/09/29(木) 21:06:47.50ID:OAAH5wr1 タスクマネージャの詳細タブからaudiodg.exeの関係の設定を変更する操作をスクリプトで書けますか?
570デフォルトの名無しさん
2022/09/29(木) 21:46:11.19ID:NUiBz/8K Get-Process "audiodg" | %{ $_.ProcessorAffinity = $コア数 }
$コア数は2のn乗で表したコア数の数
たとえば若い番号の3コアだけ割り当てたい場合は 0xf
$コア数は2のn乗で表したコア数の数
たとえば若い番号の3コアだけ割り当てたい場合は 0xf
571デフォルトの名無しさん
2022/09/29(木) 21:47:29.47ID:NUiBz/8K 上の3は4の間違い
もちろんタスクマネージャーをいじろうと思えばできるけど面倒
もちろんタスクマネージャーをいじろうと思えばできるけど面倒
572デフォルトの名無しさん
2022/09/30(金) 01:54:30.65ID:Ls0wbInl573デフォルトの名無しさん
2022/09/30(金) 05:17:13.01ID:oHn8O8ll574デフォルトの名無しさん
2022/09/30(金) 09:21:08.41ID:ZYrZXJKF 皆さんありがとうございます!
575デフォルトの名無しさん
2022/10/31(月) 09:21:34.51ID:fKpjF07r comobjectでofficeを操作してるとき、
$xxx.Count() が 2なのに
$xxx[0] 範囲外
$xxx[1] 範囲内
$xxx[2] 範囲内
$xxx[3] 範囲外
みたいなアクセスになることがあるんやが
これはどう理解すればええんや?
$xxx.Count() が 2なのに
$xxx[0] 範囲外
$xxx[1] 範囲内
$xxx[2] 範囲内
$xxx[3] 範囲外
みたいなアクセスになることがあるんやが
これはどう理解すればええんや?
576デフォルトの名無しさん
2022/10/31(月) 09:37:52.98ID:jAJ0SKjr Item使わないからじゃね
577デフォルトの名無しさん
2022/10/31(月) 12:19:33.83ID:K5+OjW4X Excelってたしか値も書式もないセルはオブジェクト自体が存在しない扱いになるので、インデックスが0から始まるとは限らなかったはず
データが取れる前提で処理するとうまく行かない
データが取れる前提で処理するとうまく行かない
578デフォルトの名無しさん
2022/10/31(月) 23:20:47.42ID:9ETwK7p6579デフォルトの名無しさん
2022/11/01(火) 16:19:30.34ID:3yQnaOmT Excelは1オリジンやで
580デフォルトの名無しさん
2022/11/04(金) 21:25:18.64ID:HyYadl7b 誰かmtkclient教えてクレメンス
581デフォルトの名無しさん
2022/11/06(日) 12:43:06.89ID:xY1K1bhL582デフォルトの名無しさん
2022/11/06(日) 19:05:17.89ID:vSW2pkDA $a = "abc::de/f/ghi/123jk"
$b = $a.TrimEnd("/")
をしても$bの出力が「abc::de/f/ghi/」にならないのですが、どこが間違っているのでしょうか?
$b = $a.TrimEnd("/")
をしても$bの出力が「abc::de/f/ghi/」にならないのですが、どこが間違っているのでしょうか?
583デフォルトの名無しさん
2022/11/06(日) 19:19:37.21ID:NZll9bPy >>582
同じ勘違いしたことある
指定文字「を」末尾からtrimするのがTrimEnd
$a.TrimEnd("jk123")
Trimメソッドは正規表現使えないからreplaceステートメントをつかう
$a -replace "\w*$",''
同じ勘違いしたことある
指定文字「を」末尾からtrimするのがTrimEnd
$a.TrimEnd("jk123")
Trimメソッドは正規表現使えないからreplaceステートメントをつかう
$a -replace "\w*$",''
584デフォルトの名無しさん
2022/11/06(日) 23:51:09.18ID:vSW2pkDA585デフォルトの名無しさん
2022/11/10(木) 20:57:05.64ID:bawORDDu PowerShell 7.3 General Availability
https://devblogs.microsoft.com/powershell/powershell-7-3-general-availability/
What's New in PowerShell 7.3
https://learn.microsoft.com/en-us/powershell/scripting/whats-new/what-s-new-in-powershell-73
https://devblogs.microsoft.com/powershell/powershell-7-3-general-availability/
What's New in PowerShell 7.3
https://learn.microsoft.com/en-us/powershell/scripting/whats-new/what-s-new-in-powershell-73
586デフォルトの名無しさん
2022/11/12(土) 14:51:35.07ID:p3H1JcgM >>585 日本語訳
PowerShell 7.3 の新機能
https://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-73
PowerShell 7.3 の新機能
https://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-73
587デフォルトの名無しさん
2022/11/12(土) 15:22:51.03ID:c/ILT9OL 11でもPowershell起動すると新しいのお試ししろとか表示されるけど5.1で十分だよなぁ
他の鯖系のベンダーのモジュールが5.1に対応しなくなったら考えるわ程度
他の鯖系のベンダーのモジュールが5.1に対応しなくなったら考えるわ程度
588デフォルトの名無しさん
2022/11/12(土) 19:04:11.88ID:lKqjLh4g >>586
前からexperimentalで有ったのは知ってたし、オプションだから嫌なら切ればいいんだけども…
cmdから呼ばれる想定のコマンドは引数処理に癖があるからといって、特定のプログラムのみ特別扱いするワークアラウンド的挙動にはちょっと賛同できない
ワークアラウンドというのはユーザーがやるものだ
pwsh側で個別対応をするとしても、ユーザーが期待する形式の引数を取って、コマンドの期待する形式に変換するラッパースクリプトを用意すれば済むだけの話
普段linux/macでpwsh使ってるから、どれ程の癖なのかは図りかねるが、
前からexperimentalで有ったのは知ってたし、オプションだから嫌なら切ればいいんだけども…
cmdから呼ばれる想定のコマンドは引数処理に癖があるからといって、特定のプログラムのみ特別扱いするワークアラウンド的挙動にはちょっと賛同できない
ワークアラウンドというのはユーザーがやるものだ
pwsh側で個別対応をするとしても、ユーザーが期待する形式の引数を取って、コマンドの期待する形式に変換するラッパースクリプトを用意すれば済むだけの話
普段linux/macでpwsh使ってるから、どれ程の癖なのかは図りかねるが、
589デフォルトの名無しさん
2022/11/14(月) 01:13:06.37ID:zoPzNIvr $obj.('行');
1. 上記を7.3で実行するとハングする。
2. 5.1や7.2ではハングしない。
3. $prop = '行'; $obj.$prop; でもハングする。
4. '行'が違う言葉だとハングしない。
5. $obj.行; だとハングしない。
バグ?バグなの?ゲイツに電凸していいの?
1. 上記を7.3で実行するとハングする。
2. 5.1や7.2ではハングしない。
3. $prop = '行'; $obj.$prop; でもハングする。
4. '行'が違う言葉だとハングしない。
5. $obj.行; だとハングしない。
バグ?バグなの?ゲイツに電凸していいの?
590589
2022/11/14(月) 01:23:18.32ID:zoPzNIvr あ環境はWindows11とmacOS13で再現してます。連投スマソ
591589
2022/11/14(月) 21:56:16.00ID:zoPzNIvr 589の条件4についてだけど、
$obj.([System.Text.Encoding]::UTF8.GetString((0xE8, 0xA1, 0x8C)));
でもハングして、UTF-8での先頭バイトが0xE8だった場合にハングするっぽい。
毎回ハングするのであんまり回数試してないけど。
$obj.([System.Text.Encoding]::UTF8.GetString((0xE8, 0xA1, 0x8C)));
でもハングして、UTF-8での先頭バイトが0xE8だった場合にハングするっぽい。
毎回ハングするのであんまり回数試してないけど。
592デフォルトの名無しさん
2022/11/15(火) 01:46:29.41ID:E2xRIJUz まともにテストしてないか
変なメンテナが紛れてるか
変なメンテナが紛れてるか
593デフォルトの名無しさん
2022/11/15(火) 11:09:43.75ID:ADWqgLY3 7.30-preview.2 Core win10(en-US)だけど大丈夫な感じ
$gyo =[System.Text.Encoding]::UTF8.GetString((0xE8, 0xA1, 0x8C)))
$gyo
行
$trans=@{$gyo="go"}
$trans.$gyo, $trans[$gyo]
go
(まだ日本語IME入れてない新品なので行が入力できないのはご愛嬌)
属性/キーはハッシュ可能な任意のビット列で構わないはずなので、単にエンコルーチンの問題のはず、7.30-preview-2以降のgitレポの差分みては
$gyo =[System.Text.Encoding]::UTF8.GetString((0xE8, 0xA1, 0x8C)))
$gyo
行
$trans=@{$gyo="go"}
$trans.$gyo, $trans[$gyo]
go
(まだ日本語IME入れてない新品なので行が入力できないのはご愛嬌)
属性/キーはハッシュ可能な任意のビット列で構わないはずなので、単にエンコルーチンの問題のはず、7.30-preview-2以降のgitレポの差分みては
594デフォルトの名無しさん
2022/11/15(火) 11:40:25.67ID:Xte85wf7 cx-fxは開始バイトだから安定リリースで出してたらマルチバイト圏壊滅してそうだが
595589
2022/11/16(水) 02:47:51.66ID:VVslFgtK596589
2022/11/18(金) 02:58:42.77ID:5YGh8aoa お巡りさんこの人でつ38909f7ee
でそのコミットの中身がこちら
Update .NET SDK version from `7.0.100-preview.2.22153.17` to `7.0.100-preview.4.22252.9` (#17061)
おふぅ。PowerShellのバグを追っていて大変なものを見つけてしまったーどうしよう?
でそのコミットの中身がこちら
Update .NET SDK version from `7.0.100-preview.2.22153.17` to `7.0.100-preview.4.22252.9` (#17061)
おふぅ。PowerShellのバグを追っていて大変なものを見つけてしまったーどうしよう?
597デフォルトの名無しさん
2022/11/29(火) 18:07:22.13ID:bVQqRFK0 以前は PowerShell の日本語ドキュメントのリポジトリが Github に置いてあったはずですが今は消えていますよね?
事情がよくわからないんですが、マイクロソフトとしてはコミュニティで日本語翻訳を運用しない (機械翻訳でやっていく?) ということなんでしょうか。
それはそれとして、諸事情でネットワーク接続できない場所で日本語ドキュメントを読みたいんですが
どこかでまとめてダウンロードする方法とかありませんかね?
事情がよくわからないんですが、マイクロソフトとしてはコミュニティで日本語翻訳を運用しない (機械翻訳でやっていく?) ということなんでしょうか。
それはそれとして、諸事情でネットワーク接続できない場所で日本語ドキュメントを読みたいんですが
どこかでまとめてダウンロードする方法とかありませんかね?
598デフォルトの名無しさん
2022/11/29(火) 21:34:29.76ID:S4GKm+YH599デフォルトの名無しさん
2022/11/29(火) 21:48:53.54ID:noJ3pHan 日本マイクソロフトは何してんの
600デフォルトの名無しさん
2022/11/29(火) 23:10:55.01ID:F0R68kvV 日本語にすると曖昧になっちゃうからな
英語で厳密に説明されたほうがいいだろうし、ソフトウェア技術者だったら英語は素養の一つだね
英語で厳密に説明されたほうがいいだろうし、ソフトウェア技術者だったら英語は素養の一つだね
601デフォルトの名無しさん
2022/11/30(水) 01:07:23.00ID:oNUduEv2 >>599
ちょまどはイベントに参加したり楽しくやってる
ちょまどはイベントに参加したり楽しくやってる
602デフォルトの名無しさん
2022/11/30(水) 01:12:58.71ID:TaPBZKHt 文字列検索する時は、ラテン文字のキーワードが検索結果に埋もれない日本語ドキュメントのほうが便利
603デフォルトの名無しさん
2022/11/30(水) 02:05:17.65ID:k8p89eha >>597
Get-Helpで取れる情報ならUiCulture指定してSave-Help
https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_updatable_help
それ以外ならGitHubから英語ドキュメント落としてきて機械翻訳かな
オフライン環境でスクリプト書く気はしないから必要なドキュメントは限られるのでは
Get-Helpで取れる情報ならUiCulture指定してSave-Help
https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_updatable_help
それ以外ならGitHubから英語ドキュメント落としてきて機械翻訳かな
オフライン環境でスクリプト書く気はしないから必要なドキュメントは限られるのでは
604デフォルトの名無しさん
2022/11/30(水) 08:53:37.63ID:QfqHtuzd どうしてもドキュメントを日本語化してほしいなら16ビット時代みたいに
日本語版がリリースされる頃には英語版の新バージョンがリリースされている
みたいな事になってもおま国とか文句言わないようにしないとね
英語版が完成してからじゃないと翻訳作業を始められないんだから
日本語版がリリースされる頃には英語版の新バージョンがリリースされている
みたいな事になってもおま国とか文句言わないようにしないとね
英語版が完成してからじゃないと翻訳作業を始められないんだから
605デフォルトの名無しさん
2022/11/30(水) 12:40:03.59ID:4G7kek1Y Google, DeepL, みらい翻訳
「みんなの自動翻訳@TexTra®」は、
国立研究開発法人情報通信研究機構(NICT)が開発した自動翻訳サイトです。無料
mt-auto-minhon-mlt.ucri.jgn-x.jp/
翻訳したいサイトのURLを入力するだけで、自動翻訳結果をエディタ上に再現
「みんなの自動翻訳@TexTra®」は、
国立研究開発法人情報通信研究機構(NICT)が開発した自動翻訳サイトです。無料
mt-auto-minhon-mlt.ucri.jgn-x.jp/
翻訳したいサイトのURLを入力するだけで、自動翻訳結果をエディタ上に再現
606デフォルトの名無しさん
2022/11/30(水) 13:17:37.01ID:Occ07s0g 機械が無料で一瞬でそれなりの翻訳をしてくれる時代になったのに
わざわざ多ヵ国の翻訳チームを雇って変わり続ける膨大なドキュメントへの人件費を出す判断なんてできんだろなあ
わざわざ多ヵ国の翻訳チームを雇って変わり続ける膨大なドキュメントへの人件費を出す判断なんてできんだろなあ
607597
2022/11/30(水) 17:21:56.68ID:zA9UzzGK 私は現時点では PowerShell について全く知識を持たず、
入門的な資料を移動中の合間にタブレットコンピュータで読みたいと考えています。
(通信は出来ないので事前に入れておく必要があります。)
基本理念をわかれば個々のコマンドの資料はたぶん英語でも理解できると思うんですが
新しい概念そのものを英語で読むのはしんどいです。
オフラインで読みたいと思うと ePub (などの電子書籍形式) になっているとやりやすくて
そうするには元が Markdown なら一発で出来ると思ったんですが、
機械翻訳を通してその形に持っていくとなると面倒ですね。
入門的な資料を移動中の合間にタブレットコンピュータで読みたいと考えています。
(通信は出来ないので事前に入れておく必要があります。)
基本理念をわかれば個々のコマンドの資料はたぶん英語でも理解できると思うんですが
新しい概念そのものを英語で読むのはしんどいです。
オフラインで読みたいと思うと ePub (などの電子書籍形式) になっているとやりやすくて
そうするには元が Markdown なら一発で出来ると思ったんですが、
機械翻訳を通してその形に持っていくとなると面倒ですね。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 【青森・はぐれ子グマがラーメン店襲撃】「笑えないです」ボコボコにしてクマを返り討ち レジェンド男性はまぶたが腫れあがり骨折 ★2 [ぐれ★]
- 中国「高市許さん😡」ジャップメディア「熊!🐻!」 [809488867]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- 🏡
- 今季最強寒気襲来!!!!
- 【高市早苗】習近平激怒か [115996789]
- 今猛烈に食べたいもの挙げてけwwwwwwww
