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


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

PowerShell -Part 7



1 名前:デフォルトの名無しさん [2023/11/29(水) 16:07:49.46 ID:0g8RZ7sB.net]
前スレ
PowerShell -Part 6
https://mevius.5ch.net/test/read.cgi/tech/1644744972/

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

52 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 23:27:25.62 ID:yw6xDge+.net]
横からすみません
>>40
のインストールにチャレンジしたのですが、管理者権限のPowerShellでInstall-ModuleをしたのにImport-Moduleでdllが無いみたいなエラーが出て使えません
どなたかアドバイス頂けないでしょうか

53 名前:デフォルトの名無しさん mailto:sage [2023/12/17(日) 00:21:34.60 ID:OHxpVvei.net]
>>52
下のURLの2つのnupkgをダウンロードして、ファイル名の後ろの拡張子を.zipに変更する
https://www.nuget.org/api/v2/package/Microsoft-WindowsAPICodePack-Core/1.1.4
https://www.nuget.org/api/v2/package/Microsoft-WindowsAPICodePack-Shell/1.1.4

microsoft-windowsapicodepack-core.1.1.4.nupkg.zip
microsoft-windowsapicodepack-shell.1.1.4.nupkg.zip
この2つのzipを適当なフォルダに解凍して、libフォルダその他が作成される事を確認。ここで必要なのはlib配下の*.dllのみ
libフォルダ内の自分のpowershell環境と適合する.NETのバージョンのフォルダから*.dllを取り出してカレントディレクトリに配置
でいけるんじゃないかな

54 名前:デフォルトの名無しさん mailto:sage [2023/12/22(金) 07:48:19.63 ID:wPcChJb5.net]
$PROFILE ってなんなのでしょうか
$PROFILE.GetType() だと String のようですが
$PROFILE | Select-Object * で AllUsersAllHosts などが出てくるのがわかりません
$PROFILE | Select-Object * で何が起きているのでしょうか

55 名前:デフォルトの名無しさん mailto:sage [2023/12/22(金) 09:01:10.81 ID:FudXFPqY.net]
PowerShellはAdd-Memberでオブジェクトにプロパティやメソッドを追加できる
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/add-member

$PROFILE | Get-Member を実行してみればわかるけど
AllUsersAllHostsとかは$PROFILEに追加されたNotePropertyって種類のプロパティ

56 名前:デフォルトの名無しさん mailto:sage [2023/12/22(金) 09:10:30.60 ID:nFOKM4xK.net]
>>54
中身がPSCustomObjectでない変数にもNotePropertyを設定できる
ただしその変数に他の値を代入するとNotePropertyの情報は消えてしまうから用途は限定される
$a = "aaa"
$a = $a | Add-Member -PassThru "Value" "xxx"
$a = $a | Add-Member -PassThru "Value2" "yyy"
$a # aaa
$a.Value # xxx
$a.Value2 # yyy
$a | select *
$a = "bbb"
$a.Value # $null

57 名前:デフォルトの名無しさん mailto:sage [2023/12/22(金) 09:51:40.03 ID:wPcChJb5.net]
('str' | Add-Member -type NoteProperty -Name 'wao' -Value 'Wao!' -passThru).wao
→ Wao!
(123 | Add-Member -type NoteProperty -Name 'wao' -Value 'Wao!' -passThru).wao
→ Wao!

理解した

58 名前:デフォルトの名無しさん mailto:sage [2023/12/23(土) 21:24:52.21 ID:xtnhDuDo.net]
>>56
Add-Member は変数ではなくオブジェクトにメンバーを追加する
"aaa" と "bbb" は違うオブジェクトなんだから "aaa" に追加したメンバーが "bbb" に無いのは当たり前

59 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 07:53:26.01 ID:5GC0Dj8P.net]
ネイティブコマンドの出力ってPowerShell界に入るとString列になるけど
Stringのそれぞれにプロパティで元のバイナリ付けて欲しい

60 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 08:58:53.82 ID:xlHQ3YOr.net]
>>59
PSNativeCommandPreserveBytePipe
https://learn.microsoft.com/ja-jp/powershell/scripting/learn/experimental-features#psnativecommandpreservebytepipe



61 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 11:02:44.18 ID:5GC0Dj8P.net]
バイナリが通るようになったのは
「ネイティブからネイティブ」と「PowerShellからネイティブ」だけ
「ネイティブからPowerShell」に手軽にバイナリ通したい

バイナリ出力ネイティブ | バイナリ入力ネイティブ

として使うバイナリ入力ネイティブ用にラッパーが書きたいのに今は書けない

62 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 12:37:48.60 ID:5GC0Dj8P.net]
自分には必要ないから触れなかったけど
バイナリ出力ネイティブのラッパーも書けない

