前スレ
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/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
これだな
これだな
151デフォルトの名無しさん
2021/04/18(日) 21:04:21.53ID:Y0OFPTQB その方が簡単だな。146は数値計算で済ませる思いつき
152デフォルトの名無しさん
2021/04/18(日) 21:53:28.24ID:a2J8UULJ >>149
分かるだろ
分かるだろ
153デフォルトの名無しさん
2021/04/18(日) 21:59:30.04ID:qI95yZS9 #/bin/sh
result=21
result2=3.1415
echo "$result * 10" | bc | cut -c 1-2 # 実行結果:21
echo "scale=5; $result2 * 10" | bc | cut -c 1-2 # 実行結果:31
result=21
result2=3.1415
echo "$result * 10" | bc | cut -c 1-2 # 実行結果:21
echo "scale=5; $result2 * 10" | bc | cut -c 1-2 # 実行結果:31
154デフォルトの名無しさん
2021/04/19(月) 08:23:13.80ID:tyk9bMXM 中古シェルだとたかが数値計算すらbcなんてコマンドをわざわざ使わなきゃいけないのか
しかも結果が文字列ってアホすぎ
しかも結果が文字列ってアホすぎ
155デフォルトの名無しさん
2021/04/19(月) 08:49:51.52ID:Igt3l5xr bashって外部コマンド使わずに純粋にシェルの機能だけだとまともな事出来ないの?
156デフォルトの名無しさん
2021/04/19(月) 15:00:37.86ID:5FdprbjY 12345,67,8|% {($_ * 10).ToString().SubString(0,2).ToInt32($null)}
157デフォルトの名無しさん
2021/04/19(月) 15:52:01.50ID:HBn8astV 分かりやすい
158デフォルトの名無しさん
2021/04/19(月) 17:18:39.52ID:J8N2amqC テキストファイルを読み込んで置換したりしているのですが、改行コードがマッチしません
function test($file){
$content = Get-Content -Encoding UTF8 $file
$content = $content -replace "`n", "HOGE"
$content
}
これで改行をHOGEにしようとしてもできません
`n を `r`n や \n や \r\n にしてもだめです(テキストエディタで見るとエンコードはUTF8、改行はCR+LFとなっています)
タブ文字は `t でできています
どのような理由が考えられるでしょうか?
function test($file){
$content = Get-Content -Encoding UTF8 $file
$content = $content -replace "`n", "HOGE"
$content
}
これで改行をHOGEにしようとしてもできません
`n を `r`n や \n や \r\n にしてもだめです(テキストエディタで見るとエンコードはUTF8、改行はCR+LFとなっています)
タブ文字は `t でできています
どのような理由が考えられるでしょうか?
159デフォルトの名無しさん
2021/04/19(月) 17:22:33.20ID:UiFLtBUU 改行コードと文字コードは、もう一度地球をやり直すしか
160デフォルトの名無しさん
2021/04/19(月) 17:32:10.70ID:J8N2amqC ちなみに同じテキストファイルは
秀丸エディタだと普通に \n で検索、置換ができています
秀丸エディタだと普通に \n で検索、置換ができています
161デフォルトの名無しさん
2021/04/19(月) 18:06:13.50ID:yrdOfXex >>155
この程度はbashでできるけど外部コマンドの橋渡しが基本。プログラム言語じゃないしな
for i in 12345 67 8; do y=${i}0; y=${y:0:2}; echo $y; done
変数は$(())で数値計算できる
PowerShell
12345,67,8 | %{[int]([string]$_+0).substring(0,2)}
156は古いPowerShellだとエラーになる([System.String]にToInt32がない)
この程度はbashでできるけど外部コマンドの橋渡しが基本。プログラム言語じゃないしな
for i in 12345 67 8; do y=${i}0; y=${y:0:2}; echo $y; done
変数は$(())で数値計算できる
PowerShell
12345,67,8 | %{[int]([string]$_+0).substring(0,2)}
156は古いPowerShellだとエラーになる([System.String]にToInt32がない)
162デフォルトの名無しさん
2021/04/19(月) 18:32:19.33ID:nuzEjzy+ >>158
$content = Get-Content $file -Raw -Encoding UTF8
$content = Get-Content $file -Raw -Encoding UTF8
163デフォルトの名無しさん
2021/04/19(月) 18:34:53.66ID:nsBabrZy ワロタ
164デフォルトの名無しさん
2021/04/19(月) 18:47:03.91ID:qG+FkDTL >>158
> どのような理由が考えられるでしょうか?
Get-Contentは改行で区切られた行を配列にして返す
なので返された内容には改行は無いよ
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12183750652
> どのような理由が考えられるでしょうか?
Get-Contentは改行で区切られた行を配列にして返す
なので返された内容には改行は無いよ
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12183750652
165デフォルトの名無しさん
2021/04/19(月) 18:54:06.68ID:PAGvXSVw >>144は、結果の数値に応じて場合分けするのに
最初の2桁を使いたいからその方法を聞いてるの?
最初の2桁を使いたいからその方法を聞いてるの?
166デフォルトの名無しさん
2021/04/19(月) 19:31:30.77ID:d6EDPzDg 148が言ってるみたいに文字列で処理した方が簡単かなぁ
PS C:\> $x = 1..5 |% { Get-Random -min 1 -max 20 }
PS C:\> $x
4
10
6
17
12
PS C:\> $x |% { -join ('{0}0' -f $_)[0..1] }
40
10
60
17
12
PS C:\> $x = 1..5 |% { Get-Random -min 1 -max 20 }
PS C:\> $x
4
10
6
17
12
PS C:\> $x |% { -join ('{0}0' -f $_)[0..1] }
40
10
60
17
12
167デフォルトの名無しさん
2021/04/19(月) 19:31:51.71ID:J8N2amqC >>162 でできました!
168デフォルトの名無しさん
2021/04/22(木) 12:55:52.92ID:dQFy3Puj bash/linux使っててpwsh初めましただけど
env:とかalias:とか疑似ファイルシステムみたいに潜れるの楽しい
-からの補完でロングオプション(パラメータ?)出てヘルプすら見ずとも取り敢えず動くのが素敵
もちろんオンラインヘルプもman以上に充実で素晴らしい
困った方も挙げとく
折角両方のコマンド使えるのでcatだけ本物に置き換えてる、pwshのgcとwinのtypeはそのまま
ただcdはbashビルトインで実体が無いので困った
子bashでglobal宣言しても$env:CDPATHに反映されてない?
何かワークアラウンドはないでしょうか?ヘビーユーザなので寂しい
勉強も兼ねてcdをpwshで書くのもいいかもしれないけど
env:とかalias:とか疑似ファイルシステムみたいに潜れるの楽しい
-からの補完でロングオプション(パラメータ?)出てヘルプすら見ずとも取り敢えず動くのが素敵
もちろんオンラインヘルプもman以上に充実で素晴らしい
困った方も挙げとく
折角両方のコマンド使えるのでcatだけ本物に置き換えてる、pwshのgcとwinのtypeはそのまま
ただcdはbashビルトインで実体が無いので困った
子bashでglobal宣言しても$env:CDPATHに反映されてない?
何かワークアラウンドはないでしょうか?ヘビーユーザなので寂しい
勉強も兼ねてcdをpwshで書くのもいいかもしれないけど
169デフォルトの名無しさん
2021/04/22(木) 12:59:06.25ID:dQFy3Puj 行/列(オブジェクト/プロパティ)をピボットテーブルみたいにグリグリ出来るのも楽しいね
そういうインタラクティブデータ分析はpython/pandasでやってたけど、pwshの方が楽かもしれない
そういうインタラクティブデータ分析はpython/pandasでやってたけど、pwshの方が楽かもしれない
170デフォルトの名無しさん
2021/04/22(木) 13:13:23.93ID:fmuwQogZ 他の言語で書いたらかなりの分量になるところを、psだと異様に短くなる
というケースが楽しい
というケースが楽しい
171デフォルトの名無しさん
2021/04/22(木) 13:22:29.78ID:dQFy3Puj echoしなくていいとか、?、%、&(call operator)、$_とか使いたくなりますね
perl臭がしてくるけど
perl臭がしてくるけど
172デフォルトの名無しさん
2021/04/22(木) 13:30:39.34ID:dQFy3Puj かっちり書けばほぼC#なのもいいところ
前からネットでサンプルコードちらほら見かけてたけど、そういうのはエイリアス無し&キャメルケースの厳つい見た目なので敬遠してしまってた
小文字でも構わないし、標準エイリアス&短縮規約(Get-Verb)あるんだって入れるまで知らなかった
前からネットでサンプルコードちらほら見かけてたけど、そういうのはエイリアス無し&キャメルケースの厳つい見た目なので敬遠してしまってた
小文字でも構わないし、標準エイリアス&短縮規約(Get-Verb)あるんだって入れるまで知らなかった
173デフォルトの名無しさん
2021/04/23(金) 09:46:07.10ID:+Mo8SLKI pwsh慣れた後にbash勉強したら面倒なんだけどみんなどう思ってる?
174デフォルトの名無しさん
2021/04/23(金) 10:01:56.87ID:sYoV5rep175デフォルトの名無しさん
2021/04/23(金) 10:48:54.99ID:lAPyDVC2 >>173
bashから入ってPS勉強中の俺には
ログインシェルとしては面倒
スクリプトとしては便利
と思ってる。本気で使おうと思ってないから効率的な使い方知らんだけだと思うが、メンバ確認でgm叩くのが面倒lessがないのも辛い
この時点でかなり億劫
スクリプトはどーせvscode使うからあまり気にならないんだが…
bashから入ってPS勉強中の俺には
ログインシェルとしては面倒
スクリプトとしては便利
と思ってる。本気で使おうと思ってないから効率的な使い方知らんだけだと思うが、メンバ確認でgm叩くのが面倒lessがないのも辛い
この時点でかなり億劫
スクリプトはどーせvscode使うからあまり気にならないんだが…
176デフォルトの名無しさん
2021/04/23(金) 11:06:13.19ID:sgIhdz3d 何でもpsでやろう、という気にはならないかな
psが向いてる用途にぴったりはまると気持ちいい
psが向いてる用途にぴったりはまると気持ちいい
177デフォルトの名無しさん
2021/04/23(金) 12:01:02.99ID:tWGuVFO6 非表示オプションにしてもコンソールが一瞬表示される問題さえ解決すればそのまま納品物にできるんだがなあ
今はPS2EXEでEXEにして納品してる
今はPS2EXEでEXEにして納品してる
178デフォルトの名無しさん
2021/04/23(金) 13:14:07.27ID:qwQTUI3N >>175
lessはbashの一部ではなくてコマンドではあるけど気持ちは分かるかな
自分はlinux環境でもbatやfd-find、ripgrepに切り替えててwindowsでもchocolateyで導入してるんで、同じ環境になってきました
lessはbashの一部ではなくてコマンドではあるけど気持ちは分かるかな
自分はlinux環境でもbatやfd-find、ripgrepに切り替えててwindowsでもchocolateyで導入してるんで、同じ環境になってきました
179デフォルトの名無しさん
2021/04/23(金) 15:21:26.04ID:cVnO9LUt Powershell(でなくてもいいがwindowsで)で「tail -f」したい。。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- パラドゲーやってる人に聞きたい総理の発言がそのまま国家意思になるって中世かよ [279479878]
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- かしこいワンコっていうVtuberの子知ってる?
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- 俺が「う~寒い寒い」って言いながらお前らが寝てるお布団に潜り込んだら…
