前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/
次スレは>>980が立ててね!!
探検
PowerShell -Part 5
■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
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」したい。。
180デフォルトの名無しさん
2021/04/23(金) 15:43:23.54ID:qwQTUI3N181デフォルトの名無しさん
2021/04/23(金) 15:49:10.77ID:qwQTUI3N あとはget-contentにwaitオプションつけるとか
baretailは大きなサイズのファイルでもサクサク開けるのでビュワーとしても使える
baretailは大きなサイズのファイルでもサクサク開けるのでビュワーとしても使える
182デフォルトの名無しさん
2021/04/23(金) 16:04:17.49ID:S2TaYi95 Unixツールのtail.exeを入れてるけど
183デフォルトの名無しさん
2021/04/23(金) 17:48:18.62ID:V+AIjWKb ちょっと昔まではバッチとの比較がほとんどだったのに
時代の流れを感じる
時代の流れを感じる
184デフォルトの名無しさん
2021/04/23(金) 18:49:11.49ID:dmQwGyWy Git for Windows入れたらtail.exeとかも使えるようになる
185デフォルトの名無しさん
2021/04/23(金) 21:13:11.15ID:X1KZalWz param()と書くだけで
自分で書いたスクリプトもちゃんとパラメータ補完してくれるの偉い
自分の書いたの程覚えられない()
先頭複数行コメントがget-helpできるのも便利そう、思うだけでやってないが
bash/readlineもコマンド補完に力入れてる方だけど、コマンド毎のデータは誰かが手打ちしなきゃならないし、ちょっと仕様が複雑すぎる
まあpwshもpsとcmdlet以外はそうだけど、#!/usr/bin/pwsh、param、startするだけのラッパ書けばよい
ところでwslの人はポータブルにps1書けるの?シバンを認識するかとか、認識にps1拡張子必要かとか
まだ配布できる完成度じゃないけど、折角ならポータブルなスクリプトを書きたい
自分で書いたスクリプトもちゃんとパラメータ補完してくれるの偉い
自分の書いたの程覚えられない()
先頭複数行コメントがget-helpできるのも便利そう、思うだけでやってないが
bash/readlineもコマンド補完に力入れてる方だけど、コマンド毎のデータは誰かが手打ちしなきゃならないし、ちょっと仕様が複雑すぎる
まあpwshもpsとcmdlet以外はそうだけど、#!/usr/bin/pwsh、param、startするだけのラッパ書けばよい
ところでwslの人はポータブルにps1書けるの?シバンを認識するかとか、認識にps1拡張子必要かとか
まだ配布できる完成度じゃないけど、折角ならポータブルなスクリプトを書きたい
186デフォルトの名無しさん
2021/04/24(土) 00:07:18.71ID:zsZadCrK187デフォルトの名無しさん
2021/04/24(土) 16:21:27.70ID:eHVgMjKX188デフォルトの名無しさん
2021/04/24(土) 16:42:22.65ID:w/nYR7g5 windowsの内臓に手を突っ込むようなのが向いてる
189デフォルトの名無しさん
2021/04/24(土) 17:03:59.31ID:BpMFGApW windowsにプリインストールされてる対話環境もあるスクリプト言語っていう意味では向いてる、のかな???
190デフォルトの名無しさん
2021/04/24(土) 19:56:10.43ID:t2qu3ovB 正直wikdows周りの事には使ってない唐突にcosとか呼べるので(i)pythonから移行した
オブジェクトを置き去りにするとテーブル表示になって、ピボットテーブルみたいにグリグリできるのでデータ分析にもオッケー、パイプで書けるのも素直
csv, json, xmlもそのまま読み書きできる
高度な関数や重い行列計算はさすがにOctaveとかに投げるが
学習コスト下げたい人はR, Python, Octaveで自己完結した方がいいかも
オブジェクトを置き去りにするとテーブル表示になって、ピボットテーブルみたいにグリグリできるのでデータ分析にもオッケー、パイプで書けるのも素直
csv, json, xmlもそのまま読み書きできる
高度な関数や重い行列計算はさすがにOctaveとかに投げるが
学習コスト下げたい人はR, Python, Octaveで自己完結した方がいいかも
191デフォルトの名無しさん
2021/04/24(土) 19:59:04.19ID:t2qu3ovB Out-GridView(ogv)が個人的にキラーcmdlet
あとシェルとしても使える()
あとシェルとしても使える()
192デフォルトの名無しさん
2021/04/24(土) 20:01:35.65ID:t2qu3ovB 偏った見方なのは承知してるけど、インタラクティブにエクセル職人的な事やりたいなら、現状で最適なソフトかなと
193デフォルトの名無しさん
2021/04/24(土) 20:12:31.38ID:w/nYR7g5 PC起動したら、起動時刻と前回立ち下げ時刻をサーバのエクセルに追記させる
みたいなことを、他の言語でやろうとしたら大変
みたいなことを、他の言語でやろうとしたら大変
194デフォルトの名無しさん
2021/04/24(土) 22:11:52.14ID:zsZadCrK >>191
たしかにogvはお手軽に結果一覧するには超便利ですね
たしかにogvはお手軽に結果一覧するには超便利ですね
195187
2021/04/24(土) 23:12:45.35ID:eHVgMjKX 皆さんありがとうございます
196デフォルトの名無しさん
2021/04/25(日) 05:08:51.91ID:Xjg3V2+s お知恵をお貸し頂きたく…。
Excnange Online に接続して Get で出力したんですが、
波括弧{}でくくられた情報が wrap しても out-file してもどうしても省略されます。
これを全部表示する方法をどなたかご存じでしょうか…。
Excnange Online に接続して Get で出力したんですが、
波括弧{}でくくられた情報が wrap しても out-file してもどうしても省略されます。
これを全部表示する方法をどなたかご存じでしょうか…。
197196
2021/04/25(日) 05:11:37.83ID:Xjg3V2+s 言葉足らずでした。
{192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,...}
みたいに途中で切れてしまうアレです…。
{192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,...}
みたいに途中で切れてしまうアレです…。
198デフォルトの名無しさん
2021/04/25(日) 05:32:42.88ID:2+KF94a+ Out-GridVewもいいけどfzfをPowerShellで使えるようにしたほうが一貫性があっていいと思うけど
199デフォルトの名無しさん
2021/04/25(日) 14:29:14.34ID:Jy5Y44+Q200デフォルトの名無しさん
2021/04/25(日) 18:02:45.39ID:Vn29MKgq >>197
exchange onlineを触ったことが無いのでお困りの内容が正確にはわかってないのですが、対象のコレクションに対してforeach-objectするのはうまくいかないんでしょうか?
cmdletを記載してくれればもう少し分かるかも
exchange onlineを触ったことが無いのでお困りの内容が正確にはわかってないのですが、対象のコレクションに対してforeach-objectするのはうまくいかないんでしょうか?
cmdletを記載してくれればもう少し分かるかも
201デフォルトの名無しさん
2021/04/25(日) 18:53:01.63ID:s++hWM3P テキストファイルの空白行を連番で
[1]
[2]
のように置換するにはどうするといいでしょうか???
[1]
[2]
のように置換するにはどうするといいでしょうか???
202デフォルトの名無しさん
2021/04/25(日) 19:15:47.03ID:byqvN0Ft >>201
$i=1
foreach ($l in Get-Content test.txt) {
if ($l.Length -eq 0){
Write-Output ("[" + $i.ToString() + "]")
$i=$i+1
}else{
$l
}
}
こういう感じでいかがでしょうか。
あんまりうまくないと思いますが・・・。
$i=1
foreach ($l in Get-Content test.txt) {
if ($l.Length -eq 0){
Write-Output ("[" + $i.ToString() + "]")
$i=$i+1
}else{
$l
}
}
こういう感じでいかがでしょうか。
あんまりうまくないと思いますが・・・。
203デフォルトの名無しさん
2021/04/25(日) 19:22:08.51ID:/7sF+uPH >>201
下手だけどワンライナーだとこんな感じ
$i=0;Get-Content test.txt|ForEach-Object {if($_ -eq ""){$i++;"[$i]"}else{$_}}
下手だけどワンライナーだとこんな感じ
$i=0;Get-Content test.txt|ForEach-Object {if($_ -eq ""){$i++;"[$i]"}else{$_}}
204デフォルトの名無しさん
2021/04/25(日) 20:28:53.03ID:s++hWM3P なるほど
205デフォルトの名無しさん
2021/04/26(月) 01:03:37.54ID:BYmi+i0r >>196
Exchenge Online使ってないから入力や出力したい形式が分からないけど
$var | Out-File var.txt
だと表形式で長い値は省略されて
$var | Format-Table -Wrap | Out-File var.txt
だと省略されずに保存される
Exchenge Online使ってないから入力や出力したい形式が分からないけど
$var | Out-File var.txt
だと表形式で長い値は省略されて
$var | Format-Table -Wrap | Out-File var.txt
だと省略されずに保存される
206デフォルトの名無しさん
2021/04/26(月) 17:17:59.89ID:iZOPqzuA Get-Contetは何で標準入力を受け取らないんだろう?
wshはできたのにな
wshはできたのにな
207デフォルトの名無しさん
2021/04/26(月) 22:25:20.75ID:a3SG/c+a 開発側がそんな機能使ってないからだろう
208デフォルトの名無しさん
2021/04/26(月) 23:42:37.65ID:oRZNh3Qz >>206
イメージ湧かないんですが、どういった使い方を想定されてるんでしょう?
イメージ湧かないんですが、どういった使い方を想定されてるんでしょう?
209デフォルトの名無しさん
2021/04/26(月) 23:57:32.20ID:3GJ+33uE たし蟹
210デフォルトの名無しさん
2021/04/27(火) 00:21:38.16ID:UNWScvKY catみたいに標準入力の結果を吐いてほしいんじゃないの
PowerShellはシェルとしての使いやすさよりも直行性を重視してるところがあるので、単に設計思想の違いだろう
PowerShellはシェルとしての使いやすさよりも直行性を重視してるところがあるので、単に設計思想の違いだろう
211デフォルトの名無しさん
2021/04/27(火) 03:10:21.87ID:SJKbfdaZ 標準入力を受け取らない理由なんてないし、実際受け取るんだけども…
get-contentという名前から、何を入力として期待しているのか考えてみなよ
get-contentという名前から、何を入力として期待しているのか考えてみなよ
212デフォルトの名無しさん
2021/04/27(火) 06:30:59.80ID:Q96mKs6z PoweShellはWSLが普及したらオワコン化するってホント?
213デフォルトの名無しさん
2021/04/27(火) 08:35:24.00ID:5DBHgWrV >>211
「内容を取得せよ」という名前なんだからcatみたいに標準入力があれば標準入力の内容も出力してくれても別におかしくはないでしょ
PowerShellのget-contentに同様の機能があれば君も普通に使ってると思うぞ
とはいえ、あれば便利だからといって何でも入れたら神コマンド化するから、そこは直行性とのバランスで取捨選択した結果なんだろう
「内容を取得せよ」という名前なんだからcatみたいに標準入力があれば標準入力の内容も出力してくれても別におかしくはないでしょ
PowerShellのget-contentに同様の機能があれば君も普通に使ってると思うぞ
とはいえ、あれば便利だからといって何でも入れたら神コマンド化するから、そこは直行性とのバランスで取捨選択した結果なんだろう
214デフォルトの名無しさん
2021/04/27(火) 09:10:46.77ID:x4iH29Y2 その反応はアドバイスに対して論理が微妙じゃね
「『内容を取得せよ』という名前なんだから標準入力から受け取ったファイル名を元に内容を取り出す仕様でも別におかしくはないでしょ」っていうのもまんま成り立つよな
二通りの仕様が考えられるときにcatと同じじゃないのはおかしいというのは先入観に引きずられすぎ
ゼロベースで考えたらGet-Contentの今の仕様は妥当だと思う
Poweshellで標準入力を標準出力にパイプしたいときにcatじゃなきゃいけない理由ってあるの?
「『内容を取得せよ』という名前なんだから標準入力から受け取ったファイル名を元に内容を取り出す仕様でも別におかしくはないでしょ」っていうのもまんま成り立つよな
二通りの仕様が考えられるときにcatと同じじゃないのはおかしいというのは先入観に引きずられすぎ
ゼロベースで考えたらGet-Contentの今の仕様は妥当だと思う
Poweshellで標準入力を標準出力にパイプしたいときにcatじゃなきゃいけない理由ってあるの?
215デフォルトの名無しさん
2021/04/27(火) 10:03:00.94ID:5DBHgWrV catは echo abc | cat x.txt - y.txt で x.txt と文字列 "abc" と y.txt を順に結合できる
同じことをpwshでやろうとすると少し頭使うだろう
pwshにはエイリアスにlsとかあったりするのに、MSがget-contentを設計する際にcatを全く意識せずゼロベースで考えたというのはさすがに普通に考えてありえない
意思を持ってcatと同じにしなかったのだろうし、別にそれが間違っているとは思わない
同じことをpwshでやろうとすると少し頭使うだろう
pwshにはエイリアスにlsとかあったりするのに、MSがget-contentを設計する際にcatを全く意識せずゼロベースで考えたというのはさすがに普通に考えてありえない
意思を持ってcatと同じにしなかったのだろうし、別にそれが間違っているとは思わない
216デフォルトの名無しさん
2021/04/27(火) 11:22:55.90ID:VpxSAxjv あー、concatinateとして使いたいってことか
普通のcatもその使い方しないから全然気づけなかった
普通のcatもその使い方しないから全然気づけなかった
217デフォルトの名無しさん
2021/04/27(火) 12:44:35.43ID:a/NQjOQm なるほどね、208の質問にそう答えてくれてればスムーズに話が進んでたと思うよ
直行性という意味ではjoinなどの結合操作だね
書き方に悩むのはどっちに慣れてるかってことでしかないと思う
歴史的経緯でこんがらがった過去のシェル環境達を負の遺産ごと継承するよりも改めて再整理したいって話と、わかりやすいエイリアスを付けてあげたいってのもまた別の話
直行性という意味ではjoinなどの結合操作だね
書き方に悩むのはどっちに慣れてるかってことでしかないと思う
歴史的経緯でこんがらがった過去のシェル環境達を負の遺産ごと継承するよりも改めて再整理したいって話と、わかりやすいエイリアスを付けてあげたいってのもまた別の話
218デフォルトの名無しさん
2021/04/27(火) 13:21:29.99ID:LEUYIDaT wshはできるの意味がさっぱり分からん
219デフォルトの名無しさん
2021/04/27(火) 13:45:18.43ID:P9G7ihch >>166
単項の-join -splitあるなんて知らなかった…
単項の-join -splitあるなんて知らなかった…
220デフォルトの名無しさん
2021/04/27(火) 14:42:03.79ID:y9F4OEgN get-contentで検索文字列をテキストから取得し変数に入れているのですが、
*検索文字1*,*検索文字2*
と変数に入れると何も返ってこなくなります。検索文字列が一つだけなら問題なにのですが…
変数 = テキストファイル
get-content パス $変数
です。カンマをエスケープさせるのかアスタリスクをエスケープさせるのかこんがらがってきました…
知見を下さい…
*検索文字1*,*検索文字2*
と変数に入れると何も返ってこなくなります。検索文字列が一つだけなら問題なにのですが…
変数 = テキストファイル
get-content パス $変数
です。カンマをエスケープさせるのかアスタリスクをエスケープさせるのかこんがらがってきました…
知見を下さい…
221デフォルトの名無しさん
2021/04/27(火) 14:55:56.07ID:y9F4OEgN >>220
変数使う所はget-childitemでした。
変数使う所はget-childitemでした。
222デフォルトの名無しさん
2021/04/27(火) 15:14:13.72ID:y9F4OEgN223デフォルトの名無しさん
2021/04/27(火) 20:30:55.10ID:8D7txu9u テキストの中身をカンマじゃなくて改行で区切ればそんな苦労しなくて済むぞ
あと余計なお世話だけどGet-ChildItemが手打ちで動くことは確認した?
パラメーターがちょい怪しい気がするんだが…
あと余計なお世話だけどGet-ChildItemが手打ちで動くことは確認した?
パラメーターがちょい怪しい気がするんだが…
224デフォルトの名無しさん
2021/04/27(火) 20:51:05.42ID:P9G7ihch >>220
リテラルではカンマで渡してるから配列にしないとダメみたいね
test.txtの内容:
*.jpg,*.png
$r = gc test.txt
gci パス\* -Include ($r -split ",")
パスがカレントフォルダなら
gci ($r -split ",")
または
gci .\* -Include ($r -split ",")
または
gci * -Include ($r -split ",")
リテラルではカンマで渡してるから配列にしないとダメみたいね
test.txtの内容:
*.jpg,*.png
$r = gc test.txt
gci パス\* -Include ($r -split ",")
パスがカレントフォルダなら
gci ($r -split ",")
または
gci .\* -Include ($r -split ",")
または
gci * -Include ($r -split ",")
225デフォルトの名無しさん
2021/04/28(水) 09:11:25.07ID:BmPpt58I なんかテキストベースの志向してる人多くない?
テキストベースのデータは最低限配列化して扱うもんじゃないの?
テキストベースのデータは最低限配列化して扱うもんじゃないの?
226デフォルトの名無しさん
2021/04/28(水) 10:37:10.61ID:mkVGlKi3 PowerShellで配列を明示的に使うのはダサいしハマりやすいよ
パイプに任せた方がいい
パイプに任せた方がいい
227デフォルトの名無しさん
2021/04/28(水) 11:05:06.60ID:DwQIIr/C 他のシェルではテキストベースが普通というかむしろpwshが異端だしなぁ
手段を選ばなけりゃpwshでもInvoke-Expression使えるし
手段を選ばなけりゃpwshでもInvoke-Expression使えるし
228デフォルトの名無しさん
2021/04/28(水) 15:44:13.18ID:6n3amPUA229デフォルトの名無しさん
2021/04/29(木) 12:08:07.23ID:1cDcYESD 略称としてはpwshが今公式に推されている?
しかしposh呼びしているMSドキュメントも多い
拡張子的にはps
pshとか収まり良いけど既にあったりして紛らわしい系?
しかしposh呼びしているMSドキュメントも多い
拡張子的にはps
pshとか収まり良いけど既にあったりして紛らわしい系?
230デフォルトの名無しさん
2021/04/29(木) 12:47:36.17ID:Gvkp+FCp 推すとかじゃなくPowerShell6から実行ファイル名がpwshになった
コマンドとしてpwshが正式名称
コマンドとしてpwshが正式名称
231デフォルトの名無しさん
2021/04/29(木) 12:58:06.09ID:h5Kbt4/j pwshへのリネームはとんでもない破壊的変更なわけだけど、今後どうするんだろうね
powershellをpwshのエイリアスにしたらそれこそ阿鼻叫喚だろうからそれもなさそう
5は凍結して、そのうちWindowsにデフォルトでは入らなくてオプションで入れるようになるんだろうか
powershellをpwshのエイリアスにしたらそれこそ阿鼻叫喚だろうからそれもなさそう
5は凍結して、そのうちWindowsにデフォルトでは入らなくてオプションで入れるようになるんだろうか
232デフォルトの名無しさん
2021/04/29(木) 13:49:20.18ID:zjFXGfaT 実行ファイルの名前以前にwindows由来のモジュールが分離されてインポート必須になってるから、移行するんであればスクリプトの修正は必須ですね
233デフォルトの名無しさん
2021/04/29(木) 16:15:10.36ID:BF1GEXOZ 複数バージョンの同居認めてるからその辺は問題にならないと思う
つーかログオンスクリプトで既にガンガン使ってるから5が標準で消えたら死ぬ
つーかログオンスクリプトで既にガンガン使ってるから5が標準で消えたら死ぬ
234デフォルトの名無しさん
2021/04/29(木) 16:25:44.14ID:1cDcYESD 6はapt経由で7-preview入れたら塗りつぶされたけど、大体互換だからかな?
とりあえず俺は問題起きてないしよしとしよう
とりあえず俺は問題起きてないしよしとしよう
235デフォルトの名無しさん
2021/04/29(木) 16:35:06.74ID:LBeD0nWX 当面はIEとEdgeみたいに行くんじゃないかな
236デフォルトの名無しさん
2021/04/29(木) 21:07:38.49ID:XqZ5GoqI やっぱ、バッチだろ?
237デフォルトの名無しさん
2021/04/29(木) 21:34:01.87ID:tWFzcYm5 自分のスクリプト用はPowershell7
社内スクリプトやらはWindows Powershell(5系)
MSは互換性維持の為に古いものを限界まで残す所だから当面問題は無いと思う
ただPowershell7系はそろそろ安定して快適だしWindows標準で入れてくれて良いと思う
社内スクリプトやらはWindows Powershell(5系)
MSは互換性維持の為に古いものを限界まで残す所だから当面問題は無いと思う
ただPowershell7系はそろそろ安定して快適だしWindows標準で入れてくれて良いと思う
238デフォルトの名無しさん
2021/04/29(木) 23:43:33.70ID:BF1GEXOZ 7ってWindows7でも動くんだな
239デフォルトの名無しさん
2021/04/30(金) 02:48:31.39ID:YlfW6qtC 6→7では||とか&&とか?:とか演算子かなり増えたと思ったけど
6で実行すると将来の拡張に予約的なメッセージが出たはず
後方互換性はちゃっかり確保してるのね
6で実行すると将来の拡張に予約的なメッセージが出たはず
後方互換性はちゃっかり確保してるのね
240デフォルトの名無しさん
2021/04/30(金) 03:23:30.90ID:YlfW6qtC >>238
バックエンドの.NETが提供される限り、言語の部分に関してプラットフォームは関係ないからね
(俺は7持ってないから確認は出来ないが)
シス管機能に関わるプロバイダの部分は、VistaくらいからCim規格準拠(WMIとして)に力入れてるので、それも寄与してるかと
まだ公式リリースされてないが、 linuxでは特にUbuntuもCim準拠に力入れてる
近いうちにpwshのプラットフォーム間相互運用性の確保(pwshコードベースのメンテコスト)はかなり楽になるだろう
今はまだ統一的に見えるユーザーエクスペリエンスは、対応するAPIを繋ぎ合わせたアドホック実装されてる
アドホック実装が減ればコードベースが削減されるわけで、伝統シェルに劣るとされるファイルサイズデカい問題も解消されると期待している
バックエンドの.NETが提供される限り、言語の部分に関してプラットフォームは関係ないからね
(俺は7持ってないから確認は出来ないが)
シス管機能に関わるプロバイダの部分は、VistaくらいからCim規格準拠(WMIとして)に力入れてるので、それも寄与してるかと
まだ公式リリースされてないが、 linuxでは特にUbuntuもCim準拠に力入れてる
近いうちにpwshのプラットフォーム間相互運用性の確保(pwshコードベースのメンテコスト)はかなり楽になるだろう
今はまだ統一的に見えるユーザーエクスペリエンスは、対応するAPIを繋ぎ合わせたアドホック実装されてる
アドホック実装が減ればコードベースが削減されるわけで、伝統シェルに劣るとされるファイルサイズデカい問題も解消されると期待している
241デフォルトの名無しさん
2021/04/30(金) 04:34:13.88ID:wKh1zPtl >>229
そこらの経緯はこの記事にまとまってるよ
PowerShell 6.0からPowerShellのプログラム名がpwshに変わります
https://blog.shibata.tech/entry/2017/10/19/073001
元々、略称はposh呼びが多かったみたい(容易に発音可能だし)
pshはPerl Shellと被るので避けたそうだ
そこらの経緯はこの記事にまとまってるよ
PowerShell 6.0からPowerShellのプログラム名がpwshに変わります
https://blog.shibata.tech/entry/2017/10/19/073001
元々、略称はposh呼びが多かったみたい(容易に発音可能だし)
pshはPerl Shellと被るので避けたそうだ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★4 [BFU★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す [蚤の市★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 佳子さまがコロナ感染 [おっさん友の会★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【悲報】靖国参拝を批判する中国に内政干渉するなと騒ぐネトウヨが中国の内紛に干渉する理由、誰にもわからない🥺 [616817505]
- 【実況】博衣こよりのえちえち歌枠🧪★2
- 【悲報】ネトウヨ「なんで高市が謝るんだよ!岡田が謝れ!😡」 [359965264]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【雑談】暇人集会所part18
- エッヂ逝った?
