[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/12 00:59 / Filesize : 319 KB / Number-of Response : 1011
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

PowerShell -Part 4



1 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 16:08:31.66 ID:4oQ1Kxot.net]
前スレ
PowerShell -Part 3
https://mevius.5ch.net/test/read.cgi/tech/1539074808/

次スレは>>980が立ててね!!

577 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 13:03:07.97 ID:pT8kzvft.net]
while ($result -eq $false) {
でうまく動きましたー!ありがとうございました

trueは文字列比較で動くのにfalseはダメなのは不思議です。

578 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 13:10:32.29 ID:NB1HNIe8.net]
trueの場合には-neにしてたから、動いてる様に見えただけなんじゃね?

579 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 16:28:25.02 ID:Bx4nil+B.net]
while (!$result)でよくね

580 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 18:29:23.50 ID:NpK7vu/k.net]
当世風だなw

581 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 22:52:54.65 ID:XEIeaeUL.net]
/1GBとかやると容量計算が捗るのを今日知った

582 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 23:32:26.16 ID:NpK7vu/k.net]
>>579
こういう風には使えないんだね。残念。

get-childitem C:\Windows | select fullname, length/1KB

583 名前:デフォルトの名無しさん mailto:sage [2020/09/14(月) 08:38:10.64 ID:Cd/NVq2C.net]
get-childitem C:\Windows | select fullname,@{N="length";E={$_.length/1KB}}

584 名前:580 mailto:sage [2020/09/14(月) 15:59:14.68 ID:O60yV8/t.net]
>>581
( ;゚Д゚)マジカ…

585 名前:デフォルトの名無しさん mailto:sage [2020/09/14(月) 21:11:25.52 ID:zNRePcSL.net]
ドキュメントにも載ってる公式機能よ

https://docs.microsoft.com/ja-jp/previous-versions/dd315291(v=technet.10)#-property-object
https://docs.microsoft.com/ja-jp/previous-versions/dd315291(v=technet.10)#%E4%BE%8B-4



586 名前:デフォルトの名無しさん mailto:sage [2020/09/14(月) 22:36:01.27 ID:O60yV8/t.net]
おみそれしました。参考にしまつ (=゚ω゚)ノ

587 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 17:44:30.49 ID:vvfuKi+i.net]
会社のパソコンでvscodeでのスクリプト作成
しようとしているのですが
下記問題に当たって苦しんでいます。
助言ください

1.vscodeのextentionのインストールができない。
→会社ネットワークは認証付きプロキシ環境なのでその設定が必要ぽいが設定してもダメ、とりあえずファイルを個別にインストールして対処

2.powershellデバッグしようとすると、初めて使うモジュールの分析をしています。と表示されて進まない
対象モジュールはpackagemanegement.psm1 1.4.7
これもプロキシの問題でインストールに苦労しました。

588 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 17:51:28.05 ID:7Yffzl/8.net]
>>585
認証付きプロキシでも普通に使えてるけど…って思ったらいくつもissue上がってるし、こっちの環境でも「XHR failed」ってエラーになるな

589 名前:デフォルトの名無しさん mailto:sage [2020/09/24(木) 09:55:49.02 ID:R8JuKz31.net]
>>262
selectに -expandpropatye みたいなのを足せば何とかなるかも…

590 名前:デフォルトの名無しさん [2020/09/25(金) 01:41:03.68 ID:hFZS0B6G.net]
ヒアドキュメントの変数使う時に変数を前方参照(後方参照?)したいんですが、
できませんかね

# スクリプトの頭の方で参照したい
$heredoc

# ヒアドキュメントはスクリプトの後ろにまとめたい
$heredoc = @`
abc
`@

591 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 01:55:05.65 ID:mGml3uVc.net]
Ruby でも、出来ない

592 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 04:02:41.97 ID:pAwXdRR4.net]
>>588
それって静的変数みたいなものですかね?考え方は

593 名前:デフォルトの名無しさん [2020/09/25(金) 22:07:41.04 ID:hFZS0B6G.net]
UNIX系のシェルの仕様見ても前方参照できるようなことは書いてなありませんでした
だめっぽいですね
一旦ファイルとして後ろまで読むみたいなアクロパティックな方法しかなさそう