63 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 12:38:42.52 ID:5GC0Dj8P.net]
あ、手間をかければ書けるな

64 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 07:36:13.49 ID:ghNGRT5G.net]
引数に -i を複数回指定したいので param() を使わずに function を書いています
get-help で SYNTAX に使い方を表示するにはどうすれば良いのでしょうか

65 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 12:19:47.21 ID:hM6Ywi/0.net]
about_Comment_Based_Help
ttps://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_comment_based_help?view=powershell-7.4

このページの中の項目で
 スクリプト モジュールでのコメント ベースのヘルプの構文
 コメントベースのヘルプ キーワード
 関数のコメント ベースのヘルプ
 関数構文でのパラメーターの説明
 スクリプトのコメントベースのヘルプ
あたりが参考になるかも

66 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 16:47:47.85 ID:ghNGRT5G.net]
paramを使わずにSYNTAXを表示する方法を尋ねたのはそこを見たからでして
方法がありましたら具体的にご教示くださいませ

67 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 19:16:46.24 ID:CTT8zMQ8.net]
nugetに上がってるモジュールのソースでも嫁

68 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 21:29:18.59 ID:QC0ZGJu/.net]
そもそもなんで -i を複数回指定したいんだろう
引数$i の型を配列にするのとは違うの?

69 名前:0064 mailto:sage [2023/12/27(水) 12:51:53.61 ID:1jSqRJ5E.net]
ffmpeg.exeに毎回付けたいオプションがありまして
オプション付きエイリアス代わりのfunctionが欲しかったのです
ffmpeg -f aac -i audio.bin -f hevc -i video.bin -c copy out.mp4
のようにffmpeg.exeと同じ使い方だと嬉しい

ちなみにValueFromRemainingArgumentsで受けようとしても
ffmpeg: Parameter cannot be processed because the parameter name 'i' is ambiguous. Possible matches include: -InformationAction -InformationVariable.
と怒られます

70 名前:デフォルトの名無しさん mailto:sage [2023/12/27(水) 13:02:29.78 ID:X+3+vX99.net]
指定する対象はaudioとvideoと決まってるんだから
-aiや-viにすりゃいい
変態的なffmpegのオナニーに付き合う必要はない



71 名前:0064 mailto:sage [2023/12/27(水) 13:12:15.16 ID:1jSqRJ5E.net]
いやaudioとvideoに限らんし個数も不定なのよ
audioが言語別複数で、videoはチャプターごとに分かれて、字幕もあったり
結局ffmpegと同じ使い方ができるようにするのが面倒ない

72 名前:デフォルトの名無しさん mailto:sage [2023/12/27(水) 13:59:38.84 ID:Fe+mtIWC.net]
ffmpegはシーケンスが意味を持つ引数になってるのよね
どういう順で記述するかによって適用される範囲が異なってくる

73 名前:デフォルトの名無しさん mailto:sage [2023/12/27(水) 20:51:25.44 ID:85uYBZGc.net]
なら引数は$argsで受け取って好きなように解釈したらええがな

74 名前:0064 mailto:sage [2023/12/27(水) 22:38:05.51 ID:1jSqRJ5E.net]
だからそうしてるのが理解できないのかな
paramを使わないというのは $args を自分で解釈するということ
その上でparamを使わない場合のget-helpの出力について相談したんだが
聞いた相手が想像を超えたバカだったたようだ
邪魔したな

75 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 08:55:34.70 ID:xGxlWVWv.net]
PowerShellにはPowerShellの流儀があるわけで
それに合わないことをやろうとすれば苦労するのは当たり前
C言語で関数型プログラミングをしたいって騒いでるのと同レベル

76 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 09:27:10.14 ID:i2ZdA1S0.net]
・質問者がget-helpのやり方をスレで質問
・そもそもこうすればいいんじゃね?と別解について疑問があがる
・さほど適した別解はないことが判明
・質問者に対して怒り出す

別に苦労したと文句たれてるわけでもないのに質問者がウザ絡みされて気の毒すぎる

77 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 10:13:47.89 ID:DhrTF4+F.net]
助言・回答者に対しキレ散らかすパターン多いな。同一人物か?

78 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 10:20:56.59 ID:4ANODT1z.net]
よく見たら>>16のtarと同じ奴か

79 名前:デフォルトの名無しさん mailto:sage [2023/12/29(金) 08:36:49.58 ID:KamNl0ts.net]
PowerShellよりdoskeyのマクロにしたほうが簡単そう

