>>792
「qなら終了」が何を示すかによるが、powershellのパイプは途中で打ち切る事は原則できないと考えた方が良い。
(endブロックが呼ばれない不完全なハックならググれば見つかる)
またパイプ処理の待機はpowershellのメインスレッドの待機という意味になるので、
そこに非同期イベントを介入させたい場合はそのイベント用の別スレッドを走らせておく必要がある。
探検
PowerShell -Part 6
レス数が1000を超えています。これ以上書き込みはできません。
794デフォルトの名無しさん
2023/04/22(土) 16:45:49.14ID:3JkCsMe2795デフォルトの名無しさん
2023/04/22(土) 21:39:35.55ID:81urZ/Lj (New-Object -ComObject Shell.Application).NameSpace(10).MoveHere(ファイルパス)
上記の方法でファイルをごみ箱に移動する場合ファイルが1個なら問題ないんですが、
ファイルパスをを"z:\*"みたいにワイルドカードで指定するとなぜか
ごみ箱でなくC:\Users\ユーザー名にファイルが送られてしまいます。
どうすればごみ箱に送れましょうか?
上記の方法でファイルをごみ箱に移動する場合ファイルが1個なら問題ないんですが、
ファイルパスをを"z:\*"みたいにワイルドカードで指定するとなぜか
ごみ箱でなくC:\Users\ユーザー名にファイルが送られてしまいます。
どうすればごみ箱に送れましょうか?
796デフォルトの名無しさん
2023/04/23(日) 10:54:07.72ID:ElcI27v7 >>794
q は出力スレッドの停止マークで、入力の最後も意味するつもりだった (その後の入力はない)
という考えをくみ取って欲しくて例を付けたのだが伝わらなくて残念
パイプラインの中断にSelect-Object -First 1する話は知ってる
ていうか本題から話をそらそうとしてません?
知りたいのはメインスレッド以外からプライマリパイプラインに出力する方法
パイプラインの次段に送るにはどうすればいいか具体例が欲しい
q は出力スレッドの停止マークで、入力の最後も意味するつもりだった (その後の入力はない)
という考えをくみ取って欲しくて例を付けたのだが伝わらなくて残念
パイプラインの中断にSelect-Object -First 1する話は知ってる
ていうか本題から話をそらそうとしてません?
知りたいのはメインスレッド以外からプライマリパイプラインに出力する方法
パイプラインの次段に送るにはどうすればいいか具体例が欲しい
797デフォルトの名無しさん
2023/04/23(日) 15:49:22.67ID:fUzoPDLK シェルスクリプトやPowerShell が遅いのは、
毎行、何かのプロセスを起動するからじゃないの?
多くはプロセスの起動時間だろう
Ruby は、外部プロセスを起動しなければ、プロセスは1つのまま。
並行処理もあるけど
grep は、1GB を1秒!
毎行、何かのプロセスを起動するからじゃないの?
多くはプロセスの起動時間だろう
Ruby は、外部プロセスを起動しなければ、プロセスは1つのまま。
並行処理もあるけど
grep は、1GB を1秒!
798デフォルトの名無しさん
2023/04/23(日) 16:01:56.38ID:vCOHFjdN >>796
そもそもパイプは同期的にしか動かないので、次段でいくら細工しても上流が出力を起こしたタイミングに縛られる。
話を単純にするなら不規則な出力を受ける処理と一定間隔で出力する処理は分けるべきだろうね。
そもそもパイプは同期的にしか動かないので、次段でいくら細工しても上流が出力を起こしたタイミングに縛られる。
話を単純にするなら不規則な出力を受ける処理と一定間隔で出力する処理は分けるべきだろうね。
799デフォルトの名無しさん
2023/04/23(日) 16:05:07.36ID:fUzoPDLK >>795
移動なら、robocopy のmov/move を使えば?
移動なら、robocopy のmov/move を使えば?
800デフォルトの名無しさん
2023/04/23(日) 16:10:27.14ID:n0NMvdBV >>799
どうやればごみ箱に移動できましょうか?
どうやればごみ箱に移動できましょうか?
801デフォルトの名無しさん
2023/04/23(日) 16:33:01.94ID:aISPDv4l802デフォルトの名無しさん
2023/04/23(日) 17:57:33.46ID:ElcI27v7803デフォルトの名無しさん
2023/04/24(月) 17:53:43.44ID:cODz6Qqq >>801
どうもありがとうございます。そうします。
どうもありがとうございます。そうします。
804デフォルトの名無しさん
2023/04/25(火) 01:01:33.91ID:q0KJktEO 最近この言語で書くことあるけど関数の呼び出しを最初に書かないとエラー起こすなんて知らなくて問題解決に時間がかかった
多分ほとんどの人が関数はメインの後に書きたいと思うんだけどファイル分けて呼び出したりしてるの?
多分ほとんどの人が関数はメインの後に書きたいと思うんだけどファイル分けて呼び出したりしてるの?
805デフォルトの名無しさん
2023/04/25(火) 07:59:40.97ID:0OU27daL806デフォルトの名無しさん
2023/04/25(火) 08:14:10.57ID:Q567y34W >>805
定義を上書きできる言語なら呼び出し順序に意味があると思うけど、そうじゃないならただの手抜き仕様
定義を上書きできる言語なら呼び出し順序に意味があると思うけど、そうじゃないならただの手抜き仕様
807デフォルトの名無しさん
2023/04/25(火) 08:17:30.73ID:0OU27daL >>806
実行速度が速くなる、スコープが明確になる、などのメリットがあって敢えて採用されてるんだよ
JSとかも古くからあるfunction構文は順序関係ないが今推奨されてるアロー関数だと前に書かなきゃだめだ
実行速度が速くなる、スコープが明確になる、などのメリットがあって敢えて採用されてるんだよ
JSとかも古くからあるfunction構文は順序関係ないが今推奨されてるアロー関数だと前に書かなきゃだめだ
808デフォルトの名無しさん
2023/04/25(火) 08:19:33.10ID:0OU27daL あとスパゲティを防ぐ効果があるというメリットもあるな
C言語だとそれを目的にプロトタイプを書かない人もいる
C言語だとそれを目的にプロトタイプを書かない人もいる
809デフォルトの名無しさん
2023/04/25(火) 08:27:15.73ID:h+X7r+oZ 関数同士の依存関係が明確で前の関数が後の関数に依存しないなら初めてのコードを読みやすくなるというメリットもあるな
810デフォルトの名無しさん
2023/04/25(火) 08:33:08.87ID:TxIkuN+X ホイスティングってJS以外であるの?
811デフォルトの名無しさん
2023/04/25(火) 09:07:53.85ID:qRrW+mkA Java隆盛くらいの時代には関数はどこに書いても良いのが当たり前として定着したけど
関数型プログラミングでは関数宣言は変数や定数の宣言と同じようなものだからどうしても順序を意識せざるを得ない
順序の扱いを自動でやってくれる仕組みがホイスティングなんだけど、そのルールの分かりにくさやいやらしさが開発者に嫌われてJavaScriptのvarがletとconstに取って代わられた歴史がある
関数型プログラミングでは関数宣言は変数や定数の宣言と同じようなものだからどうしても順序を意識せざるを得ない
順序の扱いを自動でやってくれる仕組みがホイスティングなんだけど、そのルールの分かりにくさやいやらしさが開発者に嫌われてJavaScriptのvarがletとconstに取って代わられた歴史がある
812デフォルトの名無しさん
2023/04/25(火) 11:26:54.33ID://VjHWfL >>804
メインの部分をメイン関数として書いて実行時にメイン関数を呼び出すようにすればよいのでは?PowerShellはシェルとしても動くので実行時に先に関数が定義されていないといけないのは自然な動作のような気もする。
メインの部分をメイン関数として書いて実行時にメイン関数を呼び出すようにすればよいのでは?PowerShellはシェルとしても動くので実行時に先に関数が定義されていないといけないのは自然な動作のような気もする。
813デフォルトの名無しさん
2023/04/25(火) 11:29:40.93ID:Y1VsObgt vbsは関数後書きでもokだよ
よしvbs使おう
よしvbs使おう
814デフォルトの名無しさん
2023/04/25(火) 11:43:20.51ID:Xlw1eETD >>812
begin process endブロック使いたいときに発狂しそうだな
begin process endブロック使いたいときに発狂しそうだな
815デフォルトの名無しさん
2023/04/25(火) 21:27:41.00ID:RtJhGNCC powershellでもclass内なら順序関係なくなるよ
816デフォルトの名無しさん
2023/05/04(木) 17:38:09.61ID:spWJYsDj 自分のコード見たら別に後から宣言してても実行できてるんだが
コマンドレットの定義だとホイスティングされるとかある?
コマンドレットの定義だとホイスティングされるとかある?
817デフォルトの名無しさん
2023/05/04(木) 17:56:23.79ID:P088Z0u/ >>816
どういうコード書いてんのよ
どういうコード書いてんのよ
818デフォルトの名無しさん
2023/05/04(木) 21:18:57.29ID:FdNSNO1e >>816
古臭いと言われても、前に書いた方が無駄な混乱をさけられる。
古臭いと言われても、前に書いた方が無駄な混乱をさけられる。
819デフォルトの名無しさん
2023/05/05(金) 18:03:31.01ID:gmBJZ0Nw 動的言語は第一級関数のクロージャが多いから、
関数外で宣言したローカル変数が、関数内へ持ち込まれるので、
スコープが広くて、ヤバイ
さらに、JS はホイスティングされるから、超ヤバイ
ただし、Ruby の関数だけは第一級関数のクロージャではなく、
関数外で宣言したローカル変数は、関数内へ持ち込まれない
だから他の言語よりも、圧倒的にバグらないので、初心者向き
関数外で宣言したローカル変数が、関数内へ持ち込まれるので、
スコープが広くて、ヤバイ
さらに、JS はホイスティングされるから、超ヤバイ
ただし、Ruby の関数だけは第一級関数のクロージャではなく、
関数外で宣言したローカル変数は、関数内へ持ち込まれない
だから他の言語よりも、圧倒的にバグらないので、初心者向き
820デフォルトの名無しさん
2023/06/29(木) 13:26:04.42ID:GLUt9X10 get-childitem select-object Full name,でownerを追加する方法はありますか?ご存知の方、ご教示願います。
821デフォルトの名無しさん
2023/06/29(木) 17:48:28.46ID:xt/PffdC >820
Get-ChildItemだけではowner情報は取れない、Get-Aclで情報取得する必要がある
組み合わせで良ければ以下の様にSelect-Objectでプロパティ追加すれば出来る
Get-ChildItem|Select-Object FullName,@{n="Owner";e={Get-Acl $_.fullname|% {$_.Owner}}}
Get-ChildItemだけではowner情報は取れない、Get-Aclで情報取得する必要がある
組み合わせで良ければ以下の様にSelect-Objectでプロパティ追加すれば出来る
Get-ChildItem|Select-Object FullName,@{n="Owner";e={Get-Acl $_.fullname|% {$_.Owner}}}
822デフォルトの名無しさん
2023/07/07(金) 19:48:22.82ID:5l+s6JZK Outlook を起動してメールを送りたいのですが
本文のメールのフォントサイズや色の指定が一切無視されます。
Outlook 側の設定なのか、コードが悪いのかもよくわからず。。。
スレ違いならすいません
===================
$outlook = New-Object -comObject Outlook.Application
$mail = $outlook.CreateItem(0)
$mail.Subject = "件名テスト"
$mail.HTMLBody = "<html><head><style type='text/css'>
body {font-size:11; font-family:Meiryo UI;}
</style></head><body>
ああああ<span style='text-decoration:underline; text-decoration-color:red;'>いいいい</span>ううう<br>
</body></html>"
$inspector = $mail.GetInspector
$inspector.Display()
#$mail.Send()
===================
上記のコードだとメイリオは設定されますが、フォントサイズは8.5になるし下線は黒色になります。
なにとぞご教示お願いします
本文のメールのフォントサイズや色の指定が一切無視されます。
Outlook 側の設定なのか、コードが悪いのかもよくわからず。。。
スレ違いならすいません
===================
$outlook = New-Object -comObject Outlook.Application
$mail = $outlook.CreateItem(0)
$mail.Subject = "件名テスト"
$mail.HTMLBody = "<html><head><style type='text/css'>
body {font-size:11; font-family:Meiryo UI;}
</style></head><body>
ああああ<span style='text-decoration:underline; text-decoration-color:red;'>いいいい</span>ううう<br>
</body></html>"
$inspector = $mail.GetInspector
$inspector.Display()
#$mail.Send()
===================
上記のコードだとメイリオは設定されますが、フォントサイズは8.5になるし下線は黒色になります。
なにとぞご教示お願いします
823デフォルトの名無しさん
2023/07/10(月) 00:01:29.03ID:pvSg+WfU font-sizeの値に単位が無いから無視されてんじゃね
824デフォルトの名無しさん
2023/07/10(月) 03:13:05.95ID:ixw20e1S >>823
試したはず・・・と思いつつも確認したら普通に変更されました!!!
11px で確認したのかもしれません。11pt と書いたら普通に反映されました
ありがとうございます
ただ下線は相変わらず赤色にならず、黒色のままです。
#FF0000 も試したけど変わらず・・・
どうやら text-decoration-color がそもそも使えないようでした。
さささ<span style='text-decoration:underline; color:red;'>ししし</span>すすす<br>
とやったら文字も赤くなりましたが下線も赤くなりました。
Outlook に使える html の仕様との戦いな気がしてきた
これはどこで尋ねたら・・・
試したはず・・・と思いつつも確認したら普通に変更されました!!!
11px で確認したのかもしれません。11pt と書いたら普通に反映されました
ありがとうございます
ただ下線は相変わらず赤色にならず、黒色のままです。
#FF0000 も試したけど変わらず・・・
どうやら text-decoration-color がそもそも使えないようでした。
さささ<span style='text-decoration:underline; color:red;'>ししし</span>すすす<br>
とやったら文字も赤くなりましたが下線も赤くなりました。
Outlook に使える html の仕様との戦いな気がしてきた
これはどこで尋ねたら・・・
825デフォルトの名無しさん
2023/07/10(月) 10:11:13.02ID:CzqO5vr+ 後はstyle属性をシングルクォーテーションで括ってるのが気になった
全体の括りをシングルにして属性値をダブルに変更で動くと思うよ
全体の括りをシングルにして属性値をダブルに変更で動くと思うよ
826デフォルトの名無しさん
2023/07/10(月) 10:51:54.81ID:ixw20e1S シングルとダブルは変わりませんでした…
実際はPowerShellでメール本文内に変数を当てこむので
シングルのままでいこうと思います
あと下線だけ赤色は私の勘違いでした
赤下線の時は文字も赤くして問題なかったのでとりあえず解決しました
お手数おかけしました
ご助言くださった方ありがとうございました
実際はPowerShellでメール本文内に変数を当てこむので
シングルのままでいこうと思います
あと下線だけ赤色は私の勘違いでした
赤下線の時は文字も赤くして問題なかったのでとりあえず解決しました
お手数おかけしました
ご助言くださった方ありがとうございました
827デフォルトの名無しさん
2023/07/13(木) 11:56:03.10ID:cnmTEsiX 二週間ほど前に自分で調べて書いたのに、どうやって書いて動かしたのか全く思い出せなくて困ってます
自分で自分が信じられないんですが、教えてください。
やりたいこと:Read-Hostで指定したフォルダに存在するフォルダを取得し、各フォルダに指定したファイルをコピーする
引っかかっている点:
1)$input = Read-Host "コピー先フォルダを指定"
たとえばここでcopyと入力。規定のフォルダがC:\作業とする。
入力の結果、c:\作業\copyとして、ここにあるサブフォルダを取得したいので
$inputをc:\作業\copyにしたい。
2)Get-ChildItem でディレクトリ名のみ取得するには?
それでforeachでやってたと思うんですが・・・。
自分で自分が信じられないんですが、教えてください。
やりたいこと:Read-Hostで指定したフォルダに存在するフォルダを取得し、各フォルダに指定したファイルをコピーする
引っかかっている点:
1)$input = Read-Host "コピー先フォルダを指定"
たとえばここでcopyと入力。規定のフォルダがC:\作業とする。
入力の結果、c:\作業\copyとして、ここにあるサブフォルダを取得したいので
$inputをc:\作業\copyにしたい。
2)Get-ChildItem でディレクトリ名のみ取得するには?
それでforeachでやってたと思うんですが・・・。
828デフォルトの名無しさん
2023/07/13(木) 13:50:42.52ID:K8IsBXo8 Get-ChildItem -LiteralPath ([IO.Path]::Combine("C:\作業", (Read-Host "コピー先フォルダを指定"))) -Directory -Name
829デフォルトの名無しさん
2023/07/13(木) 17:51:09.66ID:cnmTEsiX830デフォルトの名無しさん
2023/07/14(金) 04:02:22.77ID:vOCFwCnb 多分いままで書いてたコードはこれ
# 規定のフォルダのパスを作成
$parent = join-path 'c:\作業' $input
# 上記パスのサブフォルダ作成
$names = ls -pspath $parent -di | % name
下記はエイリアス(関数の別名)
ls := get-childitem
% := foreach-object
# 規定のフォルダのパスを作成
$parent = join-path 'c:\作業' $input
# 上記パスのサブフォルダ作成
$names = ls -pspath $parent -di | % name
下記はエイリアス(関数の別名)
ls := get-childitem
% := foreach-object
831デフォルトの名無しさん
2023/07/14(金) 04:02:59.81ID:vOCFwCnb # 上記パスのサブフォルダ作成
↓
# 上記パスのサブフォルダ名を取得
↓
# 上記パスのサブフォルダ名を取得
832820
2023/07/18(火) 17:12:35.63ID:jBHsPJa3 >>821
遅くなりました。
set-location -pathで場所を指定したら、指定したフォルダのownerを取得できました。ありがとうございます。
get-Childitem -recruse -file ┃select-Object directoryName ,name ,extension ,Length Creationtime, lastACCESStime ,lastwriteTime, fullname ┃Export‐csv ‐Encodeing default xxx.csv
と一緒にできなかったのが悔やまれます。
遅くなりました。
set-location -pathで場所を指定したら、指定したフォルダのownerを取得できました。ありがとうございます。
get-Childitem -recruse -file ┃select-Object directoryName ,name ,extension ,Length Creationtime, lastACCESStime ,lastwriteTime, fullname ┃Export‐csv ‐Encodeing default xxx.csv
と一緒にできなかったのが悔やまれます。
833デフォルトの名無しさん
2023/07/18(火) 18:02:52.05ID:uMqw2ex7 そういう時はadd-memberするんだよ
834デフォルトの名無しさん
2023/07/18(火) 20:02:12.51ID:x3+Ehzia >>821の何がだめで、あるいは何が分からなくて、そのコマンドに組み込めなかったのか分からんな。
起点ディレクトリ自体の情報もCSVに含めたい、って事なのかな。
起点ディレクトリ自体の情報もCSVに含めたい、って事なのかな。
835デフォルトの名無しさん
2023/07/18(火) 22:45:48.56ID:BpIlHiPB powershellの学習曲線は険しい
本人が納得したならもうそれでいいだろう
本人が納得したならもうそれでいいだろう
837デフォルトの名無しさん
2023/07/19(水) 15:47:04.50ID:mqKqy4GV ならこんな感じで。
$dirPath = "起点ディレクトリのフルパス"
[IO.FileInfo]::new($dirPath) | %{$_; $_ | Get-ChildItem -Recurse -File} | Select-Object DirectoryName, Name, Extension, Length, CreationTime, LastAccessTime, LastWriteTime, FullName, @{N="Owner";E={($_ | Get-Acl).Owner};} | Export-Csv -Encoding Default xxx.csv
CSVの出力先がフルパスなら、Set-Locationはいらない。
$dirPath = "起点ディレクトリのフルパス"
[IO.FileInfo]::new($dirPath) | %{$_; $_ | Get-ChildItem -Recurse -File} | Select-Object DirectoryName, Name, Extension, Length, CreationTime, LastAccessTime, LastWriteTime, FullName, @{N="Owner";E={($_ | Get-Acl).Owner};} | Export-Csv -Encoding Default xxx.csv
CSVの出力先がフルパスなら、Set-Locationはいらない。
838820
2023/07/24(月) 18:16:28.42ID:yY3fBN5A >>837
ありがとうございますm(_ _)m
とりあえずownerを取得できました。列の入れ替えはPowerQueryで対処します。
neme,Extensio,owner,...したかったのですが。
ありがとうございますm(_ _)m
とりあえずownerを取得できました。列の入れ替えはPowerQueryで対処します。
neme,Extensio,owner,...したかったのですが。
839デフォルトの名無しさん
2023/08/02(水) 23:31:49.70ID:8Lc0dkYb Pythonでやったら楽なのに…と思う処理も他のメンバーに配る可能性を考えると泣く泣くpowershellでやることになる
嫌いな言語ではないけど凝った処理を書こうとすると見た目の癖が強いソースコードになりがち
嫌いな言語ではないけど凝った処理を書こうとすると見た目の癖が強いソースコードになりがち
840デフォルトの名無しさん
2023/08/05(土) 08:55:12.86ID:4wFerhHK Pythonは見た目の癖が強くないとでも?
841デフォルトの名無しさん
2023/08/05(土) 09:35:04.11ID:wvUeqD5z 泣く泣くpowershellに草
842デフォルトの名無しさん
2023/08/06(日) 22:29:47.72ID:5CExyS7F 質問なのですがパイプラインの結果を関数に渡して先頭からk番目を取り出すには一体どうすればorz
やりたいことはパイプラインの結果を検証する処理をサブルーチン化したい(k番目を取り出すのはその第一歩)
とりあえず書いたがうまく行ってないやつ:
function Test-RegEnt($reg_query_result, $exp_type, $exp_value) {
$reg_query_result | Select-Object -Index 2
}
Write-Output ("Test_A1:" + ($result | Select-Object -Index 2)) # 2行目が意図通りselectされる(" RegisteredOwner REG_SZ Admin")
$result2 = Test-RegEnt($result, 'REG_SZ', 'Admin')
Write-Output ("Test_A2:" + $result2) # A1と同じ結果になるかと思いきや、'Admin' になる
やりたいことはパイプラインの結果を検証する処理をサブルーチン化したい(k番目を取り出すのはその第一歩)
とりあえず書いたがうまく行ってないやつ:
function Test-RegEnt($reg_query_result, $exp_type, $exp_value) {
$reg_query_result | Select-Object -Index 2
}
Write-Output ("Test_A1:" + ($result | Select-Object -Index 2)) # 2行目が意図通りselectされる(" RegisteredOwner REG_SZ Admin")
$result2 = Test-RegEnt($result, 'REG_SZ', 'Admin')
Write-Output ("Test_A2:" + $result2) # A1と同じ結果になるかと思いきや、'Admin' になる
843デフォルトの名無しさん
2023/08/06(日) 22:31:40.76ID:5CExyS7F 先頭3行抜かしましたorz
$result = reg query 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion' /v 'RegisteredOwner'
$cnt = 0
$result | ForEach-Object{ "TEST[$cnt}:" + $_; $cnt++ }
この次に>>842のコード。
$result = reg query 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion' /v 'RegisteredOwner'
$cnt = 0
$result | ForEach-Object{ "TEST[$cnt}:" + $_; $cnt++ }
この次に>>842のコード。
844デフォルトの名無しさん
2023/08/06(日) 22:48:34.72ID:5CExyS7F んまーなんかこれだとうまく行ったけんども思ってたのと違う……
function Test-RegEnt($exp_type, $exp_value) {
$Input | Select-Object -Index 2
}
$result = reg query 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion' /v 'RegisteredOwner'
$cnt = 0
$result | ForEach-Object{ "TEST[$cnt}:" + $_; $cnt++ }
Write-Output ("Test_A1:" + ($result | Select-Object -Index 2))
$result2 = ($result | Test-RegEnt('REG_SZ', 'Admin')) # パイプラインの結果を引数ではなくパイプで渡す
Write-Output ("Test_A2:" + $result2)
実はパイプラインの結果(オブジェクトの配列)は関数引数に渡せなかったりするので?
つなみにfunctionの引数部分で [array]$reg_query_result としてみてもうまく行かなかった。
function Test-RegEnt($exp_type, $exp_value) {
$Input | Select-Object -Index 2
}
$result = reg query 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion' /v 'RegisteredOwner'
$cnt = 0
$result | ForEach-Object{ "TEST[$cnt}:" + $_; $cnt++ }
Write-Output ("Test_A1:" + ($result | Select-Object -Index 2))
$result2 = ($result | Test-RegEnt('REG_SZ', 'Admin')) # パイプラインの結果を引数ではなくパイプで渡す
Write-Output ("Test_A2:" + $result2)
実はパイプラインの結果(オブジェクトの配列)は関数引数に渡せなかったりするので?
つなみにfunctionの引数部分で [array]$reg_query_result としてみてもうまく行かなかった。
845デフォルトの名無しさん
2023/08/07(月) 03:16:48.48ID:SSXgsNNw 文法が違う。
Test-RegEnt -reg_query_result $result -exp_type 'REG_SZ' -exp_value 'Admin'
とか
Test-RegEnt $result 'REG_SZ' 'Admin'
とか。
または
function Test-RegEnt {
Param (
[Parameter(ValueFromPipeline=$true)]
[string] $reg_query_result,
[string] $exp_type,
[string] $exp_value
)
Begin {
$cnt = 0
}
Process {
$cnt++
$idx = $cnt - 1
if ($idx -eq 2) {
$reg_query_result
return
}
}
}
$result | Test-RegEnt -exp_type 'REG_SZ' -exp_value 'Admin'
Test-RegEnt -reg_query_result $result -exp_type 'REG_SZ' -exp_value 'Admin'
とか
Test-RegEnt $result 'REG_SZ' 'Admin'
とか。
または
function Test-RegEnt {
Param (
[Parameter(ValueFromPipeline=$true)]
[string] $reg_query_result,
[string] $exp_type,
[string] $exp_value
)
Begin {
$cnt = 0
}
Process {
$cnt++
$idx = $cnt - 1
if ($idx -eq 2) {
$reg_query_result
return
}
}
}
$result | Test-RegEnt -exp_type 'REG_SZ' -exp_value 'Admin'
846デフォルトの名無しさん
2023/08/07(月) 06:50:14.57ID:L1yQ0BJe >>845
レス㌧クス
$Input利用(>>844)とBegin { } Process { }利用の違いはわかりた
$resultが数億オブジェクトだったりしたら後者の方がパイプラインがスムーズに流れてよさげ(未検証
一方、
>実はパイプラインの結果(オブジェクトの配列)は関数引数に渡せなかったりするので?(>>844)
については関数の呼び出し箇所が
$result | Test-RegEnt -exp_type 'REG_SZ' -exp_value 'Admin' # (1) OK
Test-RegEnt -reg_query_result $result -exp_type 'REG_SZ' -exp_value 'Admin' # (2) NG (エラー)
やったから、これは「パイプラインの結果は関数引数には渡せない」((1)のように書くしかない)ということでFA?
レス㌧クス
$Input利用(>>844)とBegin { } Process { }利用の違いはわかりた
$resultが数億オブジェクトだったりしたら後者の方がパイプラインがスムーズに流れてよさげ(未検証
一方、
>実はパイプラインの結果(オブジェクトの配列)は関数引数に渡せなかったりするので?(>>844)
については関数の呼び出し箇所が
$result | Test-RegEnt -exp_type 'REG_SZ' -exp_value 'Admin' # (1) OK
Test-RegEnt -reg_query_result $result -exp_type 'REG_SZ' -exp_value 'Admin' # (2) NG (エラー)
やったから、これは「パイプラインの結果は関数引数には渡せない」((1)のように書くしかない)ということでFA?
847デフォルトの名無しさん
2023/08/07(月) 06:54:08.66ID:FZVMVghc Select-ObjectのSkipとFirst使えばできるのでは?
848デフォルトの名無しさん
2023/08/07(月) 06:56:57.16ID:FZVMVghc 関数でやりたいという要件を見落としていた
849デフォルトの名無しさん
2023/08/07(月) 07:04:28.71ID:FZVMVghc >>842
> $result2 = Test-RegEnt($result, 'REG_SZ', 'Admin')
$result2 = Test-RegEnt $result 'REG_SZ' 'Admin'
でやりたいことはできるのではないでしょうか
> $result2 = Test-RegEnt($result, 'REG_SZ', 'Admin')
$result2 = Test-RegEnt $result 'REG_SZ' 'Admin'
でやりたいことはできるのではないでしょうか
850デフォルトの名無しさん
2023/08/07(月) 22:40:57.49ID:SSXgsNNw パイプラインと引数のどちらでも動くようにしたいなら
function Test-RegEnt {
Param (
[Parameter(ValueFromPipeline=$true)]
[string[]] $reg_query_result,
[string] $exp_type,
[string] $exp_value
)
Begin {
$cnt = 0
}
Process {
foreach ($item in $reg_query_result) {
$cnt++
$idx = $cnt - 1
if ($idx -eq 2) {
$item
break
}
}
}
}
あくまでシンプルめのサンプルなんでSelect-Object -Index 2と全く同じ挙動とか期待しないように。
※作りこむならパイプが繋がってるのかチェックして分岐の処理書いたりする。
なお、大量のデータをパイプラインに流すのはお勧めできない。
パイプラインは途中での打ち切りとか難しいし、
結局は普通にループ処理書いた方が速いし制御しやすいし分かりやすい事が多い気がする。
function Test-RegEnt {
Param (
[Parameter(ValueFromPipeline=$true)]
[string[]] $reg_query_result,
[string] $exp_type,
[string] $exp_value
)
Begin {
$cnt = 0
}
Process {
foreach ($item in $reg_query_result) {
$cnt++
$idx = $cnt - 1
if ($idx -eq 2) {
$item
break
}
}
}
}
あくまでシンプルめのサンプルなんでSelect-Object -Index 2と全く同じ挙動とか期待しないように。
※作りこむならパイプが繋がってるのかチェックして分岐の処理書いたりする。
なお、大量のデータをパイプラインに流すのはお勧めできない。
パイプラインは途中での打ち切りとか難しいし、
結局は普通にループ処理書いた方が速いし制御しやすいし分かりやすい事が多い気がする。
851デフォルトの名無しさん
2023/08/10(木) 07:01:52.35ID:3iQsMBl9 レス㌧クス、しかしながら大量データを引数で関数に渡すのはメモリ消費量、応答速度ともに悪くなることがわかったからやめるわサーセン;;;
どういうことかというと、bigfile.txtが(1行何か書いたいた後 Ctrl+A Ctrl+V Ctrl+V を22回反復とかで作った)
4194305行の巨大なテキストファイルだったとして、
function Test-FileContent([string[]] $lines) { $cnt = 0; foreach ($line in $lines) { $cnt++; Write-Host "cnt=" $cnt } }
$lines = Get-Content .\bigfile.txt # (1)
Test-FileContent($lines) # Get-Content完了後の結果を引数で渡す
とするとお、「cnt= 1」が表示される前に(1)で永劫の時間待たされるますが、
function Test-FileContent() { $cnt = 0; foreach ($line in $Input) { $cnt++; Write-Host "cnt=" $cnt } }
Get-Content .\bigfile.txt | Test-FileContent # Get-Contentが読んだら即パイプで渡す
とすると*即座に*「cnt= 1」以降のカウントが始まる
どういうことかというと、bigfile.txtが(1行何か書いたいた後 Ctrl+A Ctrl+V Ctrl+V を22回反復とかで作った)
4194305行の巨大なテキストファイルだったとして、
function Test-FileContent([string[]] $lines) { $cnt = 0; foreach ($line in $lines) { $cnt++; Write-Host "cnt=" $cnt } }
$lines = Get-Content .\bigfile.txt # (1)
Test-FileContent($lines) # Get-Content完了後の結果を引数で渡す
とするとお、「cnt= 1」が表示される前に(1)で永劫の時間待たされるますが、
function Test-FileContent() { $cnt = 0; foreach ($line in $Input) { $cnt++; Write-Host "cnt=" $cnt } }
Get-Content .\bigfile.txt | Test-FileContent # Get-Contentが読んだら即パイプで渡す
とすると*即座に*「cnt= 1」以降のカウントが始まる
852デフォルトの名無しさん
2023/08/10(木) 07:07:45.76ID:3iQsMBl9 つなみに
>$resultが数億オブジェクトだったりしたら後者の方がパイプラインがスムーズに流れてよさげ(>>846)
も検証すた、
>>846のレスポンスが即時のコードと似通っているが関数内でBEGIN { } PROCESS { }でなく$Inputをforeachループで回した場合、
すわなち
function Test-FileContent() { $cnt = 0; foreach ($line in $Input) { $cnt++; Write-Host "cnt=" $cnt } }
Get-Content .\bigfile.txt | Test-FileContent
とすると、、「cnt= 1」が表示される前に永劫の時間待たされる、、、
というわけで、パイプライン(の後段まで)に大量のデータを無駄に流すなというのは真やが
生じてしまった大量のデータはむしろパイプラインにしか流さないのが正義……
>$resultが数億オブジェクトだったりしたら後者の方がパイプラインがスムーズに流れてよさげ(>>846)
も検証すた、
>>846のレスポンスが即時のコードと似通っているが関数内でBEGIN { } PROCESS { }でなく$Inputをforeachループで回した場合、
すわなち
function Test-FileContent() { $cnt = 0; foreach ($line in $Input) { $cnt++; Write-Host "cnt=" $cnt } }
Get-Content .\bigfile.txt | Test-FileContent
とすると、、「cnt= 1」が表示される前に永劫の時間待たされる、、、
というわけで、パイプライン(の後段まで)に大量のデータを無駄に流すなというのは真やが
生じてしまった大量のデータはむしろパイプラインにしか流さないのが正義……
853デフォルトの名無しさん
2023/08/10(木) 07:10:57.08ID:3iQsMBl9 >>851の肝心のところに誤記が合ったスマンヌorz
*即座に*「cnt= 1」以降のカウントが始まるコードは正しくはこれ↓
function Test-FileContent() { BEGIN { $cnt = 0 } PROCESS { $cnt++; Write-Host "cnt=" $cnt } }
Get-Content .\bigfile.txt | Test-FileContent
*即座に*「cnt= 1」以降のカウントが始まるコードは正しくはこれ↓
function Test-FileContent() { BEGIN { $cnt = 0 } PROCESS { $cnt++; Write-Host "cnt=" $cnt } }
Get-Content .\bigfile.txt | Test-FileContent
854デフォルトの名無しさん
2023/08/11(金) 18:46:06.42ID:I7dwFhkG パイプの利点は個数を意識しなくて済むことだけど中断が一切できないしデメリットの方が多い
よっぽどの事情でもない限りコマンドレット自作しても遅いだけで良い事なんて1つもない
公式のselect -firstなんかはパイプの流儀に従ってないから似た事をしようとしてもあれ?って自らの間違いに気付くんだよ
powershellの深遠を覗くとそのいい加減さにガッカリするだけ
よっぽどの事情でもない限りコマンドレット自作しても遅いだけで良い事なんて1つもない
公式のselect -firstなんかはパイプの流儀に従ってないから似た事をしようとしてもあれ?って自らの間違いに気付くんだよ
powershellの深遠を覗くとそのいい加減さにガッカリするだけ
855デフォルトの名無しさん
2023/08/11(金) 19:17:06.70ID:SL3m3m5F 一番の利点はメモリの節約です
856デフォルトの名無しさん
2023/08/11(金) 19:30:40.13ID:I7dwFhkG メモリなんて遅さで相殺される
powershell + 大量データ = 遅くて不採用
powershell + 大量データ = 遅くて不採用
857デフォルトの名無しさん
2023/08/11(金) 19:42:42.98ID:bAYgNtyZ >>856
使いどころを履き違えるとそうなる
使いどころを履き違えるとそうなる
858デフォルトの名無しさん
2023/08/11(金) 19:56:15.04ID:I7dwFhkG859デフォルトの名無しさん
2023/08/11(金) 20:07:52.72ID:PQblbJTG 一番良いのは、Windowsを使わない
これにかぎる
こんなクソなOSを世界中から捨てるべき
これにかぎる
こんなクソなOSを世界中から捨てるべき
860デフォルトの名無しさん
2023/08/11(金) 20:09:59.59ID:SL3m3m5F Windowsは汎用事務処理端末としては競合なしだ
861デフォルトの名無しさん
2023/08/11(金) 20:27:11.32ID:SL3m3m5F メモリ効率とスループットは交換できるようなものではない
手軽さが不要ならPythonでも使っておけばいい
手軽さが不要ならPythonでも使っておけばいい
862デフォルトの名無しさん
2023/08/11(金) 21:36:23.24ID:55Ub7uv5 いまだにPowerShellがWindows専用だと思ってるアホを真っ先に捨てるべき
863デフォルトの名無しさん
2023/08/11(金) 23:05:41.72ID:FP8PIUGD で>>842の質問に戻るのですだが、動かなかったのは単純だが根本的な誤解してたのが原因……
C/C++と同じだろうというつもりで
>$result2 = Test-RegEnt($result, 'REG_SZ', 'Admin')
という呼び出し方に書いたが、これだと「Test-RegEntの第一引数$reg_query_resultに「配列」@($result, 'REG_SZ', 'Admin')を渡す」という意味になる
ので、関数内で
>$reg_query_result | Select-Object -Index 2
とやったら当然そのindex=2の要素 'Admin' が関数の出力となってた、というしくみ
C/C++と同じだろうというつもりで
>$result2 = Test-RegEnt($result, 'REG_SZ', 'Admin')
という呼び出し方に書いたが、これだと「Test-RegEntの第一引数$reg_query_resultに「配列」@($result, 'REG_SZ', 'Admin')を渡す」という意味になる
ので、関数内で
>$reg_query_result | Select-Object -Index 2
とやったら当然そのindex=2の要素 'Admin' が関数の出力となってた、というしくみ
864デフォルトの名無しさん
2023/08/11(金) 23:07:08.58ID:FP8PIUGD 正しくは>>845式に
>Test-RegEnt -reg_query_result $result -exp_type 'REG_SZ' -exp_value 'Admin'
またはその省略表記としては
>Test-RegEnt $result 'REG_SZ' 'Admin' # カンマ区切りではなくてスペース区切り
にせねばならなかった
ことがわかったorz
止むにやまれない事情で昨日一日で1500行書いてデバッグしたらその過程でわかった|||。n_
>Test-RegEnt -reg_query_result $result -exp_type 'REG_SZ' -exp_value 'Admin'
またはその省略表記としては
>Test-RegEnt $result 'REG_SZ' 'Admin' # カンマ区切りではなくてスペース区切り
にせねばならなかった
ことがわかったorz
止むにやまれない事情で昨日一日で1500行書いてデバッグしたらその過程でわかった|||。n_
865デフォルトの名無しさん
2023/08/11(金) 23:11:54.59ID:FP8PIUGD あと他のスクリプトをincludeするときの欠き方が気づかないとわかりにくい……
util.ps1 を同じフォルダにある someapp.ps1 からインクルードする場合は
'.\util.ps1'
ではダメで、
.'.\util.ps1'
にしないとutil.ps1で定義した何物も呼び出せないorz
ここで先頭の「.」はutil.ps1のスクリプトスコープを呼び出し元のスコープと同じにするという意味やがちょう紛らわしい……
util.ps1 を同じフォルダにある someapp.ps1 からインクルードする場合は
'.\util.ps1'
ではダメで、
.'.\util.ps1'
にしないとutil.ps1で定義した何物も呼び出せないorz
ここで先頭の「.」はutil.ps1のスクリプトスコープを呼び出し元のスコープと同じにするという意味やがちょう紛らわしい……
866デフォルトの名無しさん
2023/08/11(金) 23:20:54.21ID:FP8PIUGD あと関数内においては代入文、[void]にキャストした文、if文とかの条件式 を除く全ての文が出力を持つ、
という仕様のせいで危うく恐ろしいバグを作り込むところやった;;;
function Show-ErrDlg($msg) {
$wsobj = new-object -comobject wscript.shell
$wsobj.popup($msg, 0, 'エラー', 0 -bor 16)
}
function Test-Equipment1() {
$result = (何かのテスト)
if (!$result) { Show-ErrDlg('何かのテスト failed.') }
return $result
}
でとするとテストが失敗したときも
という仕様のせいで危うく恐ろしいバグを作り込むところやった;;;
function Show-ErrDlg($msg) {
$wsobj = new-object -comobject wscript.shell
$wsobj.popup($msg, 0, 'エラー', 0 -bor 16)
}
function Test-Equipment1() {
$result = (何かのテスト)
if (!$result) { Show-ErrDlg('何かのテスト failed.') }
return $result
}
でとするとテストが失敗したときも
867デフォルトの名無しさん
2023/08/11(金) 23:25:27.54ID:FP8PIUGD if (!(Test-Equipment1) { exit 1 }
(テスト正常終了の表示処理)
でテスト正常終了の表示が出るorz
これは何でかというと$wsobj.popup($msg, 0, 'エラー', 0 -bor 16) 」がクリックされたボタンの番号を出力する結果、$resultがまたしても配列
@( (「なんかのテスト」の結果), ($wsobj.popup()でクリックされたボタンの番号) )
となりこれが Test-Equipment1() の戻り値となり、それをif文で評価したら最後の要素
(テスト正常終了の表示処理)
でテスト正常終了の表示が出るorz
これは何でかというと$wsobj.popup($msg, 0, 'エラー', 0 -bor 16) 」がクリックされたボタンの番号を出力する結果、$resultがまたしても配列
@( (「なんかのテスト」の結果), ($wsobj.popup()でクリックされたボタンの番号) )
となりこれが Test-Equipment1() の戻り値となり、それをif文で評価したら最後の要素
868デフォルトの名無しさん
2023/08/11(金) 23:27:54.43ID:FP8PIUGD (OKボタンのコード6)と評価されるため、!6なので常に偽になるというしくみ、、、、
こう修正すたら直った
function Show-ErrDlg($msg) {
$wsobj = new-object -comobject wscript.shell
[void] $wsobj.popup($msg, 0, 'エラー', 0 -bor 16) # [void]付ける
}
わかるかこんなもん……
および原理的にlint的な機械的チェックもできない……
こう修正すたら直った
function Show-ErrDlg($msg) {
$wsobj = new-object -comobject wscript.shell
[void] $wsobj.popup($msg, 0, 'エラー', 0 -bor 16) # [void]付ける
}
わかるかこんなもん……
および原理的にlint的な機械的チェックもできない……
869デフォルトの名無しさん
2023/08/11(金) 23:35:32.35ID:FP8PIUGD これはデフォルトで出力無しとして、
なんかの接頭辞を付けた文だけが結果がパイプに出力されるるようにする仕様であるべきだった希ガス
(出力が無いというミスはすぐ気づける
てかWrite-Outputを省略可能としているのがそもその誤り……
※ 個人の感想です
いっぱい連投したがTeamsのつもりでShift+Enterしたら投稿されてしまったせいやスマンヌorz
いじょ
なんかの接頭辞を付けた文だけが結果がパイプに出力されるるようにする仕様であるべきだった希ガス
(出力が無いというミスはすぐ気づける
てかWrite-Outputを省略可能としているのがそもその誤り……
※ 個人の感想です
いっぱい連投したがTeamsのつもりでShift+Enterしたら投稿されてしまったせいやスマンヌorz
いじょ
2023/08/12(土) 00:58:59.52ID:H+b+A9qi
============================
function Hoge([int]$num) {
echo "Debug"
return ($num + 1)
}
$a = Hoge(1)
echo $a
============================
こうすると $a には Debug と 2 の2つが入る
============================
function Hoge([int]$num) {
.{
echo "Debug"
} | Out-Null
return ($num + 1)
}
$a = Hoge(1)
echo $a
============================
こうすると $a には 2 の1つしか入らない
不要なところは 「 .{ ~~~ } | Out-Null 」で表示を抑制したら楽になるかも
function Hoge([int]$num) {
echo "Debug"
return ($num + 1)
}
$a = Hoge(1)
echo $a
============================
こうすると $a には Debug と 2 の2つが入る
============================
function Hoge([int]$num) {
.{
echo "Debug"
} | Out-Null
return ($num + 1)
}
$a = Hoge(1)
echo $a
============================
こうすると $a には 2 の1つしか入らない
不要なところは 「 .{ ~~~ } | Out-Null 」で表示を抑制したら楽になるかも
871デフォルトの名無しさん
2023/08/12(土) 01:19:17.04ID:DbL0Mu2X >>842に言える事はパイプで何番目とかいう考えは捨てた方がいい
パイプは途中で処理を打ち切る機能が欠落してるから何番目だけに用があろうが全ストリームを読み終わるまで終わらない
パイプは途中で処理を打ち切る機能が欠落してるから何番目だけに用があろうが全ストリームを読み終わるまで終わらない
872デフォルトの名無しさん
2023/08/12(土) 08:19:31.33ID:IRt4i0hm ほぼ誤差だが |Out-Null より $null= で処理した方がパフォーマンスがよく、可読性も高い
873デフォルトの名無しさん
2023/08/12(土) 08:23:13.14ID:ueiwXwrP PowerShell スクリプトのパフォーマンスに関する考慮事項
https://learn.microsoft.com/ja-jp/powershell/scripting/dev-cross-plat/performance/script-authoring-considerations
https://learn.microsoft.com/ja-jp/powershell/scripting/dev-cross-plat/performance/script-authoring-considerations
874デフォルトの名無しさん
2023/08/12(土) 22:00:12.59ID:pISu+im0 >>871
わかりた
パイプラインの打ち切りは、実現方法はあるが円満な解決方法はなさげ(どれもこれもなんかしらのミソがつく
パイプで$n番目、というだけならSelect-Objectしたらv3以降ならn+1番目以降を打ち切ってくれる
$n = 2
Get-Content .\bigfile.txt | Select-Object -Index $n | Foreach-Object { Write-Output "cnt=${n}: $_" } # bigfile.txtが1億行あっても瞬時に戻って来る
が、これは「Select-Object -Index ~」部分を関数化したら元の木阿弥になる
function Select-Nth($n) { $Input | Select-Object -Index $n | Foreach-Object { Write-Output "cnt=${n}: $_" } }
Get-Content .\bigfile.txt | Select-Nth(2) # bigfile.txtを1億行全部読み込んでからおもむろに出力する
構文的に$_を使った関数やフィルタとしては書けない
データを見て条件が成立したら打ち切り、というのになるともっとマンドクセ……
https://winscript.jp/powershell/308
わかりた
パイプラインの打ち切りは、実現方法はあるが円満な解決方法はなさげ(どれもこれもなんかしらのミソがつく
パイプで$n番目、というだけならSelect-Objectしたらv3以降ならn+1番目以降を打ち切ってくれる
$n = 2
Get-Content .\bigfile.txt | Select-Object -Index $n | Foreach-Object { Write-Output "cnt=${n}: $_" } # bigfile.txtが1億行あっても瞬時に戻って来る
が、これは「Select-Object -Index ~」部分を関数化したら元の木阿弥になる
function Select-Nth($n) { $Input | Select-Object -Index $n | Foreach-Object { Write-Output "cnt=${n}: $_" } }
Get-Content .\bigfile.txt | Select-Nth(2) # bigfile.txtを1億行全部読み込んでからおもむろに出力する
構文的に$_を使った関数やフィルタとしては書けない
データを見て条件が成立したら打ち切り、というのになるともっとマンドクセ……
https://winscript.jp/powershell/308
875デフォルトの名無しさん
2023/08/12(土) 22:23:22.94ID:pISu+im0876デフォルトの名無しさん
2023/08/12(土) 22:55:15.75ID:zGmVrirz 関数の出力が意図せず(うっかり)複数個所から行われ分かりにくい点は
バッチとかシェルスクリプトの挙動に合わせすぎた為だろうね。
例えばping.exeを対象2か所に実行するバッチ(.bat)をパイプで繋げたら、
バッチ1つの実行で、ping2回の20行程度がパイプに流れる。
PowerShellスクリプトや関数もこれと同じだと考えればそんな違和感ないはずなんだけど、
元々他の言語なんかで「関数の戻り値は1つ(明示的な1つor関数末尾の1つ)」とか
「明示的に変数格納や出力などしなければ、メソッドや関数の戻り値は捨てられる」
って事に慣れてるし、PowerShellも同じ文法だから同じ挙動を期待しちゃう。
上でも出てるけど、標準ではパイプに流さない仕様とした方が
敬遠される点が減ったと思う。
バッチとかシェルスクリプトの挙動に合わせすぎた為だろうね。
例えばping.exeを対象2か所に実行するバッチ(.bat)をパイプで繋げたら、
バッチ1つの実行で、ping2回の20行程度がパイプに流れる。
PowerShellスクリプトや関数もこれと同じだと考えればそんな違和感ないはずなんだけど、
元々他の言語なんかで「関数の戻り値は1つ(明示的な1つor関数末尾の1つ)」とか
「明示的に変数格納や出力などしなければ、メソッドや関数の戻り値は捨てられる」
って事に慣れてるし、PowerShellも同じ文法だから同じ挙動を期待しちゃう。
上でも出てるけど、標準ではパイプに流さない仕様とした方が
敬遠される点が減ったと思う。
877デフォルトの名無しさん
2023/08/14(月) 13:31:51.80ID:4NX3l0Vm パイプはスレ違いのバッチスレでドヤ顔ワンライナーするぐらいしか能が無いと言っても過言
878デフォルトの名無しさん
2023/08/14(月) 21:15:06.40ID:5teSXOgl 1GiB程度のファイルを処理するときにはパイプは重宝するよ
879デフォルトの名無しさん
2023/08/15(火) 05:53:15.07ID:WIzBRZyi バッチファイルのパイプはメカニズムが違う
あれは実質一時ファイルを作って次段に渡しているだけなので遅い、と言おうと思ったが
"*<CR><LF>" を2^23個書き並べたbigfile.txtに対してコマンドプロンプトで
type bigfile.txt | find /C "*"
とやったら「瞬時に」
4194304
と返って来るのに、PowerShellで
Get-Content .\bigfile.txt | find.exe /C "*"
とやったら永劫の時間待たされた後
FIND: パラメーターの書式が違います
と言われた後Ctrl+Cにも応答しなくなた……どうなってるのこれ……
あれは実質一時ファイルを作って次段に渡しているだけなので遅い、と言おうと思ったが
"*<CR><LF>" を2^23個書き並べたbigfile.txtに対してコマンドプロンプトで
type bigfile.txt | find /C "*"
とやったら「瞬時に」
4194304
と返って来るのに、PowerShellで
Get-Content .\bigfile.txt | find.exe /C "*"
とやったら永劫の時間待たされた後
FIND: パラメーターの書式が違います
と言われた後Ctrl+Cにも応答しなくなた……どうなってるのこれ……
880デフォルトの名無しさん
2023/08/15(火) 14:11:57.72ID:e55ZiwZ3 そりゃパイプで外部コマンドに送ったら1行ずつfind.exe実行して終了するだろうから
おかしなことにもなるだろうよ
おかしなことにもなるだろうよ
881デフォルトの名無しさん
2023/08/15(火) 15:18:16.71ID:qi/dYdNU > あれは実質一時ファイルを作って次段に渡しているだけなので遅い
それはシングルタスクだったDOS時代の話だろ
NTのcmd.exeには当てはまらない
それはシングルタスクだったDOS時代の話だろ
NTのcmd.exeには当てはまらない
882デフォルトの名無しさん
2023/08/15(火) 15:39:41.88ID:LS4gbGEC cmd.exeはパイプやfor /Fのコマンドとかワーカースレッドを生成して
別タスク(子環境)としてデータの送り手や受け手を作ってるかな
別タスク(子環境)としてデータの送り手や受け手を作ってるかな
883デフォルトの名無しさん
2023/08/24(木) 22:36:16.57ID:W+JHQ2GG Get-WinEventでSystem.evtxだかのファイルを処理させるとコマンドレットが終了しても一定時間プロセスがファイル掴みっぱなしになるのどうにかしてくれ
わざわざ別プロセスでGet-WinEvent用のpowershell起動させる間抜けなコードになったぞ
わざわざ別プロセスでGet-WinEvent用のpowershell起動させる間抜けなコードになったぞ
884デフォルトの名無しさん
2023/08/25(金) 11:28:27.28ID:WAOpDjEy 処理速度都合なのかな〜って思ってるけど閉じる手段は提供して欲しい。
自分は.NETのクラス使って処理書いちゃった。
自分は.NETのクラス使って処理書いちゃった。
885デフォルトの名無しさん
2023/09/04(月) 19:42:45.42ID:hSX1x29k エクスプローラでファイル選択してコピーして
(Get-ClipBoard -Format FileDropList).GetType().ToString()
→ System.Collections.Generic.List`1[System.Management.Automation.PSObject]
うん。
Get-ClipBoard -Format FileDropList | %{$_.GetType().ToString()}
→ System.Collections.Generic.List`1[System.Management.Automation.PSObject]
うn?
foreach( $info in Get-ClipBoard -Format FileDropList ){ $info.GetType().ToString() }
→ System.Collections.Generic.List`1[System.Management.Automation.PSObject]
えぇ…
Get-ClipBoard -Format FileDropList | %{$_} | %{$_.GetType().ToString()}
→ System.IO.FileInfo
…
[System.IO.FileInfo[]](Get-ClipBoard -Format FileDropList) | %{$_.GetType().ToString()}
→ System.IO.FileInfo
うーん…
$list = Get-ClipBoard -Format FileDropList
$list | %{$_.GetType().ToString()}
→ System.IO.FileInfo
まぁ…
なんか不必要に使いづらい気がするのは自分だけかな。
(Get-ClipBoard -Format FileDropList).GetType().ToString()
→ System.Collections.Generic.List`1[System.Management.Automation.PSObject]
うん。
Get-ClipBoard -Format FileDropList | %{$_.GetType().ToString()}
→ System.Collections.Generic.List`1[System.Management.Automation.PSObject]
うn?
foreach( $info in Get-ClipBoard -Format FileDropList ){ $info.GetType().ToString() }
→ System.Collections.Generic.List`1[System.Management.Automation.PSObject]
えぇ…
Get-ClipBoard -Format FileDropList | %{$_} | %{$_.GetType().ToString()}
→ System.IO.FileInfo
…
[System.IO.FileInfo[]](Get-ClipBoard -Format FileDropList) | %{$_.GetType().ToString()}
→ System.IO.FileInfo
うーん…
$list = Get-ClipBoard -Format FileDropList
$list | %{$_.GetType().ToString()}
→ System.IO.FileInfo
まぁ…
なんか不必要に使いづらい気がするのは自分だけかな。
886デフォルトの名無しさん
2023/09/06(水) 19:07:34.39ID:1kNnDW8h $(Get-ClipBoard -Format FileDropList) | %{$_.GetType().ToString()}
→ System.IO.FileInfo
バッドノウハウの領域だなー
→ System.IO.FileInfo
バッドノウハウの領域だなー
887デフォルトの名無しさん
2023/09/12(火) 10:37:58.96ID:EIIMdpOe 隠し属性が設定されたファイルが排他されてるとかで読めない状況のときに
-ForceついたGet-Contentで読もうとすると隠し属性解除されるのは理由あるんだろうか
-ForceついたGet-Contentで読もうとすると隠し属性解除されるのは理由あるんだろうか
888デフォルトの名無しさん
2023/09/12(火) 13:50:19.66ID:KE5ufRbn 質問で申し訳ない
AccessでエクスポートしたxlsxをPowershellでComObjectを作成してOpenしたいんだけど
破損している云々で発行元を信用しますか?ってダイアログのせいでOpen出来ない
https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbooks.open
ここによると15個目の引数で1を指定(xlRepairFile)すれば良さそうなんだけど
Powershellで実行するとOpenプロパティが無いよって怒られる。
実際のコードはこう
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$fileName = (Get-ChildItem "test.xlsx").FullName
$book = $excel.Workbooks.Open($fileName, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, 1)
AccessでエクスポートしたxlsxをPowershellでComObjectを作成してOpenしたいんだけど
破損している云々で発行元を信用しますか?ってダイアログのせいでOpen出来ない
https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbooks.open
ここによると15個目の引数で1を指定(xlRepairFile)すれば良さそうなんだけど
Powershellで実行するとOpenプロパティが無いよって怒られる。
実際のコードはこう
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$fileName = (Get-ChildItem "test.xlsx").FullName
$book = $excel.Workbooks.Open($fileName, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, 1)
889デフォルトの名無しさん
2023/09/12(火) 16:40:21.35ID:OgaNelN6 CSVでエクスポートしなよ
890デフォルトの名無しさん
2023/09/12(火) 17:47:39.83ID:EIIMdpOe とりあえずこうすると回避できた。
using namespace Microsoft.Office.Interop.Excel
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$fileName = (Get-ChildItem "test.xlsx").FullName
$param = @([Type]::Missing) * 15
$param[0] = $fileName
$param[14] = [XlCorruptLoad]::xlRepairFile
$workbooks = $excel.Workbooks
$book = $workbooks.Open.Invoke($param)
using namespace Microsoft.Office.Interop.Excel
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$fileName = (Get-ChildItem "test.xlsx").FullName
$param = @([Type]::Missing) * 15
$param[0] = $fileName
$param[14] = [XlCorruptLoad]::xlRepairFile
$workbooks = $excel.Workbooks
$book = $workbooks.Open.Invoke($param)
891デフォルトの名無しさん
2023/09/12(火) 18:53:31.49ID:uneKtCE6 >>890
あざす!めっちゃ参考になるます
あざす!めっちゃ参考になるます
2023/09/13(水) 02:20:54.13ID:E0UN4wqY
$param = @([Type]::Missing) * 15
は
$param = @([Type]::Missing) * 0xFF
のほうが人にやさしい気がする
は
$param = @([Type]::Missing) * 0xFF
のほうが人にやさしい気がする
893デフォルトの名無しさん
2023/09/13(水) 07:53:07.83ID:mwnND43t は?
894デフォルトの名無しさん
2023/09/13(水) 09:33:15.43ID:ozJmt5GG ひ?
895デフォルトの名無しさん
2023/09/13(水) 23:41:10.61ID:tgD8Mqqk >>892の後者は配列に255を掛けてるように見えるのだが
人にやさしい部分てどこ?
人にやさしい部分てどこ?
896デフォルトの名無しさん
2023/09/14(木) 03:25:22.93ID:37z8xtDS マスクしてるのかと思ったわ
ちゃんとソース見てなかった
すまんこ
ちゃんとソース見てなかった
すまんこ
897デフォルトの名無しさん
2023/09/16(土) 23:53:08.17ID:DkE7QlfD PowershellのGUI使って簡単な時報を作りたい。
System.Windows.Forms.Timerを使って作ったんだが今何時判定で$Aの数字が毎回リセットされるんでIntervalの回数だけ別ウィンドウが開きまくる。
使い方間違ってるか?教えてくれさい。
$timerTestTick {
【適当に現在時表示】
if(【指定した時間になったら】-and【$Aがtrueなら】){
start-prosess 【音楽ファイルを別ウィンドウで再生して処理継続】
$A = false
}
}
$timerTest.Add_Tick($timerTestTick)
$timerTest.Interval = 200
$timerTest.Enabled = $TRUE
$timerTest.Start()
【適当にフォーム作って表示】
System.Windows.Forms.Timerを使って作ったんだが今何時判定で$Aの数字が毎回リセットされるんでIntervalの回数だけ別ウィンドウが開きまくる。
使い方間違ってるか?教えてくれさい。
$timerTestTick {
【適当に現在時表示】
if(【指定した時間になったら】-and【$Aがtrueなら】){
start-prosess 【音楽ファイルを別ウィンドウで再生して処理継続】
$A = false
}
}
$timerTest.Add_Tick($timerTestTick)
$timerTest.Interval = 200
$timerTest.Enabled = $TRUE
$timerTest.Start()
【適当にフォーム作って表示】
898デフォルトの名無しさん
2023/09/17(日) 01:59:03.31ID:ENG0J7cr >$Aの数字が毎回リセットされるんで
それ$Aを更新しようとする度に毎回スクリプトブロックで別の$Aが生成されるからやね
([ref]$A).Value = $false
と書けば元の$Aを探しにいくから更新できると思う
Powershellのはまりポイントの1つやね
それ$Aを更新しようとする度に毎回スクリプトブロックで別の$Aが生成されるからやね
([ref]$A).Value = $false
と書けば元の$Aを探しにいくから更新できると思う
Powershellのはまりポイントの1つやね
899デフォルトの名無しさん
2023/09/17(日) 03:18:20.18ID:LjIc1dUH powershellでGUIって、c#使えない宗教的理由でもあるの?
900デフォルトの名無しさん
2023/09/17(日) 05:45:06.34ID:5It5oWIy901デフォルトの名無しさん
2023/09/17(日) 09:35:27.80ID:LYUgOkBe PowerShellでGUI作れるんか!
知らんかった これは興味ある
知らんかった これは興味ある
902デフォルトの名無しさん
2023/09/17(日) 09:48:58.34ID:oJeCWV6s >>901
システム管理のサンプル スクリプト
https://learn.microsoft.com/ja-jp/powershell/scripting/samples/sample-scripts-for-administration
公式ドキュメントならここの「UI 要素の作成」って所を見てみるといい
システム管理のサンプル スクリプト
https://learn.microsoft.com/ja-jp/powershell/scripting/samples/sample-scripts-for-administration
公式ドキュメントならここの「UI 要素の作成」って所を見てみるといい
903デフォルトの名無しさん
2023/09/17(日) 13:31:47.95ID:LJFSWd1b GUI作れるとかマジか
ワザワザHTMLソース内部に仕込んでWEBベースでやりとりしてた俺は一体・・・
ワザワザHTMLソース内部に仕込んでWEBベースでやりとりしてた俺は一体・・・
904デフォルトの名無しさん
2023/09/17(日) 14:04:19.59ID:ENG0J7cr 一応.NET言語の1つではあるからGUIは普通に作れるが
俺はC#コード埋め込んでFuncやAction経由で必要時にpowershellと連携する感じの使い方だな
Powershellのコードだけで作るの自体が割と面倒なのや型チェックが働かない辺りとかかあんまメリットを感じない
俺はC#コード埋め込んでFuncやAction経由で必要時にpowershellと連携する感じの使い方だな
Powershellのコードだけで作るの自体が割と面倒なのや型チェックが働かない辺りとかかあんまメリットを感じない
905デフォルトの名無しさん
2023/09/26(火) 21:32:36.63ID:cR6Dxv5m htaの代わりとしてforms呼び出して組んでたけどcssが便利すぎて最近は使ってないな...
wpfはどうなんだろうか...
wpfはどうなんだろうか...
906デフォルトの名無しさん
2023/09/29(金) 04:49:25.46ID:wxGTflxT まじでかいな
907デフォルトの名無しさん
2023/10/06(金) 21:47:54.00ID:ESX4xHYZ 日付を元に指定範囲内の一意の数字を出すってできる?
200ぐらいある今日の一言的なものを毎日ランダムで出したいんだがアプリケーションを再起動すると変数リセットされて別の単語出てしまうのを抑止したい。
200ぐらいある今日の一言的なものを毎日ランダムで出したいんだがアプリケーションを再起動すると変数リセットされて別の単語出てしまうのを抑止したい。
908デフォルトの名無しさん
2023/10/06(金) 22:00:29.66ID:7j+1PDTD その日の初回の結果をファイルに出力して
2回目以降はそのファイルを読み込みに行けば良いのでは
2回目以降はそのファイルを読み込みに行けば良いのでは
909デフォルトの名無しさん
2023/10/06(金) 22:04:29.98ID:ESX4xHYZ910デフォルトの名無しさん
2023/10/06(金) 22:35:50.48ID:ESX4xHYZ >>908
できそうだからファイル出力の方向でやってみるありがとう。
できそうだからファイル出力の方向でやってみるありがとう。
911デフォルトの名無しさん
2023/10/06(金) 22:36:00.82ID:ESX4xHYZ >>908
できそうだからファイル出力の方向でやってみるありがとう。
できそうだからファイル出力の方向でやってみるありがとう。
912デフォルトの名無しさん
2023/10/06(金) 23:26:20.49ID:WmRjQTiM その条件なら日付をシード値とみなせるんだから
別の単語が出てくる方がおかしいんじゃないのか
基礎的な論理思考力が欠けているね
別の単語が出てくる方がおかしいんじゃないのか
基礎的な論理思考力が欠けているね
913デフォルトの名無しさん
2023/10/06(金) 23:44:27.78ID:7j+1PDTD あ、-SetSeedって完全固定の疑似乱数なのか。
再起動したら変わると思ってた。
再起動したら変わると思ってた。
914デフォルトの名無しさん
2023/10/07(土) 04:01:41.30ID:lBZtWf6D Get-Random -SetSeed $(Get-Date -Format "yyyymmdd") -Maximum 200
915デフォルトの名無しさん
2023/10/07(土) 06:18:44.31ID:xTEoYklV916デフォルトの名無しさん
2023/10/07(土) 15:47:42.69ID:lBZtWf6D 912 と 913 をワンライナーで視覚化しただけやぞ
917デフォルトの名無しさん
2023/10/08(日) 20:27:09.33ID:bO8eXdHU >>905
wpfも普通にいけるけど、vsのデザイナーがないと厳しいから、じゃあc#でいいかとなりがち
htaの代替としたらwpfかwinformで枠だけ作ってwebview2埋め込むのがおすすめ
qiitaでも記事があったはず
wpfも普通にいけるけど、vsのデザイナーがないと厳しいから、じゃあc#でいいかとなりがち
htaの代替としたらwpfかwinformで枠だけ作ってwebview2埋め込むのがおすすめ
qiitaでも記事があったはず
918デフォルトの名無しさん
2023/10/08(日) 22:07:55.52ID:SlOLtELZ webview2ランタイム自体の埋め込み手段がなあ
919デフォルトの名無しさん
2023/10/20(金) 16:26:02.69ID:3co0KDj6 こんにちは
フォルダの配下のすべてのテキストファイルを結合した文字列を出力したいです
フォルダ直下のファイルだけなら
Get-Content *.txt
でできました
該当するファイルの一覧は
Get-ChildItem -Recurse -Filter "*.txt" -Name
でできましたが
Get-ChildItem -Recurse -Filter "*.txt" -Name | Get-Content
としてもエラーになります
フォルダの配下のすべてのテキストファイルを結合した文字列を出力したいです
フォルダ直下のファイルだけなら
Get-Content *.txt
でできました
該当するファイルの一覧は
Get-ChildItem -Recurse -Filter "*.txt" -Name
でできましたが
Get-ChildItem -Recurse -Filter "*.txt" -Name | Get-Content
としてもエラーになります
920デフォルトの名無しさん
2023/10/20(金) 19:30:02.44ID:qU4/oN+w 「 -Name」が不要。
921デフォルトの名無しさん
2023/10/20(金) 20:49:00.72ID:3co0KDj6 できました!
922デフォルトの名無しさん
2023/10/31(火) 16:01:28.45ID:Vjqv9VpS PSNativeCommandPreserveBytePipe が楽しみすぎる
923デフォルトの名無しさん
2023/10/31(火) 16:01:33.19ID:Vjqv9VpS PSNativeCommandPreserveBytePipe が楽しみすぎる
924デフォルトの名無しさん
2023/10/31(火) 16:59:01.62ID:sGPoKgPO この言語って3次元以上の配列って出来ないって認識であってる?
二次元は
$array[0,0]で良いんだよね?
三次元というかジャグ配列?はとりあえず使えるから
$array[0][0,0]
でやってるんだけど中の2,3次元目とか中の要素数カウントが出来なくて結構困ってる
二次元は
$array[0,0]で良いんだよね?
三次元というかジャグ配列?はとりあえず使えるから
$array[0][0,0]
でやってるんだけど中の2,3次元目とか中の要素数カウントが出来なくて結構困ってる
925デフォルトの名無しさん
2023/10/31(火) 18:05:21.98ID:BgNWqm6B ジャグ配列で良いんだったら$array[0][0][0]…といくらでも入れ子にすれば良かろうに
926デフォルトの名無しさん
2023/10/31(火) 19:44:43.60ID:CQ6pveQE 多次元配列はこうじゃない?
$array = [Object[,,]]::new(4,5,6) # 3次元、4×5×6
$array[0,0,0] = "(0, 0, 0)"
$array[0,0,1] = "(0, 0, 1)"
# 参照は「$arraya[0,0,0]」だと配列スライスと間違えそうだから「$array.Get(0,0,0)」の方が安全かも。
$array = [Object[,,]]::new(4,5,6) # 3次元、4×5×6
$array[0,0,0] = "(0, 0, 0)"
$array[0,0,1] = "(0, 0, 1)"
# 参照は「$arraya[0,0,0]」だと配列スライスと間違えそうだから「$array.Get(0,0,0)」の方が安全かも。
927デフォルトの名無しさん
2023/10/31(火) 19:47:15.76ID:CQ6pveQE 要素数は
$array.GetLength(0) # 4
$array.GetLength(1) # 5
$array.GetLength(2) # 6
$array.GetLength(0) # 4
$array.GetLength(1) # 5
$array.GetLength(2) # 6
928デフォルトの名無しさん
2023/10/31(火) 19:54:44.51ID:sGPoKgPO あぁそっか普通に出来るのか初期化の仕方が悪かったみたい
普通の初期化でも3次元出来るんだね
調べたらジャグ配列のが処理早いそうなので結局そっち採用すると思う
レスしてくれた方有難う
普通の初期化でも3次元出来るんだね
調べたらジャグ配列のが処理早いそうなので結局そっち採用すると思う
レスしてくれた方有難う
929デフォルトの名無しさん
2023/11/10(金) 20:49:31.69ID:qelae/OI 7.4のGAはいつごろになりそう?
930デフォルトの名無しさん
2023/11/11(土) 09:09:55.24ID:JcjqK/bB PowerShell Community Call - October 19 2023
https://github.com/PowerShell/PowerShell-RFC/blob/master/CommunityCall/notes/20231019_Notes.md
Ideally a GA Nov, may have 7.5 preview in December, not guaranteed
https://github.com/PowerShell/PowerShell-RFC/blob/master/CommunityCall/notes/20231019_Notes.md
Ideally a GA Nov, may have 7.5 preview in December, not guaranteed
931デフォルトの名無しさん
2023/11/11(土) 09:43:40.20ID:FLa2E6qS Ideally に進んで今月中の GA に期待
ところで [console]::OutputEncoding って shift_jis と utf-8 のどっちにしてます?
ところで [console]::OutputEncoding って shift_jis と utf-8 のどっちにしてます?
932デフォルトの名無しさん
2023/11/11(土) 16:23:53.35ID:CPZqzXvF 7入れて何かいい事あんの?
それ、OS標準の5.1でできますよね?
もしかして、デベロッパーのオナニーに付き合わされていませんか?
それ、OS標準の5.1でできますよね?
もしかして、デベロッパーのオナニーに付き合わされていませんか?
933デフォルトの名無しさん
2023/11/12(日) 04:03:18.80ID:jdIWedpQ powershellでデフォルトの環境に手を加えないとできないことは他のPG言語に任せるべきだと思う
934デフォルトの名無しさん
2023/11/12(日) 12:28:59.88ID:mJhoQ9VQ Windows PowerShell 5.1 と PowerShell 7.x の相違点
ttps://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.3
入れる入れないは個人の自由
5と7は共存できるし別にデメリットないから7入れてるよ
ttps://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.3
入れる入れないは個人の自由
5と7は共存できるし別にデメリットないから7入れてるよ
935デフォルトの名無しさん
2023/11/12(日) 16:32:02.61ID:K6g/AyoW スクリプト言語としてならどっちでもいいけど
インタラクティブなコマンドラインシェルとしてなら7が圧倒的に便利
sjis出力コマンドとutf-8出力コマンドの混在環境なら7.4でさらに便利
インタラクティブなコマンドラインシェルとしてなら7が圧倒的に便利
sjis出力コマンドとutf-8出力コマンドの混在環境なら7.4でさらに便利
936デフォルトの名無しさん
2023/11/12(日) 21:46:23.90ID:q3mytz3V >>935
シェルとしてどんな点が改善されているのですか?
シェルとしてどんな点が改善されているのですか?
937デフォルトの名無しさん
2023/11/15(水) 00:20:29.90ID:oV9ZzUgm 半角英数のファイルにUTF-16を追加する事故が起きないのは助かる
938デフォルトの名無しさん
2023/11/15(水) 23:34:51.35ID:Ik7Afwvr 最近始めたんですが
939デフォルトの名無しさん
2023/11/15(水) 23:40:29.80ID:Ik7Afwvr aに1代入したいんですがどうすればいいですか?
function hoge(){
[int]$a;
function moge(){
$this.a = 1;
}
moge;
return $a;
}
hoge #
function hoge(){
[int]$a;
function moge(){
$this.a = 1;
}
moge;
return $a;
}
hoge #
940デフォルトの名無しさん
2023/11/16(木) 09:22:30.17ID:HndTNurg ・classのメソッドとして書く(何か知らんがレキシカルスコープになる)
・javascriptを使う
・javascriptを使う
941デフォルトの名無しさん
2023/11/16(木) 10:09:03.23ID:vDdnsPkv942デフォルトの名無しさん
2023/11/16(木) 12:06:19.94ID:HndTNurg ref[]はpowerahellにおいてCポインタ程度には重要知識なのに
界隈で然程語られる事もなく知られていない
知られてはいけないとでも言うのだろうか…
界隈で然程語られる事もなく知られていない
知られてはいけないとでも言うのだろうか…
943デフォルトの名無しさん
2023/11/16(木) 13:08:37.33ID:evZ76lXK 何言ってんだか
944デフォルトの名無しさん
2023/11/16(木) 13:38:46.26ID:WvJyjQhC >>940
とあるオブジェクトの初期設定にこんな感じで書いてたんですが無理そうですか
了解しました
class hoge:object{
[object]$o_a;
[object]$o_b;
hoge (){
[int] $cnt;
function object_a_init(){
$this.cnt = 1;
}
object_a_init;
}
}
とあるオブジェクトの初期設定にこんな感じで書いてたんですが無理そうですか
了解しました
class hoge:object{
[object]$o_a;
[object]$o_b;
hoge (){
[int] $cnt;
function object_a_init(){
$this.cnt = 1;
}
object_a_init;
}
}
945デフォルトの名無しさん
2023/11/16(木) 15:17:07.39ID:FRf+5dUd 親スコープにある変数の値を変えたいなら
Set-Variable -Name a -Value 1 -Scope 1
Set-Variable -Name a -Value 1 -Scope 1
946デフォルトの名無しさん
2023/11/16(木) 17:00:58.20ID:HndTNurg947デフォルトの名無しさん
2023/11/16(木) 17:15:32.66ID:JFk7nC9m 横からすいません
なんでこれはエラーになるんでしょうか
pwsh -nop -c "[System.Text.Encoding]::GetEncoding(932)"
-c を使わずに pwsh -nop と起動して
[System.Text.Encoding]::GetEncoding(932)
を入れると動くのもわからない・・・
なんでこれはエラーになるんでしょうか
pwsh -nop -c "[System.Text.Encoding]::GetEncoding(932)"
-c を使わずに pwsh -nop と起動して
[System.Text.Encoding]::GetEncoding(932)
を入れると動くのもわからない・・・
948デフォルトの名無しさん
2023/11/16(木) 18:13:00.55ID:vDdnsPkv エラーって何のエラーなの
949デフォルトの名無しさん
2023/11/16(木) 20:12:17.64ID:JFk7nC9m MethodInvocationException: Exception calling "GetEncoding" with "1" argument(s): "No data is available for encoding 932. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method."
だそうです
だそうです
950デフォルトの名無しさん
2023/11/16(木) 20:17:57.10ID:JFk7nC9m Encoding.RegisterProvider でぐぐったら解決しました
951デフォルトの名無しさん
2023/11/16(木) 22:05:45.00ID:wYK3pDi3 >>939を動くように直したげたよ
function hoge(){
[int]$a = "1" # $aを値で初期化しつつ型を強制。型宣言というよりキャストに相当。[int]に強制されるので値が文字列でも$aにはSystem.Int32に変換された値が入る
$a.GetType() | Write-Host # $aの値の型をコンソールに出力 System.Int32
function moge(){
([ref]$a).Value = 1 # >>941-942の言うブロックで変数を生成せず既存の変数を参照して値を代入する記法
}
moge
$a # 関数の打ち切りの意図を除きreturnキーワード不要。powershellのfuncitonは最後に限らず値を返す式は全部返そうとする
}
hoge
function hoge(){
[int]$a = "1" # $aを値で初期化しつつ型を強制。型宣言というよりキャストに相当。[int]に強制されるので値が文字列でも$aにはSystem.Int32に変換された値が入る
$a.GetType() | Write-Host # $aの値の型をコンソールに出力 System.Int32
function moge(){
([ref]$a).Value = 1 # >>941-942の言うブロックで変数を生成せず既存の変数を参照して値を代入する記法
}
moge
$a # 関数の打ち切りの意図を除きreturnキーワード不要。powershellのfuncitonは最後に限らず値を返す式は全部返そうとする
}
hoge
952デフォルトの名無しさん
2023/11/17(金) 11:55:26.61ID:i3gkpHOP >>939
参照渡しでやってみれば?
--------
function hoge
{
[int] $a = 1234
function moge
{
param (
[ref] $b
)
$b.Value = 5678
}
moge -b ([ref] $a)
return $a
}
hoge
--------
about_Ref
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_ref?view=powershell-7.3
参照渡しでやってみれば?
--------
function hoge
{
[int] $a = 1234
function moge
{
param (
[ref] $b
)
$b.Value = 5678
}
moge -b ([ref] $a)
return $a
}
hoge
--------
about_Ref
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_ref?view=powershell-7.3
953デフォルトの名無しさん
2023/11/17(金) 14:37:28.42ID:05VltA/O PowerShell 7.4 General Availability
https://devblogs.microsoft.com/powershell/powershell-7-4-general-availability/
PSNativeCommandPreserveBytePipe 待ってた!
https://devblogs.microsoft.com/powershell/powershell-7-4-general-availability/
PSNativeCommandPreserveBytePipe 待ってた!
954デフォルトの名無しさん
2023/11/17(金) 20:30:46.86ID:Wtzmq/3L リンク先読んでないけど、.exeにパイプしたときに早くなる(普通になる)のかな
955デフォルトの名無しさん
2023/11/20(月) 14:11:07.62ID:HI5+Omcp 文字列を8文字ごとに分割して配列に格納したいのですが
文字列が8文字以下だと1文字ずつ分割されてしまいます。
$nums = @()
$nums = $num -split '(.{1,8})' | Where-Object{$_}
上記を実行すると、
$num = 12345678 のとき、$num[0] は 1が格納されるのですが、
12345678が格納されるようにするには、どうすればよいでしょうか。
文字列が8文字以下だと1文字ずつ分割されてしまいます。
$nums = @()
$nums = $num -split '(.{1,8})' | Where-Object{$_}
上記を実行すると、
$num = 12345678 のとき、$num[0] は 1が格納されるのですが、
12345678が格納されるようにするには、どうすればよいでしょうか。
956デフォルトの名無しさん
2023/11/20(月) 14:50:35.31ID:HI5+Omcp957デフォルトの名無しさん
2023/11/20(月) 15:52:48.41ID:fHSnLnjq $numsには文字列の"12345678"が代入されてるから
$nums[0]だと"12345678"の1文字目の1が返る
1行目を [string[]]$nums = @() とするか
2行目を $nums = @(12345678 -split '(.{1,8})' | Where-Object{$_}) とすればOK
$nums[0]だと"12345678"の1文字目の1が返る
1行目を [string[]]$nums = @() とするか
2行目を $nums = @(12345678 -split '(.{1,8})' | Where-Object{$_}) とすればOK
958デフォルトの名無しさん
2023/11/20(月) 17:23:25.47ID:HI5+Omcp >>0957
ありがとうございます!
できました。
ありがとうございます!
できました。
959デフォルトの名無しさん
2023/11/21(火) 21:09:20.96ID:qJoihvDX PowerShell 7.4 だと
PS> python -c 'print("\\")'
\
と期待通りになるけど Windows PowerShell 5.1 だと
PS> python -c 'print("\\")'
File "<string>", line 1
print(\)
^
SyntaxError: unexpected character after line continuation character
となるのは何が起きてるの?
7.4 でも $PSNativeCommandArgumentPassing を Legacy にすると同じみたいだけど
具体的にどうなってるのか今更だけど知っておきたい
PS> python -c 'print("\\")'
\
と期待通りになるけど Windows PowerShell 5.1 だと
PS> python -c 'print("\\")'
File "<string>", line 1
print(\)
^
SyntaxError: unexpected character after line continuation character
となるのは何が起きてるの?
7.4 でも $PSNativeCommandArgumentPassing を Legacy にすると同じみたいだけど
具体的にどうなってるのか今更だけど知っておきたい
960デフォルトの名無しさん
2023/11/21(火) 21:20:45.10ID:CeBFd4j1961デフォルトの名無しさん
2023/11/21(火) 22:46:00.10ID:qJoihvDX 対処法が知りたいんじゃなくてどう解析されたかが知りたい
962デフォルトの名無しさん
2023/11/21(火) 22:57:00.47ID:wGZJ97Pn コマンドラインのパース内容をデバッグできるコマンドレットがあって
inactionで紹介されてた気がするけど何か思い出せない
inactionで紹介されてた気がするけど何か思い出せない
963デフォルトの名無しさん
2023/11/22(水) 00:52:11.84ID:z2bY/yQG $PSVersionTable
PSVersion 5.1
Ruby の1-liner では、%Q 記法があるから大丈夫
ruby -e 'print %Q(\\)'
\
ruby -e 'print %Q(あaい)'
あaい
PSVersion 5.1
Ruby の1-liner では、%Q 記法があるから大丈夫
ruby -e 'print %Q(\\)'
\
ruby -e 'print %Q(あaい)'
あaい
964デフォルトの名無しさん
2023/11/22(水) 04:23:14.63ID:nZzIGDLb >>962
Get-Command | sls "breakpoint|callstack"
デバッガーについて - PowerShell | Microsoft Learn
ttps://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_debuggers?view=powershell-5.1
Get-Command | sls "breakpoint|callstack"
デバッガーについて - PowerShell | Microsoft Learn
ttps://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_debuggers?view=powershell-5.1
965デフォルトの名無しさん
2023/11/22(水) 10:26:54.20ID:Yh77KGhz966デフォルトの名無しさん
2023/11/22(水) 10:52:24.03ID:Yh77KGhz 他に、形態素解析みたいに分解・解析できる機能もあった気がするが忘れた
967デフォルトの名無しさん
2023/11/22(水) 14:18:25.39ID:W8vcuvaF PowerShell 7.4 だと python -c 'print("\\")' ですむことを
Windows PowerShell 5.1 だとどう書けばいいんだ
--% を使っても使わなくても分からん
Windows PowerShell 5.1 だとどう書けばいいんだ
--% を使っても使わなくても分からん
968デフォルトの名無しさん
2023/11/22(水) 15:05:51.75ID:fKGlzN6D パラメータの干渉受けたくないなら普通にStart-Processでいいでしょ
969デフォルトの名無しさん
2023/11/22(水) 15:26:30.66ID:W8vcuvaF 対話シェルでStart-Processするのはつらい
970デフォルトの名無しさん
2023/11/22(水) 15:34:55.56ID:W8vcuvaF つらいのは我慢するとしてStart-Processを使ってどう書けばいいの
971デフォルトの名無しさん
2023/11/22(水) 20:54:48.61ID:5rDf7evN pythonの引用符はシングルもダブルもエスケープシーケンス展開されるからおかしな解釈になってるだけだな
pythonの仕様を呪うがいい
pythonの仕様を呪うがいい
972デフォルトの名無しさん
2023/11/22(水) 22:06:38.07ID:W8vcuvaF pythonは例として使っただけだしどうでもいいよ
あくまで興味の対象はPowerShellのコマンドラインのパース
やっぱ 7.4 すげぇで終わってもいいんだけど
なんか 7.4 の --% が腐ってる気がする
5.1 の想定通りの --% と違って勝手に引用符加えてぶっ壊してる感じ
はやいとこ直して欲しい
あくまで興味の対象はPowerShellのコマンドラインのパース
やっぱ 7.4 すげぇで終わってもいいんだけど
なんか 7.4 の --% が腐ってる気がする
5.1 の想定通りの --% と違って勝手に引用符加えてぶっ壊してる感じ
はやいとこ直して欲しい
973デフォルトの名無しさん
2023/11/22(水) 22:37:16.49ID:5rDf7evN うーんどうでもいい変なの相手しちゃった
974デフォルトの名無しさん
2023/11/23(木) 17:39:38.00ID:Rimm12ii いやわかんないなら別にいいけど一応書いとくわ
もちろん 7.4 を Windows で使う話
stop-parsing token (--%) は以後のパースをしないはずなのに
引用符無視して空白で引数を分割してコマンド起動してるっぽい
CreateProcessまでに引用符が変に補完されるから意図通り動かない
--% が出てきたら引数の分割はネイティブコマンドに任せないとあかん
$PSNativeCommandArgumentPassing が Legacy の時と同じ処理な
そういうわけで Legacy 扱いされる .cmd とかでは問題ない
おかしいのは Standard 扱いされる .exe なんかの場合だけ
PSNativeCommandArgumentPassing の説明
>この実験的な機能が有効になっていると、PowerShell は、ネイティブの実行可能
>ファイルを呼び出すときに、文字列を再構築する現在の機構ではなく、
>StartProcessInfo オブジェクトの ArgumentList プロパティを使用します。
にある、文字列を再構築するのが Legacy、Argumentlist を使うのが Standard
という違いがわかれば理解できる話なんだが期待はしてない
もちろん 7.4 を Windows で使う話
stop-parsing token (--%) は以後のパースをしないはずなのに
引用符無視して空白で引数を分割してコマンド起動してるっぽい
CreateProcessまでに引用符が変に補完されるから意図通り動かない
--% が出てきたら引数の分割はネイティブコマンドに任せないとあかん
$PSNativeCommandArgumentPassing が Legacy の時と同じ処理な
そういうわけで Legacy 扱いされる .cmd とかでは問題ない
おかしいのは Standard 扱いされる .exe なんかの場合だけ
PSNativeCommandArgumentPassing の説明
>この実験的な機能が有効になっていると、PowerShell は、ネイティブの実行可能
>ファイルを呼び出すときに、文字列を再構築する現在の機構ではなく、
>StartProcessInfo オブジェクトの ArgumentList プロパティを使用します。
にある、文字列を再構築するのが Legacy、Argumentlist を使うのが Standard
という違いがわかれば理解できる話なんだが期待はしてない
975デフォルトの名無しさん
2023/11/23(木) 22:03:41.74ID:KHOftQWe Powershellを体系的に学ぶにあたっておすすめの本ってありますか?
やりたいことをググってコードをコピペして使用してる状態で、コードの理解度が深まらないと思ったので体系的に学びたいと思いました。
自分のPowershellの用途は、日常的な作業の自動化(テキストファイルの読み書き、ファイルの起動やタスキル、アクティブウィンドウの切り替え、robocopyでのバックアップなど)で使っています。
やりたいことをググってコードをコピペして使用してる状態で、コードの理解度が深まらないと思ったので体系的に学びたいと思いました。
自分のPowershellの用途は、日常的な作業の自動化(テキストファイルの読み書き、ファイルの起動やタスキル、アクティブウィンドウの切り替え、robocopyでのバックアップなど)で使っています。
976デフォルトの名無しさん
2023/11/23(木) 22:45:32.85ID:38VIgpCL 馬鹿には無理
977デフォルトの名無しさん
2023/11/23(木) 23:00:45.15ID:09UkZirn Windows PowerShell in Action Third Editionは読んだかね
https://sd.blackball.lv/library/Windows_PowerShell_in_Action_3rd_Edition_(2017).pdf
ただしこの本は6年前の情報。英語PDFだけど今は色々と翻訳手段もあるから読めると思う
powershellならWindows上の事であれば大抵の事はできるけど
本当に便利に使うならC#や.NETの前提知識があった方がいいだろうね
C#関連で可能な事ならほぼpowershellに置き換え可能だから
https://sd.blackball.lv/library/Windows_PowerShell_in_Action_3rd_Edition_(2017).pdf
ただしこの本は6年前の情報。英語PDFだけど今は色々と翻訳手段もあるから読めると思う
powershellならWindows上の事であれば大抵の事はできるけど
本当に便利に使うならC#や.NETの前提知識があった方がいいだろうね
C#関連で可能な事ならほぼpowershellに置き換え可能だから
978デフォルトの名無しさん
2023/11/24(金) 00:12:01.77ID:kL+9jaCp Powershell で複雑なものは書けないから結局、Ruby になる。
WSL2, Linux側からなら、Windows側をいじれるし
WSL2, Linux側からなら、Windows側をいじれるし
979デフォルトの名無しさん
2023/11/24(金) 03:38:21.50ID:k2LHl+dn rubyガイジなんだろうけどそこでrubyになるのは贔屓目に見てもおかしいだろ
980デフォルトの名無しさん
2023/11/24(金) 05:42:11.56ID:IciYTcVm >>975
コードをコピーしてchatGPTかPerplexityで「PowerShellで"〜〜〜"はどういう意味?」を聞けばいい
コードをコピーしてchatGPTかPerplexityで「PowerShellで"〜〜〜"はどういう意味?」を聞けばいい
981デフォルトの名無しさん
2023/11/24(金) 13:14:03.37ID:4NGqTzL9982デフォルトの名無しさん
2023/11/25(土) 12:02:22.73ID:pLnatqec microsoft learn じゃダメなの?
ttps://learn.microsoft.com/ja-jp/powershell/scripting/how-to-use-docs?view=powershell-7.4
ttps://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about?view=powershell-7.4
ttps://learn.microsoft.com/ja-jp/powershell/scripting/how-to-use-docs?view=powershell-7.4
ttps://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about?view=powershell-7.4
983デフォルトの名無しさん
2023/11/25(土) 18:06:48.53ID:wD6fmxci MSの自動翻訳は5分と読んでられない
984デフォルトの名無しさん
2023/11/25(土) 18:41:01.39ID:444pwTGg 英語ページでOK
985デフォルトの名無しさん
2023/11/25(土) 18:53:18.66ID:Q+kYJTm7 975です。おすすめのドキュメント教えてくれた方ありがとうございます。
一つ気になったのですが、学習の順番としてはC#もしくは.NETから入ったほうが効率的ですか?
自分がPowershell始めたきっかけがグローバルホットキーをうまく使いたいというのが始まりで、
後述URLのコードをベースに継ぎ足しで書き加えている状態です。
PowerShellとC#でグローバルホットキーを登録する
https://qiita.com/minr/items/72b02d673727f9eb4c37
※自分のC#のレベルはHelloWorld出したぐらいまで、.NETについても知識としてほぼ白紙です。
一つ気になったのですが、学習の順番としてはC#もしくは.NETから入ったほうが効率的ですか?
自分がPowershell始めたきっかけがグローバルホットキーをうまく使いたいというのが始まりで、
後述URLのコードをベースに継ぎ足しで書き加えている状態です。
PowerShellとC#でグローバルホットキーを登録する
https://qiita.com/minr/items/72b02d673727f9eb4c37
※自分のC#のレベルはHelloWorld出したぐらいまで、.NETについても知識としてほぼ白紙です。
986デフォルトの名無しさん
2023/11/25(土) 19:23:35.12ID:c65Q6uO9 ダボゥクリッコゥで実行出来ない面倒臭いものを誰が使うんですか?
987デフォルトの名無しさん
2023/11/25(土) 21:21:00.31ID:2+5b9joX ダブルクリックで実行できたWSHはLOVELETTERワームやら何やらでセキュリティが低いとみなされて非推奨になりましたとさ
めでたしめでたし
めでたしめでたし
988デフォルトの名無しさん
2023/11/26(日) 00:07:05.46ID:tHVdGucZ 例えば、デスクトップにショートカットを作って、リンク先を以下のようにすると、
ダブルクリックでPowershell を起動して、Ruby でスクリプトを実行する
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe "ruby C:/Users/Owner/Documents/Ruby/a.rb"
初心者はRuby で始めるべき。
C# はRubyの10倍、時間が掛かるし難しい
ダブルクリックでPowershell を起動して、Ruby でスクリプトを実行する
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe "ruby C:/Users/Owner/Documents/Ruby/a.rb"
初心者はRuby で始めるべき。
C# はRubyの10倍、時間が掛かるし難しい
989デフォルトの名無しさん
2023/11/26(日) 04:20:48.27ID:xBck3nSS こんなんに粘着されちゃmatzが気の毒だわな
990デフォルトの名無しさん
2023/11/26(日) 07:10:42.58ID:forkl5ep 同じ民族同士、分断せずに仲良くしろよ
DevBlogs - Microsoft Developer Blogs
ttps://devblogs.microsoft.com/
DevBlogs - Microsoft Developer Blogs
ttps://devblogs.microsoft.com/
991デフォルトの名無しさん
2023/11/26(日) 10:47:01.19ID:d/KzVdDP MatzはWindowsやC++に興味無いから
よほどエゴサでもしないかぎり気の毒なことにはならないわ
知らぬが仏
よほどエゴサでもしないかぎり気の毒なことにはならないわ
知らぬが仏
992デフォルトの名無しさん
2023/11/26(日) 15:25:10.25ID:06WEnIxy う
993デフォルトの名無しさん
2023/11/26(日) 15:25:17.90ID:06WEnIxy め
994デフォルトの名無しさん
2023/11/26(日) 15:37:23.40ID:tLrTLV3h というか、Windowsの日本語localizationのデフォルトが未だにクゾだから、
「☑ベータ: ワールドワイド言語サポートを Unicode UTF-8 を使用」
を最初から標準にしていないかぎり、Windowsを日本語で使うこと自体、クソということになる
「☑ベータ: ワールドワイド言語サポートを Unicode UTF-8 を使用」
を最初から標準にしていないかぎり、Windowsを日本語で使うこと自体、クソということになる
995デフォルトの名無しさん
2023/11/29(水) 13:21:53.02ID:FINewHXp 外部コマンドを実行するときに外部コマンド自体は正常な戻り値を返してるのにpowershellで動かすとNativeCommandErrorって例外が出るんだけどなんでだかわかる人おる?
996デフォルトの名無しさん
2023/11/29(水) 15:06:21.22ID:UMPQWy8o そういうのはまず再現できるコードを貼ってね
997デフォルトの名無しさん
2023/11/29(水) 16:09:41.88ID:0g8RZ7sB ISE上で実行した場合に標準エラー出力があると
戻り値に関係なくNativeCommandErrorになるけど、このこと?
そうでなければ>>996にプラスしてバージョンなどの環境も示してね。
あと次スレ
https://mevius.5ch.net/test/read.cgi/tech/1701241669/
戻り値に関係なくNativeCommandErrorになるけど、このこと?
そうでなければ>>996にプラスしてバージョンなどの環境も示してね。
あと次スレ
https://mevius.5ch.net/test/read.cgi/tech/1701241669/
998デフォルトの名無しさん
2023/11/29(水) 17:02:28.41ID:FINewHXp >>997
多分それですありがとうございます
多分それですありがとうございます
999デフォルトの名無しさん
2023/11/29(水) 18:41:30.81ID:Emfdd1vJ 質問いいですか
1000デフォルトの名無しさん
2023/11/29(水) 19:21:40.65ID:0g8RZ7sB だめです
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 654日 0時間 45分 29秒
新しいスレッドを立ててください。
life time: 654日 0時間 45分 29秒
10021002
Over 1000Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【映画】永野芽郁主演『かくかくしかじか』 公開初日から空席祭り [ネギうどん★]
- 政府備蓄米の価格上乗せが拡大、卸売業者から小売り・外食へは60kgで7593円 [おっさん友の会★]
- 松村沙友理、男性に怒りの問題提起「スナックに行くことに罪悪感がなさ過ぎ」「キャバクラもスナックも一緒」共演者ら反論「全く違う!」 [muffin★]
- 日産 追浜と湘南の2工場閉鎖へ…7工場削減計画 海外はメキシコや南アフリカなど ★2 [蚤の市★]
- 【速報】1人約2万円の現金給付案を立憲・野田代表が発表 食料品の消費税ゼロの財源も示す [パンナ・コッタ★]
- イオンがカリフォルニア産米を販売、これが日本の食料安全保障に… (青沼 陽一郎氏) ★2 [少考さん★]
- 日本人、ついに気ずく… 「ぶっちゃけ日本ってかなり不快な最悪な気候の国だよな」 [271912485]
- 円高時代ってどう経済回すつもりだったんだ?2009~2012輸出57~63兆円、税収38~43兆、2024年輸出額107兆、税収73兆 [921271808]
- 【実況】博衣こよりのえちえち鬼武者🧪★2
- 【悲報】ジークアクス、「鶴巻が2014年を改変しようとしてる」説が有力視されてしまうwwwww [339035499]
- トランプ「もう雑魚とは交渉しない。勝手に関税率決めるから従え」 [624898991]
- 名古屋にできた国内最大「IGアリーナ」に東京や大阪人もビビってしまう… ここで大相撲とBリーグ開催 いいだろ! [452836546]