- 1 名前:デフォルトの名無しさん [2023/11/29(水) 16:07:49.46 ID:0g8RZ7sB.net]
- 前スレ
PowerShell -Part 6 https://mevius.5ch.net/test/read.cgi/tech/1644744972/ 次スレは>>980が立ててね!!
- 237 名前:デフォルトの名無しさん [2024/06/26(水) 17:27:29.44 ID:qsKWsaPH.net]
- 地味にハマったからPowerShell7.5PrevewでC#コード実行の注意点書きこ。
・$Argが$argsに。(ここまではいい) ・$argsに格納されるコマンド引数がカレントディレクトリではなく、「PowerShellを起動したディレクトリ」になっている。 (なので、初期はPowerShellの本体があるフォルダー。しかもcdでカレントディレクトリ変えても、コマンド引数のディレクトリは変化しない) 解決策 (hoge.ps1は$argsを使っているスクリプト) pwsh hoge.ps1 arg1 arg2 の様にPowerShellを起動してからスクリプトを実行すると、コマンド引数のディレクトリも(そのシェルを起動した時点の)カレントディレクトリに変わる。 ・
- 238 名前:デフォルトの名無しさん [2024/06/26(水) 17:31:44.50 ID:qsKWsaPH.net]
- あ、C#はPowerShell7.5で $"{}"(文字列補間式)使えるようになった\(^_^)/
- 239 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 09:33:29.65 ID:bVzHKq+e.net]
- 過去に作られたスクリプトなのですが、
$script=(New-Object System.Net.WebClient).DownloadString("https://○○/dir/file1.js") として別Webサーバからスクリプトを毎回ダウンロードしていたのですが、 そのWebサーバが廃止されるということで、 そのfile1.jsをPCにダウンロードして、それを毎回読み込ませるようにしたいです $script=Get-Content .\file1.js としてみましたが、ファイルは読み込めているようですが、 その後の処理でうまく動作しません 何か方法ありますでしょうか
- 240 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 21:59:51.65 ID:1ppaObvA.net]
- file1.jsのエンコーディングはどうなってるの?
- 241 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 23:09:31.36 ID:YK96fiDO.net]
- >>237
説明が分かりにくい。 たぶん昔からよく混乱の元になってる $PWD(*-Location)のカレントディレクトリと [Environment]::CurrentDirectoryのカレントディレクトリの 両方を意識しないといけない問題について調べたらいいと思うよ。 >>239 DownloadString()の戻り値の型は[string]で Get-Contentは大抵[Object[]]だから型の違いで動作変わってんじゃないの。 Get-Content -Rawにしてみたらどう?
- 242 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 12:31:22.88 ID:AKI9JxZ5.net]
- カレントディレクトリという甘えた幻想は捨てろ
- 243 名前:デフォルトの名無しさん mailto:sage [2024/07/07(日) 11:58:14.30 ID:L0BIfwX5.net]
- カレンちゃんとディレクトリしたい
- 244 名前:デフォルトの名無しさん mailto:sage [2024/07/07(日) 13:02:55.78 ID:LfIamK5n.net]
- Get-Item カレンデバイス
- 245 名前:デフォルトの名無しさん mailto:sage [2024/07/07(日) 22:31:52.21 ID:gAixcUjS.net]
- カレンちゃんって誰だよ競走馬じゃないんだぞ
- 246 名前:デフォルトの名無しさん mailto:sage [2024/07/08(月) 19:41:40.15 ID:f8BMTbPy.net]
- きんモザ
- 247 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 01:02:53.21 ID:X/v3DPD5.net]
- windows10から11に変えたらwindows10ではちゃんと動いていたスクリプトが動作しなくなりました。
ショートカットに「powershell -file スクリプトのフルパス」と書いて目的のファイルをD&Dして使用しています。 ISEからだと一応動作して「引数が足りません」になるんですが、ショートカットからでは一瞬ウインドウが開くだけで何も起きません。 -NoExitをつけてもウインドウが閉じてしまいます。閉じるのが早すぎて正確にはわかりませんがウインドウには何も表示されていないようです。 「consolehost_history.txt」がログのようなので見てみたんですが、何も実行されていないようです。 管理者権限でpowershellを起動してから「スクリプトのフルパス "引数になるファイルのフルパス"」では正常に動作しました。 powershell.exeを右クリックで管理者権限で実行にチェックを入れても動作せず。 windows11になってからpowershellのショートカットを作る方法に変化があったのでしょうか?
- 248 名前:デフォルトの名無しさん [2024/07/18(木) 01:29:27.44 ID:T4qee4Qo.net]
- >>247
多分まさに>237に書いてる仕様変更の影響かと。
- 249 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 12:34:31.99 ID:X/v3DPD5.net]
- >>248
ありがとうございます。 「pwsh -file スクリプトのフルパス」と書き換えたら起動できたんですが、今度は別のところでwindows10では起きなかったエラーが出てしまいました。 $cmfiletxt = Get-ChildItem -Path "$cmtemp" -Recurse -Depth 1 -Filter "$trimfile" と書いてある行で、 Second path fragment must not be a drive or UNC name. (Parameter 'expression') というエラーが出ます。 "$trimfile"の中身は例えば「R:\TEMP\cmtmp\amt9996774\アニメA・ダークギャザリング #1「寶月夜宵」 2023-07-10.m2v.txt」です。 windows10では正常に動作していました。 「amt9996774」の所は連携しているソフトがランダムで自動生成するのでこちらからいじることはできません。 どう修正すればいいでしょうか。
- 250 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 12:46:56.92 ID:2XOaIs3w.net]
- >>249
変数名が $cmtemp になってるけど、その中身の文字列は e抜きの \cmtmp\ を含むパスなの?
- 251 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 13:09:10.50 ID:X/v3DPD5.net]
- >>250
そうです。最初にパスを設定する部分を設けています。 $cmtemp = "R:\TEMP\cmtmp"
- 252 名前:デフォルトの名無しさん [2024/07/18(木) 13:13:45.35 ID:g0scKYj2.net]
- >>249
ダブルコーテーションで括ってるからじゃね
- 253 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 14:22:52.00 ID:eHTBk2KG.net]
- -Filterにパスを指定しちゃだめ、っていうエラーメッセージ。
ファイル名部分を指定するんだよ。(ワイルドカード) でもWin10でもエラーになると思うんだけどな。
- 254 名前:デフォルトの名無しさん [2024/07/18(木) 14:29:18.66 ID:g0scKYj2.net]
- >>252
補足 変数をダブルクォーテーションで囲むと 変数の式が展開されてから渡される 変数の中身がファイル名でスペースを含んでたりすると誤動作する 変数に入ってるんだからそのまま変数で渡せばいい ファイル名がスペースを含んでいても大丈夫 こんな感じだと思う
- 255 名前:247 mailto:sage [2024/07/18(木) 18:19:03.04 ID:X/v3DPD5.net]
- ありがとうございます。結局$trimfileの中身をフルパスではなくファイル名のみにするようにしたら処理完了しました。
…本当にwindows10ではこれで動いていたんですけどね…? ただし別の問題が発生しています。あらかじめ作業フォルダを指定してその下にサブフォルダを生成、そこに処理したファイルを展開するようにしてるんですが、 指定した作業フォルダ(日本語)が文字化けしており、文字化けした作業フォルダを改めて作成してさらにその下にサブフォルダを作るようになってしまいました。 write-hostで表示する日本語も同様に文字化けしており、サブフォルダの名前は正常なのでスクリプト自体の問題ではないと思います。 powershellのタイトルバーを右クリック→設定→左のアイコンからpowershellを選択→外観→フォントフェイスをMSゴシックに変更、では解決しませんでした。
- 256 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 18:48:37.59 ID:2XOaIs3w.net]
- >>255
コンソール側の文字コードの問題だと思うよ レジストリにCodePageを設定すれば解決するはず(「65001」で検索)
- 257 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 19:04:19.79 ID:eHTBk2KG.net]
- pwshが動く時点で普通のwin11じゃない気がする。pwshは一部の物好きな上級者用じゃない?(もうwin11のデフォルトになった?)
pwshのままだと今後も色々問題出るよ。自己解決していける自信がないなら総合的にはwin11の再インストールが手っ取り早いと思う。
- 258 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 20:08:19.40 ID:7Xw39CjT.net]
- powershellが動かなかった理由ってOS変えたからデフォルトのExecutionPolicyの問題で弾かれてただけじゃないの
pwshについては設定変更済みで通ったと そしてv5向けのスクリプトをそのままv7で動かしたから細かい非互換の問題が出たと
- 259 名前:247 mailto:sage [2024/07/18(木) 20:55:47.23 ID:X/v3DPD5.net]
- >>256
やってみましたが結果変わらずです。 >>258 当初ISE経由でも弾かれたのでBypassに変更済みです。 >>257 powershellのバージョンの問題かと思ってMicrosoftStoreからver7をインストールしました。 試しに7をアンインストールして.5.1が強制的に動くようにしてみたんですが、挙動は振り出しに戻っちゃいました。 互換性の問題で言うとAutoHotkeyもうまくショートカットを発行できないソフトが出てきていますね…。 再セットアップで解決するもんでしょうか。
- 260 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 21:35:09.26 ID:eHTBk2KG.net]
- pwshを入れたのは後退なので、スタート地点に立てたくらいに思えば。
1. ショートカットのあるディレクトリにで右クリック→ターミナルで開く 2. ショートカット(lnk)を開く でウインドウが閉じずにエラーメッセージを確認できると思う
- 261 名前:247 mailto:sage [2024/07/18(木) 22:55:07.91 ID:X/v3DPD5.net]
- >>260
出てきたエラーをコピーしようとしたらNGワードに引っかかったみたいなので要約すると、 ・名前が正しく記述されていることを確認しろ、パスを確認しろ ・ コマンドは見つかりませんでしたが、 現在の場所に存在します。Windows PowerShell は、既定では、現在の場所からコマンドを読み込みません。 このコマンドを信頼する場合は、".\(ファイル名)" と入力してください。 言われた通りに.入力したら「引数がないため処理を終了します。」となり、一応正常に終了しました。
- 262 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 23:26:42.40 ID:gkVcHWUr.net]
- 恐らく11から強制的に使わされてるターミナルが悪いんだろうな
MSストアで入るアプリは総じてゴミだから今すぐ使用中止しろ ttps://qiita.com/dokimiki/items/f1075003cb37f1b542a8
- 263 名前:247 mailto:sage [2024/07/18(木) 23:57:38.19 ID:X/v3DPD5.net]
- >>262
リンク先を試してから、powershellを開いてから実行する方法では修正前のスクリプトで文字化けもせず正常に終了しました。 しかしショートカットのD&Dする方法では変わらず一瞬でウインドウが閉じました。
- 264 名前:デフォルトの名無しさん [2024/07/19(金) 11:00:27.12 ID:70UaCPmY.net]
- >>263
powershellのスクリプトの最後に pause でも追加しておけばいいんじゃね
- 265 名前:247 mailto:sage [2024/07/19(金) 12:40:24.75 ID:ct1DQagX.net]
- あの…、なんか寝て起きて試したら動きました…。
昨日からマジで何も変えてない…。せいぜいUSB-DACのドライバ当てたくらい? とりあえずこのまま様子見ます…。色々とありがとうございました。
- 266 名前:デフォルトの名無しさん mailto:sage [2024/07/19(金) 15:14:54.49 ID:jwlCgmdc.net]
- 今のターミナルで困ることって何だろう
--headlessが使えないことくらい? conhostより重いって意見はあるかもしれないけど.NETと比べれば誤差みたいなものだし
- 267 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 22:11:17.98 ID:m0XhNdSd.net]
- Windows terminalは普通に優秀だと思うけど
- 268 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 23:51:02.31 ID:vKWhifz8.net]
- 無変換キーを押すと@が書き込まれること以外は完璧
- 269 名前:デフォルトの名無しさん mailto:sage [2024/07/22(月) 09:11:09.38 ID:C7pnRrY6.net]
- cmdと動作が異なる意味では欠陥
最初にppwershellをコンソールアプリで公開したのは失策 WSH使いからは失笑
- 270 名前:デフォルトの名無しさん mailto:sage [2024/07/22(月) 13:17:32.45 ID:PeYRIg1J.net]
- コンソールホストとシェルの区別がついてないお🐴🫎さんかな
- 271 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 12:32:42.70 ID:+W8EF3Nh.net]
- ISEって2019年末時点でオプション機能化とか終息に向かうとか言われてたみたいだけど現行Windows11にも普通にプリインストールされてるよな
終息する話は延期になったんだろうか まぁ弊社みたいなインストール手続きがクッソ面倒なところでは助かるんですが…
- 272 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 12:49:12.36 ID:KGtSZjqO.net]
- 収束するには代わりにVSCodeをプリインストールするようにしてくれないと
- 273 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 15:16:22.47 ID:7uwMSqss.net]
- 削除予定はないよ
今後の機能追加がないだけ プリインストールしたらしたで欧米人がMS訴えるじゃん? エディタはどうぞお好きなものをお使いください 未だにVSCodeすらインストール許可が出ない会社ならそこの組織の問題 淘汰されるまでそうしていればいい 客先のサーバーで作業中のエンジニアならスクリプトは事前準備したものだけ使うか一旦課題を持ち帰れ
- 274 名前:デフォルトの名無しさん mailto:sage [2024/07/28(日) 21:35:37.31 ID:cLn1FmEd.net]
- ISEの優位性って何?使ったことないけどvscodeにできないことができたりする?
- 275 名前:デフォルトの名無しさん mailto:sage [2024/07/29(月) 07:56:32.32 ID:4FIXkUHw.net]
- プリインストールされていること
- 276 名前:デフォルトの名無しさん [2024/07/30(火) 00:37:00.12 ID:CUjc7QCy.net]
- hogehoge.txtの重複するレコードを
powershell -command "get-content hogehoge.txt | sort-object | get-unique | write-host" みたいにして取り除いています。 重複除去の前に外部コマンドによる処理を追加したくなり、まずファイルからではなく標準入力から読み込んだデータの重複除去に取り組んでいますが上手く行きません。 当初get-contentをread-hostに置き換えればうまく行くかと思いましたがダメでした。 type hogehoge.txt | powershell -command "read-host | sort-object | get-unique | write-host" 考えてみればそれも当然で、いったん標準入力を丸呑みにして溜め込んでおかないとsortもuniqもできないですよね。 MSのサイトで配列に溜め込んでいくみたいな用途に使えそうな命令を探しましたが見あたりませんでした。 なんか解決法ないでしょうか? あとついでに聞いちゃうんですけどunixのコマンド(wcとかcatとか)をその言語で書き直すみたいな本のpowershell版ってないもんですかね。
- 277 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 01:55:59.46 ID:0EE76/Sc.net]
- Out-String -Stream
- 278 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 11:15:11.79 ID:jBvTVZZ/.net]
- 無理にワンライナーやパイプラインで繋げて書かずに
スクリプトファイルを作ってそれを呼び出す方が柔軟性があって整理もできて使いやすい
- 279 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 12:15:40.81 ID:tWSTSpQm.net]
- 無理にでもワンライナーやパイプラインで繋げて書くのがPowershellの醍醐味
- 280 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 12:48:31.64 ID:jBvTVZZ/.net]
- >>276 みたいに困ったときはスクリプトファイルで
制御構文やら変数やらクラスやら使った方が 色々試し易くて色々整理できていいじゃん
- 281 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 21:02:35.18 ID:EaRTEGq5.net]
- [Console]::In.ReadToEnd() -replace '\r?\n$' -split '\r?\n'
その外部コマンドによる処理もPowerShell内でやればいい気がする
- 282 名前:281 mailto:sage [2024/08/01(木) 18:57:02.91 ID:nKkP9XuY.net]
- そういえばと思って試したら$inputでいけたわ。なんで忘れてたんだろ
- 283 名前:デフォルトの名無しさん mailto:sage [2024/08/02(金) 09:11:09.42 ID:gKkfhLC1.net]
- >>276
Ruby で作ってみた input_str = "5\n11\n33\n9\n0\n9\n11\n" # 末尾の改行を削除してから、数値型に変換する。 # 重複を排除し、ソートする input_ary = input_str.each_line.lazy.map do |line| line.chomp! line.to_i end.uniq.force.sort p input_ary #=> [0, 5, 9, 11, 33]
- 284 名前:デフォルトの名無しさん mailto:sage [2024/08/02(金) 21:54:58.24 ID:l/+AFQUJ.net]
- Rubyの人来るの遅いぞもう飽きたのか?ww
- 285 名前:デフォルトの名無しさん mailto:sage [2024/08/02(金) 21:57:08.30 ID:4wv1Q78q.net]
- 過疎過疎5ちゃんなんかよりツイッタランドで凸でもすれば
- 286 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 16:52:34.25 ID:Qq+DEfW6.net]
- 新しい Windows11マシンに pwshをインストールして
以前から使ってるファイルを そのままコピーしたら…何故だか起動時設定を読み込んでくれない …と思って 調べたら $PROFILE が 以前からのPCでは C:\Users\(私のユーザー名)\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 に対して、新しいのでは C:\Users\(私のユーザー名)\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 profileを置くディレクトリが違ってたということ. pwshのバージョンは どちらも最新(同じ)なのに …なのですが、特に どちらかで $PROFILEを設定するようなことは していない. 環境変数なども特に設定していないし Program Files/7 直下には profile的なものは 置いていない …でもどこかで指定しているのを自分で忘れたんだろうか? 複数マシンを管理するにあたって 面倒なので…とりあえず原因になりうるものを知りたいのです
- 287 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 18:13:57.62 ID:J4fT6PqJ.net]
- >286
最新のWindowsにも入ってる「古いpowershell」が原因っぽい. 新しいのを入れても残ってるので そういうことはある
- 288 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 18:54:54.18 ID:dRTmSCrE.net]
- >>286
デフォルトの$profileのパス設定が異なるマシンがあってその原因が知りたい、ってことなのかな? ちなみに、新しいマシン側の$profileは5.x系(いわゆるWindows PowerShell)のデフォルトパスと一致してる
- 289 名前:デフォルトの名無しさん mailto:sage [2024/09/28(土) 00:24:19.73 ID:xELx2i6V.net]
- ExecutionPolicyがRestrictedのままでProfileがロードされないとか?
- 290 名前:デフォルトの名無しさん [2024/09/30(月) 10:14:56.15 ID:OEXqADpi.net]
- 286です すいません、自分の混乱の原因がわかりました。
新しいWindows11のマシンにも5.x系は入っていて、7.xのpwshをインストールしてもそれは残る. そして、私は タスクバーに「ピン留め」して起動するのですが、pwshを起動した状態でピン留めしても いったん終了させてからアイコンをつつくと 5.x系が起動してしまう…というところに 気がついていなかったというわけです. ピン留めしたのは たしかに7系だったのに. なんだか納得いかない感じ
- 291 名前:デフォルトの名無しさん mailto:sage [2024/09/30(月) 10:46:54.62 ID:OEXqADpi.net]
- ピン留めされるのは「ターミナル」であって、その中で何を起動するのかは 右クリックで選択できるようになっており、そのデフォルトが5.x系であるように見えます。もちろん以上のことがわかっていれば ここから7.xを選んで起動するのも簡単ではあるのですが…これはカスタマイズできるんだろうか
- 292 名前:デフォルトの名無しさん mailto:sage [2024/09/30(月) 13:04:09.12 ID:AYohfY5N.net]
- ターミナルのデフォルトはターミナルの設定画面で選べるよ
既定のプロファイルってやつ
- 293 名前:デフォルトの名無しさん mailto:sage [2024/09/30(月) 17:54:24.00 ID:OEXqADpi.net]
- 292← できました!ありがとうございます
…というか、これまで(Windows10)は「ターミナル」じゃなかったということを今日 知りました(笑)
- 294 名前:デフォルトの名無しさん mailto:sage [2024/10/01(火) 06:43:45.64 ID:/Tad9Lz2.net]
- コマンドプロンプトで、where powershell
と入力すれば、powershell.exe の絶対パスが分かる。 だから、絶対パスを書けば、exe を指定できる C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe ここに、2つ以上表示されたら、上の方が優先して実行される
- 295 名前:デフォルトの名無しさん mailto:sage [2024/10/01(火) 08:34:51.39 ID:CEO/MZ1M.net]
- ワイ氏、whereというコマンドがあることをパソコン歴20年にして初めて知る
- 296 名前:デフォルトの名無しさん mailto:sage [2024/10/01(火) 08:53:10.90 ID:lHW1RCWi.net]
- Powershell v5はpowershell.exe、v7はpwsh.exeなのでこれらの混在環境でパスの優先順位が問題になることは基本ない
むしろコマンド名を混同したままでは取り違えが起こりそうなので一応
- 297 名前:デフォルトの名無しさん mailto:sage [2024/10/01(火) 21:40:49.64 ID:+PXXCXjN.net]
- 20年前のWindowsにはまだwhereコマンドは標準搭載されてなかったから知らなくても仕方ない
一応リソースキットやサポートツールには入ってたけど
- 298 名前:デフォルトの名無しさん mailto:sage [2024/10/02(水) 21:22:59.58 ID:PTqKnWGQ.net]
- 20年ぐらい前から個人でPathが通ってるところに ls.bat や which.bat を作って同等のことをやってた
Unix(当時はまだUnixは普通に使われていた)やLinux も普通に使ってるとつい ls って入力していらっとしてしまうから必須だった
- 299 名前:デフォルトの名無しさん [2024/10/14(月) 11:07:36.62 ID:iqlRL8W8.net]
- >>298
UNX・LinuxのlsコマンドだってシェルやOS依存だぜ?
- 300 名前:デフォルトの名無しさん [2024/10/14(月) 11:10:46.06 ID:iqlRL8W8.net]
- Windowsの基本知識がないのにPowerShellを使うというのも何がなんだかわからないやつだ
- 301 名前:デフォルトの名無しさん mailto:sage [2024/10/14(月) 21:22:43.79 ID:6g0FV4Kx.net]
- >>299
UNIXでlsが使えない環境があるの?
- 302 名前:デフォルトの名無しさん mailto:sage [2024/10/14(月) 22:47:46.01 ID:Fd8j7Mhu.net]
- Powershellの話をする気がないなら黙れジジイ
- 303 名前:デフォルトの名無しさん mailto:sage [2024/10/14(月) 23:07:14.44 ID:rwiJ8lRR.net]
- >>301
無いのでecho *でやっていた環境があるのだ そう、あれはLinuxっていうやつだった
- 304 名前:デフォルトの名無しさん mailto:sage [2024/10/15(火) 06:06:09.78 ID:CzVFQLgH.net]
- >>303
スレチ
- 305 名前:デフォルトの名無しさん [2024/10/15(火) 20:55:15.08 ID:7T7mXQAC.net]
- >>298
PSのcatとUnix系のcatが別物ってくらい違うのがね…。 おまけにDOSコマンドのtypeもPSとコマンドプロンプトで違う。 (PSのcat/typeはget-contentの別名) PSだとリストを受け取るので、カンマで区切る必要がある。 cat file1, file2, file3 C#で自作したコマンドとも、元からあるDOSコマンドとも違うって…。 MS謹製のIDE(VS)で自作したコマンドと連携撮れないMS謹製のシェルェ…。
- 306 名前:デフォルトの名無しさん mailto:sage [2024/10/15(火) 21:47:59.44 ID:lPGbp20O.net]
- エイリアスに互換性を求める人なんていたんだ
そんなの新しいコマンドを覚えやすくするための糖衣でしょ DOSみたいなクソダサレガシー環境との互換性を尊重してたら呪縛なんてもんじゃない シェルスクリプトって古今東西きったねえ一貫性のないもんなんだから拘っても虚しいだけよ
- 307 名前:デフォルトの名無しさん mailto:sage [2024/10/15(火) 23:10:10.50 ID:qo7/LMKy.net]
- >>306
どの言語でもrubyを求める奴がいるように PowerShellにもUnix系シェルを求めちゃうんだろうな
- 308 名前:デフォルトの名無しさん [2024/10/16(水) 07:29:00.82 ID:SZo2N9Nf.net]
- >>301
コマンドの実装は違うよ
- 309 名前:デフォルトの名無しさん mailto:sage [2024/10/16(水) 09:56:19.21 ID:NaAnwllp.net]
- >>305
Remove-Alias cat function cat([Parameter(ValueFromRemainingArguments=$true)][string[]]$Path){Get-Content @PSBoundParameters} これで文句ないだろ
- 310 名前:デフォルトの名無しさん [2024/10/17(木) 00:37:51.84 ID:yqUeq3Bo.net]
- PowerShellでLINQをメソッドチェーンで書く方法ってある?
静的メソッドで[Enumerable]::Select()みたいに書くと()が増えてガチャガチャしちゃうのがなぁ…
- 311 名前:デフォルトの名無しさん [2024/10/17(木) 00:38:50.49 ID:WrCN832N.net]
- >>309
そういうコマンドに出合うたびに毎回そんなの書くのはね…。 そんなこんなでLinux(bash)に落ち着くんだよね…。
- 312 名前:デフォルトの名無しさん [2024/10/17(木) 00:49:20.12 ID:yqUeq3Bo.net]
- >>311
俺は逆に会社でWindows使う機会が多すぎてLinux(*nix)コマンド側の記憶が消えそうになってるな… たまにLinux使うとPowershellみたいにパイプラインを文字列じゃなくてオブジェクトが通るつもりで書きそうになる
- 313 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 01:09:19.82 ID:YcyvXrpH.net]
- >>311
お前は何を言ってるんだ catエイリアスを消してbashっぽい動きの関数をcatの名前で登録し直すって内容なんだから これをprofileにでも貼り付けて使えって意味だろうが
- 314 名前:デフォルトの名無しさん [2024/10/17(木) 02:10:19.27 ID:WrCN832N.net]
- >>313
うん。 そう理解してる。 PowerShellってよりは周辺環境が追い付いてない印象だけど、まだLinuxでbash触る方が楽かな。 もうしばらく進化を待ちますね。
- 315 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 11:09:20.30 ID:wdGjJarp.net]
- スクリプト書くのはbashよりpowershellの方が書きやすいし読みやすい
そしてlinuxでもpowershell使えるしで重宝してる
- 316 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 21:13:19.55 ID:ooYpCywP.net]
- スペースとコンマの違い程度で発狂して上から目線でもうしばらく進化を待ちますねって面白い人だなぁ
そもそも進化してないのはUNIXシェルのほうでしょ
- 317 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 13:56:03.02 ID:wVDH4S6Q.net]
- space と , はさすがに気付くと思うが
: と ; の違いは老眼にはきつい
- 318 名前:デフォルトの名無しさん mailto:sage [2024/10/19(土) 10:49:56.95 ID:0/OluZJS.net]
- :(コロン)ていう名前が美味しそうな響きなんだよなぁw
- 319 名前:デフォルトの名無しさん mailto:sage [2024/10/20(日) 10:17:27.24 ID:Y993j978.net]
- コロネじゃないんだから
- 320 名前:デフォルトの名無しさん mailto:sage [2024/10/20(日) 10:22:09.68 ID:/FrbdBj7.net]
- マロンかと思った
- 321 名前:デフォルトの名無しさん mailto:sage [2024/10/20(日) 13:53:57.93 ID:hxgHNqIu.net]
- LinuxとかDOSコマンドを、デフォルトのエイリアスでPowerShellコマンドレットに結びつけておくってのは悪手だよなー
他環境利用者の移行配慮ってなら、例えば「cat」を「Get-Help Get-Content」を実行する関数へのエイリアスにするとか、何かやりようあったんじゃないかと思う。 PSv1、v2の出来の悪さ、様々な考慮不足がずっと足引っ張ってると思う。
- 322 名前:デフォルトの名無しさん mailto:sage [2024/10/20(日) 18:37:33.24 ID:sfhCtbKo.net]
- curlとかシンプルな本物使いたいことの方が多いから邪魔なだけ
- 323 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 01:06:16.28 ID:ursFBC+1.net]
- エイリアスはハマることがあるので不評
- 324 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 01:47:50.43 ID:9ofaZL13.net]
- sh系はともかく、cmdと全く別のコマンド名覚えなおすのも慣れとはいえ面倒なのは確かだからしょうがないんじゃない
補完できても長いものは長かったし 当時からWSLがあれば別だったんだろうけど
- 325 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 02:22:41.82 ID:fVCz7bM3.net]
- このスレを見ていれば分かるけど、自分がいまcmdを実行しているのかpowershellなのかpwshなのか分かってないユーザがかなりを占める
そんなごく普通のWindowsユーザーたちがdirやcdで適当にやったらなんか動いたとか、同じコマンドで動くらしいからオレも使ってみようかなとかいったハードルを下げる要素の重要性は無視できない 複数パラメータの区切りがスペースかカンマか?マジどうでもいいよw Windowsの新しいシェルスクリプトなんて相反するニーズに縛られまくるからどんな仕様にしたところで数え切れない文句が飛んでくる
- 326 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 21:43:14.36 ID:iHmIY3KR.net]
- >>324
>当時からWSLがあれば別だったんだろうけど WindowsでUNIXシェルが使えないから仕方なく欠陥品のPowerShellを作った、とか思ってそう
- 327 名前:デフォルトの名無しさん mailto:sage [2024/10/22(火) 00:45:55.83 ID:CtvGpoP8.net]
- >>326
思考が卑屈すぎるわw エイリアスの話しかしてないよ
- 328 名前:デフォルトの名無しさん mailto:sage [2024/10/22(火) 12:24:39.31 ID:SSjePDmS.net]
- curl など誤解を招きかねないエイリアンは害悪でしかない
% とか ? は可読性上がる気がする
- 329 名前:デフォルトの名無しさん mailto:sage [2024/10/22(火) 22:53:22.74 ID:trzbvHFT.net]
- selectにも記号一文字のエイリアスあってもいいんじゃないかと思う
- 330 名前:デフォルトの名無しさん mailto:sage [2024/10/28(月) 21:16:39.09 ID:ZTog7VUm.net]
- そう思うなら自分で勝手にアイリアスを定義すればいいだけだよね
- 331 名前:デフォルトの名無しさん mailto:sage [2024/10/28(月) 21:22:49.73 ID:U22PtxVm.net]
- 各々が好き勝手にエアリアルを使っているとコミュニケーションに支障をきたすから困る
- 332 名前:デフォルトの名無しさん mailto:sage [2024/10/29(火) 09:23:16.64 ID:Qywuhmt6.net]
- > WindowsでUNIXシェルが使えないから仕方なく欠陥品のPowerShellを作った、とか思ってそう
開発の経緯としてはまさにその通りなんだけどな WindowsでUNIXシェルを整備するプロジェクトが頓挫して、根本的にWindowsに適した設計が必要であるということで生まれたのがPowerShell なおオリジナルの開発者は現在はGoogleへ移籍し、UNIXシェルの世界へと還っていった模様
- 333 名前:デフォルトの名無しさん mailto:sage [2024/10/29(火) 09:29:09.19 ID:oyxmU1Yp.net]
- cygwinには長らくお世話になった
- 334 名前:デフォルトの名無しさん mailto:sage [2024/10/29(火) 19:18:49.19 ID:/c01W0NL.net]
- >なおオリジナルの開発者は現在はGoogleへ移籍し、UNIXシェルの世界へと還っていった模様
なおGoogleへ移籍後は何の成果も得られてない模様
- 335 名前:デフォルトの名無しさん mailto:sage [2024/10/29(火) 23:17:38.65 ID:/bXBK+wh.net]
- Linuxの管理マネージャやそのシェルのPowerShell化をしていたりして、
そのうちカーネルソースのPowerShellマネジメントレイヤーに取り込まれたり Fedora、Ubuntuに適用される見込みである
- 336 名前:デフォルトの名無しさん mailto:sage [2024/10/30(水) 11:01:45.95 ID:cBVsI/1s.net]
- Azureならともかく、そんなもんGCP採用するような層にニーズあるかねえ
どう考えてもAzureを利することにしかならずGCPのシェアに対して悪影響しかないだろ 最近は首切りしまくってたのに最上位格エンジニアは気楽なもんだな
- 337 名前:デフォルトの名無しさん mailto:sage [2024/10/30(水) 20:31:44.86 ID:x0G86HEF.net]
- PowershellはAdd-Type辺りの機能は便利だけど言語としてはゴミ
|

|