前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/
次スレは>>980が立ててね!!
探検
PowerShell -Part 5
■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
2021/03/26(金) 21:22:13.21ID:SIEsHqNB
2021/03/26(金) 21:27:33.53ID:dswi0/Vv
>>47
扱える
扱える
2021/03/26(金) 23:53:54.40ID:4XawFn4z
>>49
Start-Process sox -ArgumentList "--info","-" -RedirectStandardInput .\audio.flac
で実行できた。ただ、これだと別ウィンドウで実行されて(-Waitを付けても)すぐ消える
-NoNewWindow付けるとコンソール出力されて直接実行の目的は果たせた。ありがとう
ただ、別プロセスのせいか$capture = Start-Process .(ryで出力キャプチャできない
-RedirectStandardOutputでファイル出力はできるけど
出力キャプチャは今んとこcmd経由しか思いつかないな・・・
>>51
Get-Contentはファイル読んでPSオブジェクト作るからwavみたいな巨大ファイル喰わせると
消費メモリがとんでもない事になってよろしくないみたい。
command1 | comannd2でパイプで繋ぐのもそうなのかも(?)
PowerShell使い始めたばかりでまだ仕組みわかってないのでアレですが
Start-Process sox -ArgumentList "--info","-" -RedirectStandardInput .\audio.flac
で実行できた。ただ、これだと別ウィンドウで実行されて(-Waitを付けても)すぐ消える
-NoNewWindow付けるとコンソール出力されて直接実行の目的は果たせた。ありがとう
ただ、別プロセスのせいか$capture = Start-Process .(ryで出力キャプチャできない
-RedirectStandardOutputでファイル出力はできるけど
出力キャプチャは今んとこcmd経由しか思いつかないな・・・
>>51
Get-Contentはファイル読んでPSオブジェクト作るからwavみたいな巨大ファイル喰わせると
消費メモリがとんでもない事になってよろしくないみたい。
command1 | comannd2でパイプで繋ぐのもそうなのかも(?)
PowerShell使い始めたばかりでまだ仕組みわかってないのでアレですが
2021/03/27(土) 09:30:15.39ID:9NUR6gaS
パワーシェルとWindowsバッチってどう違うの?
2021/03/27(土) 09:34:24.56ID:cvT0SSdW
異なるスクリプト言語
2021/03/27(土) 10:40:57.10ID:TlGVFU3L
PowerShellはシェル
バッチはコマンドを連続して実行すること
PowerShell上でバッチを動かすことも可能
バッチはコマンドを連続して実行すること
PowerShell上でバッチを動かすことも可能
2021/03/27(土) 20:22:03.71ID:uSYmOJju
powershellは起動時のロードがクソ遅いからログインスクリプトとかで迂闊に使えない
vbsとバッチは相変わらず超速
vbsとバッチは相変わらず超速
58デフォルトの名無しさん
2021/03/27(土) 21:16:23.22ID:17oRwajB 1000台規模のネットブートシステムでスタートアップ・ログオンスクリプト共々PowerShellで組んでるけど遅いときなんて一度も無いな
PowerShellの起動が遅いと感じたのはWindows7の頃が最後だな
PowerShellの起動が遅いと感じたのはWindows7の頃が最後だな
2021/03/27(土) 21:51:02.28ID:XCgMDSTR
そりゃそんなんじゃ起動の遅さなんて気にならんだろ。
2021/03/27(土) 21:52:07.31ID:c8B2TB9l
遅い(ストレージがHDD)
2021/03/28(日) 09:17:08.07ID:bwt8R5Sf
>>53
PowerShell Teamのブログに今月こんなのが出た
PowerShell Team 2021 Investments
https://devblogs.microsoft.com/powershell/powershell-team-2021-investments/
この中に
Improve native command experience
One of the goals of PowerShell 7.1 was to improve the shell experience. This includes using native commands within PowerShell more intuitively like other shells.
って節があるのだけど、そこで挙げてる3項目の一つが
PowerShell currently treats all output from native commands as text. This means that binary output from commands is converted to text, resulting in data loss, even if the intent is to redirect that output to a file or another command that accepts the binary output.
バイナリ出力が扱えるようになればバイナリ入力もできるようになるだろう
もしかすると年内に実現するかもしれない
やっと他のシェルを経由しなくてもすむようになる
それにしても今頃こんなところに手を入れるなんて遅すぎるとしか言いようがない
PowerShell Teamのブログに今月こんなのが出た
PowerShell Team 2021 Investments
https://devblogs.microsoft.com/powershell/powershell-team-2021-investments/
この中に
Improve native command experience
One of the goals of PowerShell 7.1 was to improve the shell experience. This includes using native commands within PowerShell more intuitively like other shells.
って節があるのだけど、そこで挙げてる3項目の一つが
PowerShell currently treats all output from native commands as text. This means that binary output from commands is converted to text, resulting in data loss, even if the intent is to redirect that output to a file or another command that accepts the binary output.
バイナリ出力が扱えるようになればバイナリ入力もできるようになるだろう
もしかすると年内に実現するかもしれない
やっと他のシェルを経由しなくてもすむようになる
それにしても今頃こんなところに手を入れるなんて遅すぎるとしか言いようがない
2021/03/28(日) 11:25:17.75ID:6r1EOw6A
カレントディレクトリにあるスクリプトファイルを
フルパスでなくファイル名だけ指定しても実行できないのはどうしてでしょうか?
フルパスでなくファイル名だけ指定しても実行できないのはどうしてでしょうか?
2021/03/28(日) 11:35:58.09ID:WPyWLlG4
セキュリティ上の配慮だと初期バージョンの頃から明言されていた
2021/03/28(日) 11:58:30.02ID:G6KSiarP
linuxやって検索パスにカレントディレクトリ"."を入れてないと実行出来へんので違和感無し。
検索パスにカレントディレクトリを含めるのはセキュリティ上非推奨やしな。
検索パスにカレントディレクトリを含めるのはセキュリティ上非推奨やしな。
2021/03/28(日) 12:14:42.01ID:6r1EOw6A
ありがとう
なんとかマイクロソフトのページ検索できた
確かにセキュリティの機能としてそうなってるって書いてた
なんとかマイクロソフトのページ検索できた
確かにセキュリティの機能としてそうなってるって書いてた
2021/03/28(日) 12:24:21.92ID:qLGWMSxC
まぁフルパスやなくて相対パスでええしな。
2021/03/28(日) 12:29:47.73ID:wpKLokvI
2021/03/28(日) 14:06:49.10ID:NjmNZXxg
#!/usr/bin/env ruby
puts RUBY_VERSION #=> 2.6.6
Linux でも、こういう内容の、a.rb ファイルを作って、
a.rb と実行してもエラー。
そもそも、bash で入力補完もできないし
./a.rb なら実行できるし、
./a と打っても、入力補完も働く
シバンに、/usr/bin/ruby ではなく、env を使っているのは、
anyenv/rbenv で、複数のバージョンを切り替えているため、
/usr/bin/ruby は存在しない
puts RUBY_VERSION #=> 2.6.6
Linux でも、こういう内容の、a.rb ファイルを作って、
a.rb と実行してもエラー。
そもそも、bash で入力補完もできないし
./a.rb なら実行できるし、
./a と打っても、入力補完も働く
シバンに、/usr/bin/ruby ではなく、env を使っているのは、
anyenv/rbenv で、複数のバージョンを切り替えているため、
/usr/bin/ruby は存在しない
2021/03/28(日) 15:12:05.97ID:xIH5FjVn
PowerShellだろうがbashだろうがzshだろうがtcshだろうが
コマンドの検索パスに . が入っているかどうかだけの問題
入っていればカレントディレクトリの実行ファイルがパスなしで動く
PowerShellの場合でも$env:PATHに入れてやれば動く
入ってなくても動くcmd.exeとかcommand.comが特殊なだけ
コマンドの検索パスに . が入っているかどうかだけの問題
入っていればカレントディレクトリの実行ファイルがパスなしで動く
PowerShellの場合でも$env:PATHに入れてやれば動く
入ってなくても動くcmd.exeとかcommand.comが特殊なだけ
2021/03/29(月) 00:14:19.86ID:AC49a7XE
$ping_result=(Test-Connection -count 2 8.8.8.8)
$ping_result #@
Source Destination IPV4Address IPV6Address Bytes Time(ms)
------ ----------- ----------- ----------- ----- --------
DESKTOP-E1... 8.8.8.8 8.8.4.4 32 3
DESKTOP-E1... 8.8.8.8 8.8.4.4 32 3
$proc_result=(Get-Process)
$proc_result #A
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
547 32 19840 10308 2.72 11144 1 ApplicationFrameHost
123 8 1564 1552 3404 0 armsvc
@とAの後ろに、| select-objectを付けると
@は、TAB補完で IPV4Address、 IPV6Address だけが出てきます。
Aは、Handles〜ProcessNameまで全部出てきます。
Get-memberしても、列タイトルと名前が一致しません。
例えば、$ping_resultのTime(ms) はReplyTimesという名前で値が入ってます
ほかのコマンドでもちらちらこういう、「コマンドレット実行したときに表示されるタイトルと、実際に.プロパティ名で取る際の名前が違う」
というのがあります。こういう違いって何か明確な区分けがあるんでしょうか?よろしくお願いいたします。
$ping_result #@
Source Destination IPV4Address IPV6Address Bytes Time(ms)
------ ----------- ----------- ----------- ----- --------
DESKTOP-E1... 8.8.8.8 8.8.4.4 32 3
DESKTOP-E1... 8.8.8.8 8.8.4.4 32 3
$proc_result=(Get-Process)
$proc_result #A
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
547 32 19840 10308 2.72 11144 1 ApplicationFrameHost
123 8 1564 1552 3404 0 armsvc
@とAの後ろに、| select-objectを付けると
@は、TAB補完で IPV4Address、 IPV6Address だけが出てきます。
Aは、Handles〜ProcessNameまで全部出てきます。
Get-memberしても、列タイトルと名前が一致しません。
例えば、$ping_resultのTime(ms) はReplyTimesという名前で値が入ってます
ほかのコマンドでもちらちらこういう、「コマンドレット実行したときに表示されるタイトルと、実際に.プロパティ名で取る際の名前が違う」
というのがあります。こういう違いって何か明確な区分けがあるんでしょうか?よろしくお願いいたします。
2021/03/29(月) 14:41:37.92ID:+vuzzbeH
出力の仕様は書式設定ファイルで定義されている
ファイルの中では表示したいプロパティの名前を指定してもいいし、結果を計算するスクリプトブロックを指定してもいい
about_Format.ps1xml
https://docs.microsoft.com/ja-jp/previous-versions/windows/powershell-scripting/hh847831(v=wps.640)
ファイルの中では表示したいプロパティの名前を指定してもいいし、結果を計算するスクリプトブロックを指定してもいい
about_Format.ps1xml
https://docs.microsoft.com/ja-jp/previous-versions/windows/powershell-scripting/hh847831(v=wps.640)
2021/03/30(火) 23:15:43.59ID:AnfR1yyf
無限ループにして走らせておきたいスクリプトがあって
コマンドプロンプトの画面で実行させてるけど邪魔
見えないようにして、かつ終了もさせられるようにするにはどうしたらいい?
コマンドプロンプトの画面で実行させてるけど邪魔
見えないようにして、かつ終了もさせられるようにするにはどうしたらいい?
2021/03/31(水) 00:36:37.55ID:bnFDknJn
よからぬ事に使う目的にしか見えない
2021/03/31(水) 09:05:46.55ID:Y3PcTBvP
>>72
タスクで別ユーザで実行させとけばいいんじゃね
タスクで別ユーザで実行させとけばいいんじゃね
2021/03/31(水) 09:38:27.22ID:YEibHbKm
ウィンドウの位置とサイズを固定させる用途だから、ユーザが自分でないと
2021/03/31(水) 10:00:59.54ID:gA7tKZjY
仮想デスクトップ分ければ?
2021/03/31(水) 10:10:11.65ID:YEibHbKm
仮想デスクトップでばっちり
2021/03/31(水) 15:09:07.56ID:GYCr8oLd
タスクトレイに常駐させるのがスマートだけど
それのイベント拾う非表示のウィンドウが必要なんだよな
作り方は他の言語と同じだから全省略するね
それのイベント拾う非表示のウィンドウが必要なんだよな
作り方は他の言語と同じだから全省略するね
2021/03/31(水) 15:21:44.88ID:AtIsL56M
pwsh --helpで出てくる公知なことを隠す必要なんてないと思うが…
スクリプトの実行ポリシーはガッチガチだし、ドキュメントどころか--helpすら読まない奴はスクリプトキディにもなれんだろうから安心
スクリプトの実行ポリシーはガッチガチだし、ドキュメントどころか--helpすら読まない奴はスクリプトキディにもなれんだろうから安心
2021/03/31(水) 23:05:55.25ID:M9w8Znx+
[System.DateTime]::Now.kind
@これを読むとすると
system.date.timeクラスの、nowメソッドのkindプロパティでいいでしょうか。
違ってたら読み方?教えてください
Aこういうのってどっかに一覧があるんでしょうか
Bこういうのを使うとPowershellらしい、新しい書き方になると思ってるんですが
実際の所はどうなんでしょうか?使う人のほうが少ないんしょうか。
例えば、[System.DateTime]::Nowであれば、Get-Date と同じものなので、
わざわざこういう書き方をしないで、コマンドレットの読みやすい表記を使う人のほうが多いんでしょうか
@これを読むとすると
system.date.timeクラスの、nowメソッドのkindプロパティでいいでしょうか。
違ってたら読み方?教えてください
Aこういうのってどっかに一覧があるんでしょうか
Bこういうのを使うとPowershellらしい、新しい書き方になると思ってるんですが
実際の所はどうなんでしょうか?使う人のほうが少ないんしょうか。
例えば、[System.DateTime]::Nowであれば、Get-Date と同じものなので、
わざわざこういう書き方をしないで、コマンドレットの読みやすい表記を使う人のほうが多いんでしょうか
2021/03/31(水) 23:43:46.86ID:mCZD0Ait
>>80
System名前空間のDateTime構造体の静的Nowプロパティが返す(System.DateTime型の)オブジェクトのKindプロパティかな
https://docs.microsoft.com/ja-jp/dotnet/api/system.datetime
System名前空間のDateTime構造体の静的Nowプロパティが返す(System.DateTime型の)オブジェクトのKindプロパティかな
https://docs.microsoft.com/ja-jp/dotnet/api/system.datetime
2021/03/31(水) 23:59:39.51ID:XczoOgFc
構造体ってなんぞ?
2021/04/01(木) 00:23:39.07ID:PSFjtGJo
>>82
プロパティのみのクラスオブジェクトなんじゃね
プロパティのみのクラスオブジェクトなんじゃね
2021/04/01(木) 00:38:41.91ID:u/4v0CTW
なるほどなるほど
2021/04/01(木) 04:57:15.84ID:xXKhkzDq
>>82-84
構造体にもメソッドあるぞ
クラスは参照型、構造体は値型
詳しくはWebで ⇒ https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/
構造体にもメソッドあるぞ
クラスは参照型、構造体は値型
詳しくはWebで ⇒ https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/
86デフォルトの名無しさん
2021/04/01(木) 07:41:37.81ID:klwu+MWY powershellのタブ補完はディレクトリ末尾にバックスラッシュを付与するので、多くのWin32アプリが引数をうまく受け取れないってのは既知?
2021/04/01(木) 19:32:54.94ID:T6HNdWih
スラッシュならともかくバックスラッシュなら処理できるんじゃね
2021/04/01(木) 20:43:50.58ID:M+/UvE/I
ディレクトリの場合は末尾にバックスラッシュ補完してくれるほうがありがたいが、
アプリは引数のディレクトリ末尾にバックスラッシュあるとうまく受け取れないん?
アプリは引数のディレクトリ末尾にバックスラッシュあるとうまく受け取れないん?
2021/04/01(木) 20:45:21.44ID:SMpNE7HF
あってもなくても正しく動くように全員が実装している必要がある
2021/04/03(土) 02:27:37.45ID:KxHmdFnt
職場でPowerShell書いたらバッチでいいと言われたよ
2021/04/03(土) 05:39:47.61ID:1anAZoL9
設定しないと動かないからな
92デフォルトの名無しさん
2021/04/03(土) 08:07:25.49ID:EzmFJzRe 新しく作るスクリプトに関してはもうバッチ使わないで欲しいよな
2021/04/03(土) 08:10:54.91ID:GvC+rDGr
標準ではps1の実行権限ついてないから配布する場合はちょっと面倒なんだよね
2021/04/03(土) 09:26:04.03ID:inQlliUt
他人に使ってもらう必要がある奴はバッチにPowerShellを埋め込んで配布してる
https://www.pg-fl.jp/program/tips/ps1bat2.htm
https://www.pg-fl.jp/program/tips/ps1bat2.htm
2021/04/03(土) 10:15:30.26ID:1anAZoL9
ウィルスのような手口
2021/04/03(土) 10:55:18.98ID:sC0R2LUF
バッチだと悪さができないとでも?w
2021/04/03(土) 11:16:34.59ID:zA7glofo
1行batとの2ファイル構成が楽でいい
先人はよくもbatなんかを使い続けてきたものよな
先人はよくもbatなんかを使い続けてきたものよな
2021/04/03(土) 12:16:39.84ID:GvC+rDGr
>>94
その方法管理者権限必要だろ
その方法管理者権限必要だろ
2021/04/03(土) 12:35:34.20ID:1anAZoL9
インストールマニュアルとセットにして、正攻法で使って貰うのが一番だな
100デフォルトの名無しさん
2021/04/03(土) 13:31:57.32ID:vSOTAguS >>99
ガチガチに管理されたPCには無理な方法
ガチガチに管理されたPCには無理な方法
101デフォルトの名無しさん
2021/04/03(土) 13:47:46.96ID:1anAZoL9 ネット経由で持ってきたファイルだと、batファイルも実行不可能なのな
よくできてる
よくできてる
102デフォルトの名無しさん
2021/04/03(土) 13:55:06.60ID:PDe42KrN むしろガチガチに管理してくれれば個別にスクリプト実行なんてしなくて済むのに
103デフォルトの名無しさん
2021/04/03(土) 14:11:40.41ID:Bi+zSKdB batで済む事はbatが無難
済まない事はps1よりもexeが無難
済まない事はps1よりもexeが無難
104デフォルトの名無しさん
2021/04/03(土) 14:26:34.09ID:vSOTAguS >>101
ZoneIDのセキュリティブロックのことなら、イントラネットや信頼されたサイトだと問題ない
ZoneIDのセキュリティブロックのことなら、イントラネットや信頼されたサイトだと問題ない
105デフォルトの名無しさん
2021/04/03(土) 14:32:21.88ID:1anAZoL9 自分の別のPCからteamsのファイル共有で持ってきただけなんだけどね
106デフォルトの名無しさん
2021/04/03(土) 15:18:17.29ID:sC0R2LUF >>98
ExecutionPolicy の話?
なら、-Command 使ってるから要らんよ
他にもバイパスする方法は色々あるし
https://blog.netspi.com/15-ways-to-bypass-the-powershell-execution-policy/
ExecutionPolicy の話?
なら、-Command 使ってるから要らんよ
他にもバイパスする方法は色々あるし
https://blog.netspi.com/15-ways-to-bypass-the-powershell-execution-policy/
107デフォルトの名無しさん
2021/04/03(土) 20:22:37.90ID:1+c+Mqlb -Scope CurrentUser なら権限いらないんじゃね
108デフォルトの名無しさん
2021/04/03(土) 21:42:59.31ID:pdE0Ehe0 PwerShell はファイル行数を取得しようとうっかり wc -l ファイルパス を呼ぶと延々と戻ってこない
109デフォルトの名無しさん
2021/04/04(日) 14:18:40.58ID:wP1wKXuq > Get-Command wc
Get-Command : 用語 'wc' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されま
せん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してく
ださい。
Get-Command : 用語 'wc' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されま
せん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してく
ださい。
110デフォルトの名無しさん
2021/04/04(日) 14:52:39.08ID:GCV7dd01 >>108
即座にエラー出るけどな
即座にエラー出るけどな
111デフォルトの名無しさん
2021/04/04(日) 15:36:10.86ID:/BDkV6c4 >>109,110
失礼。 書き間違えた。wc はGit for Windowsに付属のwc.exeのこと。
正しくは以下のとおり。
cat ファイルパス | wc -l
catが遅いのかパイプが遅いのか両方なのか。
失礼。 書き間違えた。wc はGit for Windowsに付属のwc.exeのこと。
正しくは以下のとおり。
cat ファイルパス | wc -l
catが遅いのかパイプが遅いのか両方なのか。
112デフォルトの名無しさん
2021/04/04(日) 15:41:20.32ID:BHN4NYpU cygwinやmsysだとか、c:直下に入りたがるintel系のコンパイラとか、あちこちにパス通してると遅くなった気がする
ハッシュとかしてないんだろうか?する方法あったら知りたい
ハッシュとかしてないんだろうか?する方法あったら知りたい
113デフォルトの名無しさん
2021/04/04(日) 15:43:52.16ID:BHN4NYpU とりあえずパスの先の方に移してみたら、win/unix-likeで同名コマンド結構あるので衝突気にしないならだが
114デフォルトの名無しさん
2021/04/04(日) 15:45:18.85ID:/BDkV6c4 >>112
cat はcat.exeじゃなくてGet-Contentのaliasでした
wc -l ファイルパス は普通に速いからwc.exeの問題でもない
よって Get-Contentまたはパイプの問題ってことになりそう
cat はcat.exeじゃなくてGet-Contentのaliasでした
wc -l ファイルパス は普通に速いからwc.exeの問題でもない
よって Get-Contentまたはパイプの問題ってことになりそう
115デフォルトの名無しさん
2021/04/04(日) 15:53:23.09ID:/BDkV6c4 Get-Contentのcatだけじゃなくて cat.exe も遅いのか判断しようにもリダイレクトやパイプが関係してきて計時できない
116デフォルトの名無しさん
2021/04/04(日) 15:58:56.72ID:2OR59bwQ concatenateの略だということはもう忘れられている
117デフォルトの名無しさん
2021/04/04(日) 16:00:48.51ID:BHN4NYpU >>114
gcは何も言わなければStringのObject[]を返すと思うので、ストリームを期待しているだろうwcの移植に渡すのは気持ち悪い感じがするぞ(そのwc.exeを持ってないので推測だが
-bytestreamやら-rawやら色々オプションあるので、適切なのを探そう
パイプのバッファリングもstdbufに頼るlinuxよりは柔軟なので、もし駄目ならそっち方面調べてみて
gcは何も言わなければStringのObject[]を返すと思うので、ストリームを期待しているだろうwcの移植に渡すのは気持ち悪い感じがするぞ(そのwc.exeを持ってないので推測だが
-bytestreamやら-rawやら色々オプションあるので、適切なのを探そう
パイプのバッファリングもstdbufに頼るlinuxよりは柔軟なので、もし駄目ならそっち方面調べてみて
118デフォルトの名無しさん
2021/04/04(日) 16:07:02.09ID:BHN4NYpU 面倒でもあるけどなー
119デフォルトの名無しさん
2021/04/04(日) 16:22:26.07ID:oGhQpAP5 catは猫被ってるからな
(cat .profile)[-1]
(cat .profile)[-1]
120デフォルトの名無しさん
2021/04/04(日) 17:39:37.67ID:2IYRpr9r >>112
ハッシュするって何?
ハッシュするって何?
121デフォルトの名無しさん
2021/04/04(日) 18:05:16.10ID:S6//fvIQ >>120
一部のシェルではコマンドとコマンドパスの対応をハッシュテーブルで管理して高速化を図ってるものがある
なのでサーチパスを追加したりコマンドを追加したらrehashコマンドでハッシュテーブルを再構築する必要がある
って話じゃね?
一部のシェルではコマンドとコマンドパスの対応をハッシュテーブルで管理して高速化を図ってるものがある
なのでサーチパスを追加したりコマンドを追加したらrehashコマンドでハッシュテーブルを再構築する必要がある
って話じゃね?
122デフォルトの名無しさん
2021/04/04(日) 18:08:31.30ID:Oo+bypI+ ほほぅ。
123デフォルトの名無しさん
2021/04/04(日) 19:21:56.56ID:0E2xLu47 うちは6885行のtxtでGet-Contentもcat.exeも体感差はないな。しかしPSのパイプは遅い
PS> foreach ($i in (1..5)) {(Measure-Command { Get-Content hoge.txt | wc -l }).TotalMilliseconds}
2959.9704
3016.5222
3007.6643
3010.2928
3009.264
PS> foreach ($i in (1..5)) {(Measure-Command { cat.exe hoge.txt | wc -l }).TotalMilliseconds}
2908.5588
2900.6436
2905.2317
2962.6119
2895.1269
PS> foreach ($i in (1..5)) {(Measure-Command { wc -l hoge.txt }).TotalMilliseconds}
62.3373
61.1564
78.0376
62.6787
61.2903
PS> foreach ($i in (1..5)) {(Measure-Command { Get-Content hoge.txt | wc -l }).TotalMilliseconds}
2959.9704
3016.5222
3007.6643
3010.2928
3009.264
PS> foreach ($i in (1..5)) {(Measure-Command { cat.exe hoge.txt | wc -l }).TotalMilliseconds}
2908.5588
2900.6436
2905.2317
2962.6119
2895.1269
PS> foreach ($i in (1..5)) {(Measure-Command { wc -l hoge.txt }).TotalMilliseconds}
62.3373
61.1564
78.0376
62.6787
61.2903
124デフォルトの名無しさん
2021/04/04(日) 19:22:33.43ID:0E2xLu47 bash> time (cat hoge.txt | wc -l)
6885
real 0m0.047s
user 0m0.060s
sys 0m0.030s
bash> time wc -l hoge.txt
6885 hoge.txt
real 0m0.016s
user 0m0.030s
sys 0m0.031s
6885
real 0m0.047s
user 0m0.060s
sys 0m0.030s
bash> time wc -l hoge.txt
6885 hoge.txt
real 0m0.016s
user 0m0.030s
sys 0m0.031s
125デフォルトの名無しさん
2021/04/04(日) 20:38:15.51ID:DK2CM63v そもそもそのwc.exeってファイル引数とか取ってくれないの?
126デフォルトの名無しさん
2021/04/04(日) 20:48:48.02ID:wHZAJdLa PowerShellでファイルの行数を知りたいなら
Get-Content ファイルパス | Measure-Object -Line
Measure-Object
https://docs.microsoft.com/ja-jp/previous-versions/dd315251(v=technet.10)
-Line
入力オブジェクトの行数をカウントします。
Get-Content ファイルパス | Measure-Object -Line
Measure-Object
https://docs.microsoft.com/ja-jp/previous-versions/dd315251(v=technet.10)
-Line
入力オブジェクトの行数をカウントします。
127デフォルトの名無しさん
2021/04/04(日) 20:54:21.66ID:7FHk/GbQ128デフォルトの名無しさん
2021/04/04(日) 20:57:30.83ID:7FHk/GbQ あと一行毎に読み込んで処理するような作業でなければ、-readcount を大きく取れば比例して速くなるかと
129デフォルトの名無しさん
2021/04/04(日) 21:53:57.59ID:BHN4NYpU 完全に同じ物かは分からんが、一般的なwcコマンドはファイル引数取るね
わざわざgcでメモリに読み込んで渡すという奇怪なことはしなくていいと思う
行じゃなくて単語を数えるなら-Delimiterでよしなに分割してCount 属性見るとか
ただ、生gcで全部メモリに載せて属性見るのはスケーラブルでない事に注意
わざわざgcでメモリに読み込んで渡すという奇怪なことはしなくていいと思う
行じゃなくて単語を数えるなら-Delimiterでよしなに分割してCount 属性見るとか
ただ、生gcで全部メモリに載せて属性見るのはスケーラブルでない事に注意
130デフォルトの名無しさん
2021/04/04(日) 22:07:08.65ID:BHN4NYpU -Delimiterに空白扱いしたい文字を渡すだけではちゃんと連続スペースを圧縮してくれるかとか怪しいので、やめといたほうがいいか
せっかくwc.exeがあるんだから任せるのが無難
せっかくwc.exeがあるんだから任せるのが無難
131デフォルトの名無しさん
2021/04/07(水) 05:39:22.19ID:vrmwo0xd オワコン利用者が宗教がかってくるのはどんな分野でも似た感じだね
132デフォルトの名無しさん
2021/04/07(水) 12:11:53.76ID:qt/+ncLt なんでや、perl関係ないやろ
133デフォルトの名無しさん
2021/04/07(水) 21:20:44.96ID:MHznIgE8 HTMLファイルを[xml]に変換して $obj.html.bodyとか参照したいんですが、
↓のサイトで紹介されてる方法
https://win.just4fun.biz/?PowerShell/HTMLのtableタグをスクレイピング
$obj = [xml](Get-Content ファイル名)
この方法ではタグが対応してないとエラーが出てしまいます。素のHTMLなので当然なのですが。
タグが対応してないHTML前提で何か良い方法ありますか。
↓のサイトで紹介されてる方法
https://win.just4fun.biz/?PowerShell/HTMLのtableタグをスクレイピング
$obj = [xml](Get-Content ファイル名)
この方法ではタグが対応してないとエラーが出てしまいます。素のHTMLなので当然なのですが。
タグが対応してないHTML前提で何か良い方法ありますか。
134デフォルトの名無しさん
2021/04/07(水) 23:40:53.08ID:Y4NtoFD8 Powershellで時間だけの計算の方法を教えてください。
$s=((New-TimeSpan -Hours 50 -Minutes 35) + (New-TimeSpan -Hours 1 -Minutes 25)).TotalSeconds
$ts =[timespan]::FromSeconds($s)
("{0:hh\:mm\:ss}" -f $ts)
ググった結果ここまではいきついたのですが、24時間を超えると、桁が日に上がってしまいます。
24時間を超えた場合でも、25:00や、123:35のようにする方法を教えてください。
また、もう少し楽な書き方Excelライクに、10:15 + 20:45 = 31:00、みたいな楽な書き方があったら教えて下さい。
$s=((New-TimeSpan -Hours 50 -Minutes 35) + (New-TimeSpan -Hours 1 -Minutes 25)).TotalSeconds
$ts =[timespan]::FromSeconds($s)
("{0:hh\:mm\:ss}" -f $ts)
ググった結果ここまではいきついたのですが、24時間を超えると、桁が日に上がってしまいます。
24時間を超えた場合でも、25:00や、123:35のようにする方法を教えてください。
また、もう少し楽な書き方Excelライクに、10:15 + 20:45 = 31:00、みたいな楽な書き方があったら教えて下さい。
135デフォルトの名無しさん
2021/04/08(木) 04:25:58.89ID:kPGnX96o >>129
7z -e -so 2021-04-01.log.zip | wc -l
みたいな事もやりたいのかも。わざわざパイプにしてるって事は
それにしてもPowerShellは数字で始まるコマンドはそのままじゃダメなのか
&7zだとイケるけど…癖のあるシェルですな
7z -e -so 2021-04-01.log.zip | wc -l
みたいな事もやりたいのかも。わざわざパイプにしてるって事は
それにしてもPowerShellは数字で始まるコマンドはそのままじゃダメなのか
&7zだとイケるけど…癖のあるシェルですな
136デフォルトの名無しさん
2021/04/11(日) 22:42:10.00ID:2GAqbccY137デフォルトの名無しさん
2021/04/11(日) 22:52:32.66ID:2GAqbccY $ts = [timespan]'10:15' + [timespan]'20:45'
'{0:00}:{1:00}' -f $ts.TotalHours, $ts.Minutes
こんな感じ
'{0:00}:{1:00}' -f $ts.TotalHours, $ts.Minutes
こんな感じ
138デフォルトの名無しさん
2021/04/12(月) 21:18:29.84ID:6c3X7Cef139デフォルトの名無しさん
2021/04/12(月) 22:12:38.04ID:zW+k7vD0 質問したいんだけど、だれか教えて下さい。
外部アプリによるリネームの追跡をしたいんです。
リネームをする外部アプリで、リネームされたファイル名を拾いたいんです。
詳細
https://qiita.com/mtujikawa/questions/a0b4b36bc91585388cf2
だれか教えて下さい。
外部アプリによるリネームの追跡をしたいんです。
リネームをする外部アプリで、リネームされたファイル名を拾いたいんです。
詳細
https://qiita.com/mtujikawa/questions/a0b4b36bc91585388cf2
だれか教えて下さい。
140デフォルトの名無しさん
2021/04/12(月) 23:31:54.87ID:rYIhIPBW141デフォルトの名無しさん
2021/04/13(火) 17:45:40.70ID:fWoCeTea vbs速いって言うけどUTF8扱うようになる(ADODBでゴニョゴニョ)と
powershellが逆転するね
powershellが逆転するね
142デフォルトの名無しさん
2021/04/13(火) 17:58:30.89ID:u1AIe1VJ >>141
そうなんですか
そうなんですか
143デフォルトの名無しさん
2021/04/13(火) 19:01:37.43ID:HcUSKQeT $ts = [timespan]'0:15' + [timespan]'0:40' ; '{0:00}:{1:00}' -f $ts.TotalHours, $ts.Minutes
01:55
01:55
144デフォルトの名無しさん
2021/04/18(日) 15:36:47.84ID:d2aF4PUW 数値を強制的に2桁にする方法ですが、
3桁以上は上位2桁、1桁の場合は右詰めで0追加
とするためにはどうすればいいでしょうか?
整数以外の入力は考えなくて大丈夫です
(例)
12345 → 12
67 → 67
8 → 80
3桁以上は上位2桁、1桁の場合は右詰めで0追加
とするためにはどうすればいいでしょうか?
整数以外の入力は考えなくて大丈夫です
(例)
12345 → 12
67 → 67
8 → 80
145デフォルトの名無しさん
2021/04/18(日) 16:03:54.38ID:NvNv7S6I if文で分岐して10をかけたり割ったりするだけじゃだめなんですか?
146デフォルトの名無しさん
2021/04/18(日) 16:34:37.11ID:Y0OFPTQB 12345,67,8|%{[math]::floor($_/[math]::pow(10,[math]::floor([math]::log10($_))-1))}
147デフォルトの名無しさん
2021/04/18(日) 17:19:19.04ID:yV0lWVbT すごいのう
148デフォルトの名無しさん
2021/04/18(日) 17:26:13.82ID:okYCh92Q 無条件に最後に0を付けて左から2桁取ればいいのでは
149デフォルトの名無しさん
2021/04/18(日) 17:57:57.50ID:ZsDsAuud そんなんで表示されても判らんけどな
150デフォルトの名無しさん
2021/04/18(日) 20:02:19.21ID:NvNv7S6I >>148
これだな
これだな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 吉本興業、令和ロマン・高比良くるまの契約終了を発表 オンラインカジノ問題から活動再開 ★2 [Ailuropoda melanoleuca★]
- 【芸能】30歳歌手、万博の野外ライブの写真を公開しネット騒然 1・6万人収容の会場が衝撃のスカスカ… 「これ本番です」「実力不足」 [冬月記者★]
- 【移民】日本史上初めての中国人の大量移住が始まる ★4 [ぐれ★]
- 【話題】「都会を捨てて田舎に移住して幸せ!」その田舎、本当に田舎ですか? という問題★2 [ひぃぃ★]
- ダウンタウンのネット配信サービス、早くも収益に注目 月額1000円ならフォロワーの1%加入で「毎月1億円」…同期芸人は「うわぁ」 [jinjin★]
- 【宮城】「息子を殺した」と父親出頭、高1を殺害した疑いで逮捕 石巻 [Ailuropoda melanoleuca★]
- うつ病、肛門を刺激すると改善、日光浴と併用で高い効果、便秘がちな日本人に朗報 [249548894]
- 【悲報】「大阪万博はゴールデンウィーク中でもガラガラです😊」遂にこんな記事まで出る始末🥹 [616817505]
- 【実況】博衣こよりのえちえちホロRust🧪★3
- ネトウヨ👈この知性品性を放棄した存在になっちゃうのはなぜだ🤔? [941632843]
- 【独自】障害年金、不支給が倍増3万人に。24年度、幹部交代で厳格化か [354616885]
- 劇場版名探偵コナン