594 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 22:15:02.42 ID:5mEzuFCz.net]
自分自身をファイルオープンして末尾を読み出すとか。
昔、自分自身を解凍するシェルスクリプトがUNIX系アプリのインストーラとしてよく使われてたよね

595 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 22:17:06.26 ID:5mEzuFCz.net]
おっと書かれていたか



596 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 23:45:08.08 ID:BU0fUt+3.net]
処理をスクリプトブロックや関数の中に入れてもいいなら

$f = {
echo $heredoc
}

$heredoc = @`
abc
`@
. $f

597 名前:デフォルトの名無しさん mailto:sage [2020/09/26(土) 22:07:47.79 ID:BjfAYIo4.net]
わけがわからん現象にでくわした
シンボリックリンク作成権限を付けたユーザーなんだけど

New-Item -Type Directory -Name dir
New-Item -Type SymbolicLink -Name sym -Target dir

これを管理者で実行すると SYMLINKD になるんだけど
管理者にならずに実行すると SYMLINK になるのはどういうこと?

598 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 09:30:31.69 ID:HvAokpg1.net]
chcp 65001
をやっても画面のユニコード文字列が文字化けするのはなんで?

599 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 11:16:54.85 ID:4AaMSaam.net]
>>596
[Console]::OutputEncoding = [Text.Encoding]::UTF8
これだとどう?

600 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 11:18:33.39 ID:4AaMSaam.net]
>>596
あと、いちどここ見てみたら
https://www.vwnet.jp/Windows/PowerShell/CharCode.htm

601 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 12:01:00.23 ID:45wzgCn0.net]
Windows Terminalは絵文字とかもちゃんと表示できるらしい、使ってないけど

602 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 16:37:33.79 ID:zpUujZFe.net]
管理者にならずに New-Item でフォルダーへのシンボリックリンクを張ると
SYMLINKD でなく SYMLINK ができるという >>595 なんだが
PowerShell を C:\Users\ユーザー で起動した場合だけ起こるっぽい
Windows PowerShell では起きないし、起動フォルダーを変えても起きない
なんだこれ?

603 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 18:25:49.52 ID:4AaMSaam.net]
>>600
うちの環境 (Win10 2004) だと以下の通り。いずれもシンボリックリンク作成権限を与えた一般ユーザ。

PowerShell 5.0
開始ディレクトリに関わらず、再現せず

PowerShell 7.0.3
開始ディレクトリに関わらず、再現する

よく分からんね。

604 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 21:02:03.10 ID:qVXRXcgH.net]
昔からpsのアクセス権周辺の実装は怪しいと思ってる
専用コマンド呼ぶなり.NET呼ぶなりした方がいいよ

605 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 22:00:17.33 ID:zpUujZFe.net]
なぜうち(Win10 1909 18363.1082)では起動フォルダーで挙動が変わるんだろう

C:\Users\ユーザー で起動した PowerShell 7.0.3 だと、どこで New-Item しても発生する
その PowerShell で、さらに PowerShell を起動すると
C:\Users\ユーザー で起動した場合は、どこで New-Item しても発生する
別のフォルダーで起動した場合は、どこで New-Item しても問題ない

こうなる理由が予想もできない



606 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 23:03:00.71 ID:zpUujZFe.net]
あーごめん
管理者でも C:\Users\ユーザー で起動したら発生した
管理者になるかどうかは関係なかった
理由はさっぱりだが……

607 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 10:27:40.26 ID:6RK1A/yN.net]
>>601 >>604
もしかすると、

1. ターゲットをフルパスで指定する
2. ターゲットの相対パスを「.\\」か「./」で始まる形式で指定する
3. New-Item の直前に [Environment]::CurrentDirectory = Get-Location を実行する

のどれかを試すと、PowerShell 7 でも問題は起こらなかったり?

608 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 20:33:13.25 ID:1OU6a08X.net]
試した

1 〇 (でも張りたいのは相対パスのリンク)
2 ×
3 〇

[Environment]::CurrentDirectory を基準

609 名前:ノターゲットのフルパスを求めて
フォルダーだったら SYMLINKD 、それ以外は SYMLINK を作ってるっぽい
# >>603 を書く時 C:\Users\ユーザー では試してなかった……。

カレントディレクトリを移動しても [Environment]::CurrentDirectory は変わらない
となると悪いのは
カレントディレクトリを返さない [Environment]::CurrentDirectory ?
それとも [Environment]::CurrentDirectory を参照する New-Item ?
[]
[ここ壊れてます]