80 名前:デフォルトの名無しさん mailto:sage [2023/12/29(金) 11:07:50.54 ID:HpMDoHHU.net]
get-helpでヘルプを表示させる
コメントベースのヘルプを記述する
param()を使わない
という条件だったら単純にスクリプトの先頭にコメントベースで
.SYNOPSIS または .DESCRIPTION に「-iが複数使える」旨を書けばいいのでは

もしくは
param()を使わず$Argsを自前で解釈しなきゃいけないので
引数の解釈を構築するついでに
$Args.Countがゼロもしくは -help -h -? /h /?
あたりの引数で独自のヘルプを表示させちゃうとか

まぁ普通に考えたらこうならね?



81 名前:デフォルトの名無しさん [2023/12/29(金) 15:57:16.18 ID:SsN2lKB9.net]
質問して答えにキレ散らかすキチゲエきてるねw

82 名前:デフォルトの名無しさん mailto:sage [2023/12/29(金) 17:50:55.94 ID:6zkU+tYe.net]
>>73 がコントすぎてさすがに擁護できない

83 名前:デフォルトの名無しさん mailto:sage [2023/12/30(土) 20:28:29.74 ID:pfiAiXAK.net]
XMLヘルプファイル用意して参照させればParam()のないfunctionに対し「構文」部分を書ける。

84 名前:デフォルトの名無しさん mailto:sage [2023/12/30(土) 21:23:05.61 ID:pfiAiXAK.net]
PowerShell標準から外れた「引数に -i を複数回指定」みたいな内容を書けるかは知らん。

85 名前:デフォルトの名無しさん [2023/12/31(日) 16:06:42.19 ID:gGg0M1TZ.net]
国内公式からLenovoのノートPC買ったら何故かISEが英語環境になって意味わからん。
どこに言語設定あるの?当然OSは日本語設定にしてるし、他のアプリも日本語になってる。
これまでLenovoのPCは5台くらい買ってきたのにISEだけ英語になるの初めてなんだが。
https://i.imgur.com/H4NVkKH.png

86 名前:デフォルトの名無しさん mailto:sage [2023/12/31(日) 17:55:15.89 ID:s/6k3+Yx.net]
そういうのsurfaceでもあったな
OSセットアップ時の国設定が半端に適用された状態だから入れ直した方が早いかも

87 名前:デフォルトの名無しさん [2024/01/01(月) 01:36:45.15 ID:/rCM9JK/.net]
>>85
Windowsは英語版を日本語に切り替えると日本語にならないところがある

だから日本語版でインストールした方がいい

ちなみにいまどきISEを使っているのもよくわからない

88 名前:デフォルトの名無しさん mailto:sage [2024/01/01(月) 21:51:12.11 ID:uj2mjMNR.net]
Windows PowerShell ISEでPowerShell Coreを利用する
https://dev.classmethod.jp/articles/using-powershell-core-in-the-windows-powershell-ise/

勝手にアプリをインストールできない環境なら意味あるかもしれない

89 名前:デフォルトの名無しさん [2024/01/02(火) 12:27:48.68 ID:TDOOgc4U.net]
powershell iseってのを知らなかったけど起動したらUIシンプルで美しいな
VSCodeもこれくらいシンプルになってくれんかな

90 名前:デフォルトの名無しさん mailto:sage [2024/01/02(火) 12:49:42.78 ID:ztgjURNX.net]
カスタマイズしてシンプルにすればいいと思うよ
俺はどちらかというとVSCodeのほうが機能美を感じる
デフォルトで万人の感性にフィットするモノは存在しない
カスタマイズも嫌なら自分で作るか作らせるか



91 名前:デフォルトの名無しさん [2024/01/02(火) 20:24:20.63 ID:G9bvfkvl.net]
>>88
ヤベーもの見てるんだなw

92 名前:デフォルトの名無しさん mailto:sage [2024/01/15(月) 23:56:13.49 ID:0fJNPgiU.net]
Class C { $a = '失敗' }

function f { Param([ref]$r); $r.Value = '成功' }

$o = [C]::new()
f ([ref]$o.a)
$o.a

$t = '失敗'
f ([ref]$t)
$t

こんなの聞いてないよ

93 名前:デフォルトの名無しさん mailto:sage [2024/01/16(火) 12:08:02.87 ID:YM90ubox.net]
何が言いたいのかわからないw
コードを実行した結果が書かれてないので
何を言いたいのか知るにはこのコードを実行しなきゃならない
めんどくさいw

94 名前:デフォルトの名無しさん mailto:sage [2024/01/16(火) 18:55:49.27 ID:6T/+PhGk.net]
プロパティがgetterだから

95 名前:デフォルトの名無しさん mailto:sage [2024/01/17(水) 09:27:27.73 ID:HArby8R7.net]
$o | Get-Member を実行してみれば分かるけど$o.aはフィールドじゃなくてプロパティだからな
$o.aのgetter( $o.get_a() )の戻り値を関数に渡しても$o.aの値は変わらない