610 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 11:44:19.44 ID:xkYzZNyK.net]
>>606
ごめん。ソースの履歴を見たら、v7.0.3 のときは、2. の方法は無意味だったみたい。
v7.0.3 の実装は、>>606 さんの想像のとおり。

そもそも、ターゲットの相対パスを解決するときの基準は、カレントのパスではなくて、
シンボリックリンクそのもののパスだよね。
なので、プロセスのカレントディレクトリ([Environment]::CurrentDirectory)の代わりに、
PowerShell のカレントロケーション($PWD)を基準にしたとしても、やっぱりバグる。
New-Item -Type Symbolic -Name Foo\Bar -Target .\Zot みたいなケースとか。

でね。最新のソースには、相対パスのターゲットのための修正が施されているのだけれど、
これが、「.\」か「./」で始まるパスのときは、基準にカレントロケーションを使う、
という中途半端かつ誤ったもので...。

611 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 20:49:56.27 ID:J7wCjMtV.net]
常に リンクのフルパス → ターゲットのフルパス とたどるだけなのに……w
早く修正されますように

612 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 08:50:32.18 ID:6kAerFE6.net]
[Environment]::CurrentDirectoryや[IO.Directory]::GetCurrentDirectory()の罠
他のモジュールも同じ問題を抱えてないか心配になる

613 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 10:19:36.95 ID:tnCBqate.net]
New-Itemはハードリンクもバグってる
こっちはWindows以外のOSでも問題になるはず

New-Item -Type Directory -Name linktest
New-Item -Name linktest\target
New-Item -type HardLink -Name linktest\hardlink -Target linktest\target

に対して、こんなメッセージでエラーになってしまう

New-Item: Could not find item linktest\target.

興味深いのは

New-Item -Type HardLink -Name linktest\hardlink -Target target

と間違えてみると

New-Item: Cannot find path 'カレントディレクトリ\target' because it does not exist.

ちゃんと正しいエラーメッセージが返る
不思議だ

614 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 21:05:38.94 ID:NSqrZd61.net]
>>610
>New-Item -type HardLink -Name linktest\hardlink -Target linktest\target

5.1と7.0.3で試したけどエラーにならなかったぞ

615 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 21:26:37.01 ID:tnCBqate.net]
これでどう? (長すぎて切れるかも)

$origCurDir = [System.Environment]::CurrentDirectory
New-Item -ItemType Directory -Path linktest

Push-Location linktest
New-Item -ItemType Directory -Path dir

Push-Location dir # linktest/dir
New-Item -ItemType Directory -Path subdir
Set-Content -Path file -Value "hello"
New-Item -ItemType HardLink -Path hardlink_1 -Value file
New-Item -ItemType SymbolicLink -Path symlink_1 -Value subdir

Pop-Location # linktest
New-Item -ItemType HardLink -Path dir/hardlink_2 -Value dir/file
New-Item -ItemType SymbolicLink -Path dir/symlink_2 -Value subdir

Push-Location dir # linktest/dir
[System.Environment]::CurrentDirectory = $PWD
New-Item -ItemType HardLink -Path hardlink_3 -Value file
New-Item -ItemType SymbolicLink -Path symlink_3 -Value subdir

Pop-Location # linktest
[System.Environment]::CurrentDirectory = $PWD
New-Item -ItemType HardLink -Path dir/hardlink_4 -Value dir/file
New-Item -ItemType SymbolicLink -Path dir/symlink_4 -Value subdir

Pop-Location
[System.Environment]::CurrentDirectory = $origCurDir

Get-ChildItem -Path linktest/dir | Sort-Object -Property CreationTime | Format-Table Attributes,LinkType,Target,Length,Name



616 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 13:25:40.85 ID:1QpEVKY8.net]
mklink一行でええじゃん

617 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 13:57:48.64 ID:w3BWfVBY.net]
>>613
これを思い出した
********
アメリカのNASAは、宇宙飛行士を最初に宇宙に送り込んだとき、
無重力状態ではボールペンで文字を書くことができないのを発見した。
これではボールペンを持って行っても役に立たない!
NASAの科学者たちはこの問題に立ち向かうべく、10年の歳月と120億ドルの開発費をかけて研究を重ねた。
その結果ついに、無重力でも上下逆にしても

618 名前:水の中でも氷点下でも摂氏300度でも、
どんな状況下でもどんな表面にでも書けるボールペンを開発した!!

一方、ソ連は鉛筆を使った。
[]
[ここ壊れてます]

619 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 14:35:00.30 ID:Ck+HovvX.net]
リンクを張ることが目的なのではない
PowerShellの不具合を見つけることが目的なのだ

620 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 21:34:24.75 ID:ljpWPhwK.net]
誰か英語ができる人 >>612 のテストを添えて「New-Itemでのhardlink/symlink作成に
[Environment]::CurrentDirectoryが影響する」ってタイトルでイシューを立てて欲しい

621 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 01:55:55.82 ID:0vVVHGK+.net]
昔はよくConnectに投稿したりしたんだけどねぇ

622 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 10:45:42.05 ID:68v91MPk.net]
よろしくお願いします

623 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 22:48:38.93 ID:7NrhvCrT.net]
バージョン上がって使いやすくなってきたねpowershell
Shellより扱いやすいからmacにもインスコしたわ

コンソールに貼り付けて実行した時に右クリックの貼り付けとctlvの貼り付けで動きが違うのは何で?

624 名前:デフォルトの名無しさん mailto:sage [2020/10/04(日) 17:12:39.48 ID:Pj4o9N0c.net]
遅レスすまんね

>>597
だめだった

>>598
見てみる

625 名前:デフォルトの名無しさん mailto:sage [2020/10/07(水) 01:28:53.25 ID:OLUeUK9d.net]
あるファイルを消そうとしたら「このファイルは開かれているため〜」と表示されて消せなかった。
こういう場合、自分はリソースモニターでファイルを開いているアプリを探すんだけど
最近入った現場では管理者以外はリソースモニターを使えないように設定されていて困った。

それで質問なのですが、powershellのコマンドでファイルを開いているアプリを探す方法はあるのでしょうか?



626 名前:デフォルトの名無しさん mailto:sage [2020/10/07(水) 02:03:23.70 ID:HMBCuleJ.net]
https://stackoverflow.com/questions/39148304/fuser-equivalent-in-powershell
こんなん出てきたがどう?

627 名前:621 mailto:sage [2020/10/08(木) 03:04:42.09 ID:daaVvwfY.net]
>>622
めっちゃ参考になります。っていうかこれでやります。
サンクス!

628 名前:デフォルトの名無しさん mailto:sage [2020/10/08(木) 19:15:35.07 ID:zkqa7tbj.net]
試せば判るけど >>622 はプロセスがロードしてるDLLとかのモジュールしか得られないよ
開いてるファイルはプロセスに紐付いてるハンドル取得して一個一個チェックするしかないよ
実装はpowershellじゃかなり大変だからhandle.exeっていうMSが公開してるツール使ったらいいよ

629 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 06:30:09.66 ID:JjVHZHwh.net]
セキュリティガチガチでネットにも繋がらないうちの現場じゃ無理だな

630 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 11:09:36.08 ID:s64A8YK8.net]
うちの会社は「キッコーマン」のHPが見れません、”コーマン”がフィルターに引っかかるのですw

631 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 21:32:35.73 ID:vPm9QJ4K.net]
openfiles コマンドでファイルを開いているプロセスを調べる 【 Windows】
tooljp.com/windows/doc/Server2008/openfiles/openfiles.html
Openfiles
https://web.archive.org/web/20120424081342/technet.microsoft.com/ja-jp/library/cc772842(v=ws.10).aspx

632 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 17:51:59.12 ID:2b9DYeQb.net]
職場で「さすがパワーシェラー!」って言われたんだけど
パワーシェルを使う人のことをそう呼ぶものなの?

633 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 17:57:10.05 ID:Ske6VIT2.net]
聞いたことないな
むしろ馬鹿にされてる気分

634 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 23:05:50.24 ID:DNKik4OU.net]
洋書で良い本ないですか?
和書だと数冊しか出てないので…

635 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 21:28:34.46 ID:6x+7Jy+N.net]
in actionは読んだのかね
あとはCoreのソース読んでくのが手っ取り早い



636 名前:デフォルトの名無しさん mailto:sage [2020/10/19(月) 22:58:13.20 ID:TaaQ8sH/.net]
>>631
原書は第3版まで出てるんですね
ありがとうございます