96 名前:デフォルトの名無しさん mailto:sage [2024/02/11(日) 23:33:57.66 ID:Z05z2D4x.net]
パワーシェルすげえな
仕事がどんどん片付いていくよ

97 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 14:14:12.56 ID:JyRut9xW.net]
2つのCSV(どちらも同じヘッダー)で両方に一致するデータ行があった場合にその行を2つのCSVから取り除きたいんだけどどうしたらいいの?
ヘッダーがDate,Shop,Sales だとしてユニークな項目がなく全く同じデータが1つ目のCSVに1行、2つ目のCSVに2行あった場合に2つ目のCSVは1行だけ消したい
Where-object だと2行とも消えちゃう

98 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 18:46:20.00 ID:hxHkafQb.net]
2つのCSVをどうやってwhere-objectに渡してんだよ
その2行が消える間抜けコード晒してみなよ

99 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 19:14:40.76 ID:JyRut9xW.net]
chatgptに聞いたらそうなった

100 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 22:08:44.15 ID:JyRut9xW.net]
# CSVファイルを読み込む
$csv1 = Import-Csv -Path 'csv1.csv'
$csv2 = Import-Csv -Path 'csv2.csv'

# CSV1の各行について
foreach ($row1 in $csv1) {
 # CSV2の中で一致する行を探す
 $match = $csv2 | Where-Object { $_.Date -eq $row1.Date -and $_.Shop -eq $row1.Shop -and $_.Sales -eq $row1.Sales }

 # 一致する行が見つかった場合
 if ($match) {
  # CSV1とCSV2から一致する行を削除
  $csv1 = $csv1 | Where-Object { $_ -ne $row1 }
  $csv2 = $csv2 | Where-Object { $_ -ne $match[0] }
 }
}

# 結果を出力
$csv1 | Export-Csv -Path 'csv1.csv' -NoTypeInformation
$csv2 | Export-Csv -Path 'csv2.csv' -NoTypeInformation



101 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 23:21:34.71 ID:j3BJYXF1.net]
わーいできたー

$csv1=gc csv1.csv
$csv2=csv2.csv
#どうせ全一致ならテキストのまま比較すりゃいいだろ

$i=0
foreach($row in $csv1){
$csv2|%{
$j=$k=0
}{
if($_ -eq $row -and $i -eq 0){
$csv1[$i]=$csv2[$j]=$null
$k=1
}
$j++
}
$i++
}
$csv1|sc csv1.csv
$csv2|sc csv2.csv

102 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 23:58:09.98 ID:IJ26J3uc.net]
$i1 = "csv1.csv"
$i2 = "csv2.csv"
$o1 = "csv1_out.csv"
$o2 = "csv2_out.csv"
gc $i1, $i2 | group readcount | ?{$_.group[0] -ne $_.group[1]} | foreach{$_.group[0] | ac $o1; $_.group[1] | ac $o2; $_.group[0].readcount}

103 名前:デフォルトの名無しさん [2024/02/28(水) 00:21:41.74 ID:JjFjLo/S.net]
段階を踏まないのは謎だよな
ファイルをコピーする概念もなさそう

104 名前:デフォルトの名無しさん mailto:sage [2024/02/28(水) 00:54:14.86 ID:hPdEXjNd.net]
これで良かったわ
$csv1=gc csv1.csv
$csv2=gc csv2.csv
$compare=compare $csv1 $csv2
$compare|?{$_.SideIndicator -eq "<="}|% InputObject|sc csv1.csv
$compare|?{$_.SideIndicator -eq "=>"}|% InputObject|sc csv2.csv

105 名前:デフォルトの名無しさん [2024/02/28(水) 01:32:49.70 ID:anWSvM2g.net]
CSVファイルに想定外のデータがあることを考慮しないのか

106 名前:デフォルトの名無しさん mailto:sage [2024/02/28(水) 02:17:43.88 ID:gh65zyvf.net]
わ仕事早い…

csv1の方はDateがYYYY/MM/DDの10桁固定で
csv2の方はDateがYYYY/M/Dで8〜10桁になってて
日付としてみれば同じなんですが1行を文字ででみると違う可能性があります…
後出しですいません
またShopはだいたい一致してるのですが
「ローソン札幌店」と「ローソン札幌」や「ローソンサッポロ」みたいな内容が異なることがあってそこを必ず自前のfunctionの変換リストかましてから比較する予定でした
私の想定を超えるプログラムでfunctionを挟むこともできない

107 名前:デフォルトの名無しさん mailto:sage [2024/02/28(水) 02:24:06.13 ID:yYqm5P+g.net]
カラムの曖昧さとかは全く興味沸かないなあ自分でやんな

108 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 08:30:06.44 ID:Qx0i34px.net]
ファイルのサイズが大きければ実装が変わる

109 名前:デフォルトの名無しさん [2024/02/29(木) 08:47:23.80 ID:8KhlEQjj.net]
チンコのサイズが大きければ実績が変わる

110 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 15:53:36.57 ID:bh14ivY9.net]
昨日の少し試しましたが

$compare=compare $csv1 $csv2
$compare|?{$_.SideIndicator -eq "<="}|% InputObject|sc csv1.csv
$compare|?{$_.SideIndicator -eq "=>"}|% InputObject|sc csv2.csv

でうまくいきそうです
ありがとうございます

自分でつけてる家計簿からクレジットで相殺してる項目だけ出力したcsvと
三井住友のVpassの明細(ファイルの日付的には翌月)を突き合わせを自動でやって7割ぐらい減ってくれたらいいなと思って
AIにプログラム書かせたらすぐにできるかなと思ったけどAIもまだまだアホでした

土日に頑張ります



111 名前:デフォルトの名無しさん [2024/03/02(土) 23:39:14.56 ID:XQV1Pqn6.net]
目的よりも手段にこだわっていると思われる

テキストファイルとPowerShellだけで、イレギュラーなデータがあるかもしれないデータを操作をするのは、かなり面倒なやり方だぞ。

112 名前:デフォルトの名無しさん [2024/03/02(土) 23:40:34.42 ID:XQV1Pqn6.net]
>>110 はキャラクタセットも気にしてなさそうなんだよな

113 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 03:11:25.14 ID:CrVe/94r.net]
行比較が出来るようになれば対象が何だろうが応用できるだろ
話はとっくに終わってんのよ
>目的よりも手段にこだわっていると思われる
これまんまお前のことじゃね?

114 名前:デフォルトの名無しさん mailto:sage [2024/03/05(火) 01:41:57.29 ID:Mm4X91cX.net]
そんなに複雑なら、シェルの範囲を超えている。
Ruby など動的言語の出番

>>106
RubyのCSV では、コンバーターで変換器を自作する

115 名前:デフォルトの名無しさん mailto:sage [2024/03/06(水) 05:34:48.47 ID:oDRlZbsC.net]
Ruby では、2024-01-01 のみ、Date 型へ変換できる。
2024/1/1,2024/01/01,2024-1-1 は変換できない。
以下のように、自分で変換器・コンバーターを定義すれば変換できる

でも表記揺れは別の処理として、最初に一括して変換した方が安全

require 'csv'

input_csv = <<"EOT"
2024/1/1,2024-1-2
2024/02/01,2024-02-02
EOT

# Date 型へ変換する
proc = Proc.new do |field, field_info|
case field_info.index
when 0 then Date.strptime( field, "%Y/%m/%d" ) # 0列目
when 1 then Date.strptime( field, "%Y-%m-%d" ) # 1列目
else
field # 処理なし
end
end

options = { :converters => proc }

p CSV.parse( input_csv, options )

出力
[ [#<Date: 2024-01-01>, #<Date: 2024-01-02>],
[#<Date: 2024-02-01>, #<Date: 2024-02-02>] ]

116 名前:デフォルトの名無しさん mailto:sage [2024/03/06(水) 07:42:44.20 ID:wzhaiXwv.net]
PowerShellだと何も考えずにDateTime変換できるのに、Rubyだとそんなに手間かかるのか
もうそんな言語使うの止めて大人しくPowerShell使ったら?

117 名前:デフォルトの名無しさん mailto:sage [2024/03/06(水) 17:02:39.85 ID:8FQ+1AZx.net]
すいません初心者でとんちんかんな質問だったらごめんなさい
PowerShellからarduinoにデータを送ってOLEDで表示するセンサーモニターを作ってます
CPU・GPUの使用率や温度は取り出せて表示できたのですが
FPSってどこからか取り出す方法ってありますか?
使用率や温度と違うのでPresentMonやAfterburnerからGet-Counterで取得する?
とか考えて調べてるのですが分からなくて
とんちんかんなこと言ってたらすいません
できるできない含めて教えてください

118 名前:115 mailto:sage [2024/03/07(木) 01:47:21.31 ID:Z/86eyX0.net]
基本的に、Go でも、こういうのしかない

2024-01-01
2024-01-01 15:01:01

それか、RFC 3339, RFC 3339 Nano

これら以外を使っているシステムは、バグるからダメ!

119 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 01:55:49.10 ID:yhOhiWWp.net]
>>117
FPSて。要するにモニタのリフレッシュレートが欲しいんじゃろ?
ほれ
$RefreshRate = Get-WmiObject -Class:Win32_videocontroller | Select-Object -ExpandProperty CurrentRefreshRate

120 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 10:15:46.32 ID:s2RGChkv.net]
>>119
返事ありがとうございます
言葉足らずですいません
頂いた情報は現在設定しているリフレッシュレートが表示されるようです
欲しいデータはGeForce ExperienceやMSI Afterburnerで画面上でオーバーレイさせて
表示しているリアルタイムのFPSとして表示されている数値なんです
FPSやフレームレートで検索してましたがリフレッシュレートでも探してみます



121 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 10:15:52.25 ID:s2RGChkv.net]
>>119
返事ありがとうございます
言葉足らずですいません
頂いた情報は現在設定しているリフレッシュレートが表示されるようです
欲しいデータはGeForce ExperienceやMSI Afterburnerで画面上でオーバーレイさせて
表示しているリアルタイムのFPSとして表示されている数値なんです
FPSやフレームレートで検索してましたがリフレッシュレートでも探してみます

122 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 10:51:01.07 ID:s2RGChkv.net]
連投してましたすいません
引き続き皆さんの知恵を貸してください

123 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 13:04:08.87 ID:9xBYf94s.net]
まずそれらがfps値返すようなAPI持ってるか調べなよ
無いなら値として取得は無理だろうね
fps表示部分が単色ならそのエリアをキャプチャして数字認識でもした方が早そう

124 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 14:35:34.66 ID:s2RGChkv.net]
>>123
ヒントありがとうございます
APIを調べてみたらNVIDIAにNVAPIと言うのがありました
ここからどうやって取り出すか調べてます
もし良かったらもう少し何かヒントをください

125 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 17:21:43.79 ID:9xBYf94s.net]
もうpowershell関係ないがPresentMon64に計測対象のPID渡せばfps取得できるみたいね

126 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 17:56:53.13 ID:YZU0b9T9.net]
>>125
はいPresentMonでもFPSを取れるみたいなのは調べました
ただ、今arduinoㇸpowarshellからCPUGPUのデータを
受け取ってたのでそこと一緒に入れる方法が見つけられなくて

127 名前:110 mailto:sage [2024/03/07(木) 22:55:03.61 ID:PPl+ScPv.net]
Add-Type -AssemblyName System.Windows.Forms

function ConvertShopName([string]$shopName) {
 switch -Wildcard ($shopName) {
  "ファミリーマート*" { $shopName2 = [regex]::Replace($shopName, "(ファミリーマート)([  ]*)(.*)(店)", { $args.groups[1].value + " " + $args.groups[3].value }) }
  "ローソン*" { $shopName2 = [regex]::Replace($shopName, "(ローソン)([  ]*)(.*)", { $args.groups[1].value }) }
  "セブンイレブン*" { $shopName2 = "セブンイレブン" }
  "マクドナルド*" { $shopName2 = "マクドナルド" }
  "すき家*" { $shopName2 = "すき家" }
  "Amazonで注文" { $shopName2 = "AMAZON.CO.JP" }

  default { $shopName2 = $shopName }

 }
 return $shopName2
}


if ($Args.Count -eq 0) {
 [System.Windows.Forms.MessageBox]::Show("引数にファイルを指定してください", "エラー")
 return 0
}

# 家計簿から抽出した csv ファイルを読み込む
$excelData = Import-Csv $Args[0] -Encoding Default -Header "Date", "Shop", "Amount" |
 Select-Object @{ label = 'Date'; expression = { [DateTime]$_.Date} }, Shop, @{ label = 'Amount'; expression = { [int]$_.Amount } }

# 引数で指定されたファイルをフォルダパスとファイル名(拡張子なし)に分離する
$baseName = [System.IO.Path]::GetFileNameWithoutExtension($Args[0])
$folderPath = [System.IO.Path]::GetDirectoryName($Args[0])

128 名前:110 mailto:sage [2024/03/07(木) 22:56:30.34 ID:PPl+ScPv.net]
# ファイル名から日付に変換する
$targetDate = [DateTime]::ParseExact($baseName + "01日","yyyy年MM月dd日", $null)

# 引数と同じフォルダにある Vpass からダウンロードした csv ファイル(ファイル名は翌月) を読み込む
$vpassFile = $folderPath + "\" + $targetDate.AddMonths(1).ToString("yyyyMM") + ".csv"
$vpassData = Import-Csv $vpassFile -Encoding Default -Header "Date", "Shop", "TotalAmount", "Type", "Count", "PaymentAmount", "ShopDetail" |
 Select-Object @{ label = 'Date'; expression = { [DateTime]$_.Date } }, Shop, @{ label = 'TotalAmount'; expression = { [int]$_.TotalAmount } }, Type, Count, @{ label = 'PaymentAmount'; expression = { [int]$_.PaymentAmount } }, ShopDetail


echo "実行します . . ."
# 家計簿データの Shop が "自動引き落とし" で Amount がプラスのデータを削除する
$excelDataList = [System.Collections.ArrayList]$excelData | Where-Object { $_.Shop -ne "自動引き落とし" -and $_.Amount -lt 0 }

# 家計簿データの 2項目目が空のデータ行を削除する
$excelDataList = [System.Collections.ArrayList]$excelData | Where-Object { ![string]::IsNullOrEmpty($_.Shop) }

# 家計簿のマイナスになっている消し込みデータをプラスに変換し、店名をクレジット明細側に変換する
foreach($data in $excelDataList) {
 $data.Amount = $data.Amount * -1
 $data.Shop = ConvertShopName($data.Shop)
}

# vpass データの Type, Count, PaymentAmount, ShopDetail が null のデータを削除する
$vpassData2 = $vpassData | Where-Object { ![string]::IsNullOrEmpty($_.Type) -or ![string]::IsNullOrEmpty($_.Count) -or ![string]::IsNullOrEmpty($_.PaymentAmount) -or ![string]::IsNullOrEmpty($_.ShopDetail) }

129 名前:110 mailto:sage [2024/03/07(木) 22:57:21.99 ID:PPl+ScPv.net]
# vpass の Date, Shop, TotalAmount, Type, Count, Count, ShopDetail が null のデータを削除する
$vpassData3 = $vpassData2 | Where-Object { ![string]::IsNullOrEmpty($_.Date) -or ![string]::IsNullOrEmpty($_.Shop) -or ![string]::IsNullOrEmpty($_.TotalAmount) -or ![string]::IsNullOrEmpty($_.Type) -or ![string]::IsNullOrEmpty($_.Count) -or ![string]::IsNullOrEmpty($_.ShopDetail) }

# 抽出後のデータを格納するための変数
[System.Collections.ArrayList]$vpassDataList = @()
[System.Collections.ArrayList]$unknownhDataList = @()

# vpass データのデータを必要な項目のみにする
foreach($data in $vpassData3) {
 if ( $data.Type -eq "1" -and $data.Count -eq "1" -and $data.TotalAmount -eq $data.PaymentAmount -and $data.ShopDetail -eq "" ) {
  $temp = $data | Select-Object Date, Shop, @{ label = 'Amount'; expression = { [int]$_.TotalAmount } }
  $vpassDataList += $temp
 } elseif ( $data.Type -eq "1" -and $data.Count -eq "1" -and $data.TotalAmount -eq $data.PaymentAmount -and $data.ShopDetail -ne $null ) {
  $temp = $data | Select-Object Date, @{ label = 'Shop'; expression = { $_.ShopDetail } }, @{ label = 'Amount'; expression = { [int]$_.TotalAmount } }
  $vpassDataList += $temp
 } else {
  $unknownhDataList += $data
 }
}

# 重複するオブジェクトを探す
$commonObjects1 = Compare-Object -ReferenceObject $excelDataList -DifferenceObject $vpassDataList -Property Date, Shop, Amount -IncludeEqual | Where-Object { $_.SideIndicator -eq '<=' }
$commonObjects2 = Compare-Object -ReferenceObject $excelDataList -DifferenceObject $vpassDataList -Property Date, Shop, Amount -IncludeEqual | Where-Object { $_.SideIndicator -eq '=>' }

130 名前:110 mailto:sage [2024/03/07(木) 23:00:00.89 ID:PPl+ScPv.net]
Add-Content $Args[0] "`r`n`r`n--------`r`n`r`n"
Add-Content $Args[0] $unknownhDataList
Add-Content $Args[0] "`r`n`r`n"
Add-Content $Args[0] $commonObjects1
Add-Content $Args[0] "`r`n`r`n"
Add-Content $Args[0] $commonObjects2


echo "終了しました。続行するには何かキーを押してください . . ."
$host.UI.RawUI.ReadKey()

-----
とりあえず形にはなりました。ありがとうございました!



131 名前:デフォルトの名無しさん mailto:sage [2024/03/08(金) 02:02:18.05 ID:nneR3Lgu.net]
それだけプログラミングできるなら、
データベースもある、Ruby on Rails で稼げ

PowerShell では稼げないだろ

132 名前:デフォルトの名無しさん [2024/03/08(金) 19:54:09.17 ID:kAti37wZ.net]
無償のRDBに取り込んで操作すれば楽なのにな
SQL Server ExpressもSQLもわからないのかもしれないが

133 名前:デフォルトの名無しさん mailto:sage [2024/03/08(金) 23:00:20.01 ID:swFfFcBY.net]
いや、それならSQLiteでええやん

134 名前:デフォルトの名無しさん [2024/03/09(土) 21:26:55.41 ID:HJGXBhOf.net]
>>133
それマイクロソフト製品じゃないぞ?

135 名前:デフォルトの名無しさん mailto:sage [2024/03/10(日) 01:11:42.47 ID:AxZkOQF1.net]
sqliteはnugetから落とせるだろ

136 名前:デフォルトの名無しさん mailto:sage [2024/03/10(日) 02:22:29.61 ID:dZzOrK8S.net]
マイクロソフト製品じゃないとダメな理由がよく分からない

137 名前:デフォルトの名無しさん [2024/03/10(日) 12:24:51.84 ID:2l3n+JcC.net]
>>136
マイクロソフトのサポートが対応を渋る

138 名前:デフォルトの名無しさん [2024/03/10(日) 12:25:36.50 ID:2l3n+JcC.net]
SQL Server Expressを嫌がる理由がわからない

139 名前:デフォルトの名無しさん mailto:sage [2024/03/13(水) 12:54:32.04 ID:dDXeoITb.net]
FPS値を取得したがっていた者です
あれから色々調べてHWiNFOから取得する事ができました
ご協力ありがとうございました

140 名前:デフォルトの名無しさん mailto:sage [2024/03/14(木) 01:25:06.87 ID:3xDTJGqn.net]
ウェブ開発では、Ruby on Rails 一択。
Railsは、PostgreSQL, MySQL, SQLite の3大データベースに対応している。
ただし本番用では、PostgreSQL一択。
SQLiteは開発用・個人用など

AWS Aurora は、PostgreSQL, MySQLに対応している。
SQLiteはブラウザなど、多くのアプリに含まれて使われている



141 名前:デフォルトの名無しさん mailto:sage [2024/03/14(木) 04:08:32.14 ID:XOsoQn4t.net]
ORACLE「え?ワイは?」

142 名前:デフォルトの名無しさん mailto:sage [2024/03/14(木) 04:11:13.73 ID:MTVljuIS.net]
Rubyとかいう20年前の言語w

143 名前:デフォルトの名無しさん mailto:sage [2024/03/14(木) 14:26:49.02 ID:i9kIdifV.net]
デフォで存在してるところが良いんじゃないか
わざわざインストールするのなら今更新規にRubyを入れるのは無いだろうな

144 名前:デフォルトの名無しさん [2024/03/14(木) 21:10:47.40 ID:xE50NtDY.net]
>>141
オラクル社とマイクロソフト社がクラウドの世界では提携しているのを知らないのか?

145 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 03:50:52.94 ID:d5IiPK+0.net]
「主なRDB」でググった結果
Microsoft SQL Server.
Oracle Database
PostgreSQL.
MySQL
Amazon Relational Database Service.
IBM Db2 Database.

146 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 08:13:53.75 ID:X0BgzxQ9.net]
まだ続くの?家計簿に適してるのはどれよ

147 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 19:27:44.40 ID:Yppsp93L.net]
家計簿レベルなら1ヶ月に多くても1000件ないでしょ
csvをそのままOS標準で使える言語で処理するのがいいよ

148 名前:デフォルトの名無しさん [2024/03/16(土) 23:37:28.12 ID:5O1O3AvE.net]
>>147
複式簿記というものを知らないのがバレているぞ

149 名前:140 mailto:sage [2024/03/17(日) 01:43:19.61 ID:02imyFwJ.net]
複式簿記の自作なんて無理。
テーブル数も、100 ぐらい行きそう

総勘定元帳とか、複数のテーブルを紐付けしないといけないから、
プログラムがめちゃめちゃ複雑。
これは有料の会計ソフトを使うべき

自作では、単純な単式簿記しかできない

Ruby のCSV Table や、データベースを使うなら、Ruby on Rails とか。
Railsなら、3大データベースに対応している

参照、>>140

150 名前:デフォルトの名無しさん mailto:sage [2024/03/17(日) 10:50:03.64 ID:b6WSYS3s.net]
Rubyガイジってどこにでもわくんだな
トコジラミ並み



151 名前:デフォルトの名無しさん mailto:sage [2024/03/19(火) 02:21:32.51 ID:ilfn8WqH.net]
>>97
Ruby のCSV.Table で作ってみた

https://paiza.io/projects/7dyw8_lDWimUANwD5E5GSw?language=ruby

152 名前:デフォルトの名無しさん mailto:sage [2024/03/19(火) 13:20:31.92 ID:xCYlYIv4.net]
このスレは

PowerShell -Part 7

です






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

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

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