637 名前:デフォルトの名無しさん [2020/10/24(土) 21:41:19.65 ID:1s91cR1z.net]
多次元配列(ジャグ配列ではなく)を1次元配列に平坦化する高速な方法ありませんか?
データ数は100万個くらいです。

@($a | % {$_})

検索したら↑のカッコいい方法が出てきましたが、
私の環境で6秒ほどかかり速度に不満があります。

638 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 23:22:07.28 ID:ZaC2aARH.net]
パイプとForeach-Object自体が遅いからね
データがオンメモリにあるならforeach文のが速い

639 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 23:28:40.40 ID:ZaC2aARH.net]
あとは万個の繰り返し処理になるわけだからpowershellで書いたら全体的には当然遅い
対策としては繰り返し部分だけC#に渡すとかだね

640 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 23:45:12.07 ID:V4Y88WB8.net]
万個とかエッチ!

641 名前:633 [2020/10/25(日) 00:13:47.38 ID:orpbcY2p.net]
foreach文にすると0.8秒まで速くなりました!
とりあえずこの方法でやってみます

$b = foreach($x in $a){$x}

642 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 02:13:33.54 ID:8PerFZ8f.net]
>>636
美人穴が「この商品は累計○万個も売り上げたということです!」とかいうとおっきする

643 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 20:51:17.25 ID:Bltg1B/v.net]
>>633
>多次元配列(ジャグ配列ではなく)を1次元配列に平坦化する高速な方法ありませんか?

なんでジャグ配列ではなく多次元配列なんだろう

644 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 23:05:57.46 ID:Ny8q0G3C.net]
ジャグラーは定番だ

645 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 23:57:20.55 ID:sGr6+tXm.net]
多次元配列のほうがメモリ上で綺麗に配置されている分、高速化の選択肢が多いかもしれないって発想じゃね



646 名前:633 [2020/10/26(月) 00:00:33.37 ID:R7zaLxag.net]
>>639
ExcelファイルからCOM経由で範囲データを取ってくるとobject[,]になるためです

647 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 08:09:54.14 ID:mujdTIU3.net]
なんでそれを1次元にするんだろう

648 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 12:01:58.05 ID:bVz9LMJg.net]
>>641
実際には多次元配列の方が遅い

649 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 13:22:10.82 ID:l+r11Fp5.net]
>>644
理由は?

650 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 14:41:24.14 ID:RInXL5ja.net]
PowerShellというか.NETの仕様

.NETには1次元配列の要素にアクセスするための専用命令があるので速い
多次元配列の要素にアクセスするにはプロパティみたいなアクセサメソッドを使わなきゃいけないので遅い

651 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 16:19:55.73 ID:l+r11Fp5.net]
>>646
多次元だと倍以上遅いと言う根拠あるの?

652 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 16:27:11.02 ID:RDi5ol2j.net]
めんどくせー奴だな

653 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 17:00:59.84 ID:XYschmPc.net]
体感速度は変わらん

654 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 17:43:17.64 ID:jItJ//Mq.net]
>>647
自分で試せば良いんじゃね

655 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 17:46:52.74 ID:l+r11Fp5.net]
要は根拠もなしに
> 実際には多次元配列の方が遅い
と妄想をほざいてただけって話かよw



656 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 17:56:32.09 ID:jItJ//Mq.net]
>>651
うん、良いんじゃね、そういう結論で。
以上でよろしいか?

657 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 17:58:32.50 ID:j+tAxxjP.net]
>>651
質問に答えず茶化すだけかよw

658 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 19:30:32.27 ID:l+r11Fp5.net]
>>653
>>652に言ってくれよw

659 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 19:43:09.27 ID:/01g7c5c.net]
>>ID:l+r11Fp5
たくさん構ってもらえて良かったね

660 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 20:06:18.23 ID:l+r11Fp5.net]
>>655
恥の上塗りかなw

661 名前:633 mailto:sage [2020/10/26(月) 20:09:14.97 ID:5qWbLIDu.net]
>>643
Excelファイルから取得したデータを更に別の処理に使うのですが、その際に1次元で渡す必要があるためです

662 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 20:09:30.70 ID:/TCFG/M1.net]
実装としては添え字でメモリの位置を計算して参照するだけだから
一次元でも多次元でも原理的には速さは変わらないぞ

663 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 20:13:28.15 ID:jItJ//Mq.net]
>>656
きみが絶対的に正しいことはスレ住人の総意で共通認識なのだから、もう十分だろう?
そのへんで勘弁してもらないかな。なんなら土下座して謝るよ。

664 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 20:17:45.03 ID:mujdTIU3.net]
ちゃんとアンカー追えよ
ジャグ配列vs多次元配列が1次元vs多次元配列に化けてるぞ

>>647
>多次元だと倍以上遅いと言う根拠あるの?

「倍以上遅い」なんてどこから来たんだろう

665 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 20:28:30.59 ID:l+r11Fp5.net]
>>658
>>646によると専用命令があるらしいけど、嘘なのかね?

>>660
ああすまん、脳内で二次元配列 ⇔ ジャグ配列 って思ってたわ
まあ3次元以上なら専用命令とやらがもっと速くないとダメだけど



666 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 20:36:57.75 ID:mujdTIU3.net]
あんたはまず「倍以上」の出所を説明しないと

667 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 21:11:41.27 ID:EAm4Av0T.net]
www5b.biglobe.ne.jp/~yone-ken/VBNET/IL/il15_UseArray.html

> ILにも1次元配列については専用の命令が用意されています。

668 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 21:49:29.23 ID:AmD6br2D.net]
#2次元配列初期化
Measure-Command {
$i = 0; $array = New-Object "object[,]" 1000,1000
for ($x = 0; $x -lt $array.GetLength(0); $x++) {
for ($y = 0; $y -lt $array.GetLength(1); $y++) {
$array[$x,$y] = $i++
}
}
}

#ジャグ配列初期化
Measure-Command {
$i = 0; $array = New-Object "object[]" 1000
for ($x = 0; $x -lt $array.length; $x++) {
$array[$x] = New-Object "object[]" 1000
for ($y = 0; $y -lt $array[$x].length; $y++) {
$array[$x][$y] = $i++
}
}
}

たしかに初期化の段階でジャグ配列のが速いね

669 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 22:09:49.38 ID:l+r11Fp5.net]
>>662
ジャグ配列知らんの?
二次元相当のジャグ配列だと2回辿らないとダメだから倍は速くないとトータルで遅くなるでしょ

670 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 22:22:45.88 ID:5/h2v6nN.net]
>>665
PSで例見せてよ

671 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 22:37:25.27 ID:l+r11Fp5.net]
ILの話にPSとか言われてもw

672 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 22:48:42.22 ID:l+r11Fp5.net]
軽くググったら最近の.Net Coreとかだと状況次第って感じやね
https://takap-tech.com/entry/2020/02/24/213932
原理考えたらまあ妥当な結果だと思う

673 名前:デフォルトの名無しさん mailto:sage [2020/10/27(火) 01:23:06.66 ID:IPa2oLl3.net]
なるほど勉強になります

674 名前:デフォルトの名無しさん mailto:sage [2020/10/27(火) 13:37:08.15 ID:bD3kPd/D.net]
なるほど理解できません

675 名前:デフォルトの名無しさん mailto:sage [2020/10/27(火) 15:37:54.18 ID:az6RTKF7.net]
処理系の実装に寄るけど、うまくインデックスを張れば
速度的には同等になるはずだけどな



676 名前:デフォルトの名無しさん mailto:sage [2020/10/27(火) 19:29:05.55 ID:k9DNZwa6.net]
>>671
どういう理論なんだ?
ランダムアクセスだとジャグ配列は次元毎にメモリーアクセスして辿らないとダメだけど多次元配列ならインデックスの計算してその場所にアクセスするだけだから多次元配列の方が速い
シーケンシャルアクセスだとアクセスの多くは最後の次元のアクセスだから毎回インデックスを計算する多次元配列よりジャグ配列の方が速いと思う
まあめっちゃ最適化して多次元配列を1次元配列に展開するようなコードにまで落とせたら多次元配列の方が微妙に速くなるかも

677 名前:デフォルトの名無しさん mailto:sage [2020/10/27(火) 19:52:31.91 ID:Sd8akiyh.net]
なんにせよ多次元配列を1次元配列に高速に平坦化する方法分からないんだろ
グダグダスレ引き延ばしておきながらなw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<319KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef