1 名前:デフォルトの名無しさん [2023/11/29(水) 16:07:49.46 ID:0g8RZ7sB.net] 前スレ PowerShell -Part 6 https://mevius.5ch.net/test/read.cgi/tech/1644744972/ 次スレは>>980 が立ててね!!
202 名前:デフォルトの名無しさん mailto:sage [2024/05/29(水) 21:41:38.25 ID:02Fq4mGE.net] それ意味あんの
203 名前: mailto:sage [2024/05/29(水) 23:35:21.72 ID:nyGT0uI2.net] 実行ポリシーに依存しない
204 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 00:25:29.21 ID:U4JaIgka.net] >>199 そのせいで使い勝手が悪く普及しない ダブクリ実行可能なショートカットは一般ユーザーには作れない さらにウインドウ非表示実行もできず、VBSを置き換えることもできない
205 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 09:38:23.19 ID:BwsQkw0g.net] >ウインドウ非表示実行 conhost.exe --headless powershell.exe -file foo.ps1 では駄目?
206 名前: mailto:sage [2024/05/30(木) 10:02:25.09 ID:KpHhmNZR.net] 非表示にする理由ある?
207 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 12:56:45.30 ID:T4GqjJ/d.net] vbs廃止は神国だわw
208 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 17:48:39.42 ID:U4JaIgka.net] >>205 駄目じゃない、ありがとう タスクスケジューラーから定期実行する時、VBS以外の選択肢がなくて困ってた 引数の--headlessはどういう意味なんだ?
209 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 22:14:09.65 ID:5L9b56Kn.net] https://github.com/microsoft/terminal/issues/17178 conhost.exe --headlessは終了コードを得られない致命的なバグがあるらしいな Hiddenで起動する適当なexe作った方が早そう
210 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 09:49:39.74 ID:GcLNDseM.net] >>154 なんじゃこりゃ、どんだけエアプが書いてんだ? そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ 権限の昇格の概念の無いOS用のsudoと意味論が異なる事を示す為にせめてsudo以外の名前を使えよ 以下win/pwsh環境での突っ込み >runasはパスワードの入力が必要になる saps に-cred $me渡せ >別ウィンドウでターミナルが起動する -nonew渡せ >別ターミナル再度コマンドを実行する必要 それはsu相当の動作であってsaps pwshで代替できる 全部やりたいならsaps $prog -runas -cred $me -nonewだろ? win上のpwsh環境ではsaps上で直交するオプションとして設計された4機能が全部斜交した邪悪の極みみたいなコマンドと化してるぞ ついでに言うとrunas.exeも若干邪悪… テストはしてないからなんか俺もエアプしてたら突っ込んでね?
211 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 10:15:49.38 ID:rqyUs55u.net] $progと-args @argsをfunction sudoに包んで渡せばとりあえず望みの挙動を得られるはず
212 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 22:09:53.18 ID:olGfUeGO.net] 俺の環境だと-NoNewWindowと-Credential両方指定すると新しいウインドウが開いちゃうんだが
213 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 22:16:09.49 ID:GNPHSdGp.net] >>208 https://www.keyence.co.jp/ss/general/iot-glossary/headless.jsp ヘッドレスとは、組み込み機器やサーバなど、本来対面で人が操作するためのものではない(または、その必要がない)システムで見られる運用形態のひとつです。コンピュータの場合、キーボード、マウス、タッチパネルなどの入出力機器を接続しない状態で運用すること、また、その状態で運用を行う機器などがあります。
214 名前:デフォルトの名無しさん mailto:sage [2024/06/05(水) 00:12:03.26 ID:nLwXXU6Y.net] https://eow.alc.co.jp/search?q=headless 例文、怖えぇ〜 【headless】 1. 頭部のない、首を切られた ・ I saw a headless dog lying beside the road on my way to school. : 学校へ行く途中、道端に首のない犬が転がっているのを見た。 2. 指導者がいない ・ The terrorist group is a headless organization. : そのテロリスト集団は指導者がいない組織である。 3. ・・
215 名前:デフォルトの名無しさん mailto:sage [2024/06/10(月) 08:02:22.79 ID:KfgQc11A.net] ヘッドレスってCPUをなくすべきでは
216 名前:デフォルトの名無しさん mailto:sage [2024/06/12(水) 21:40:45.55 ID:68xFIGJf.net] >>210 >そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ 今のSudo for Windowsは同一じゃない https://learn.microsoft.com/ja-jp/windows/sudo/#how-is-sudo-for-windows-different-from-the-existing-runas-command >現時点で Windows 上の sudo コマンドは、他のユーザーとしてのプログラムの実行をサポートしていません。
217 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 01:51:19.96 ID:I2CUi2vW.net] >>216 >そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ ここで言及してるsudoはunix系の本家(?)sudoのことやろ
218 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 22:42:22.27 ID:pSP80P6j.net] 古い業務システムでデータ入力する時に自動化しようと思ったんだが、 Enterがカーソル位置以降の文字消してフォーカス移動、NumpadEnter(テンキーのEnter)がEnter、 左CtrlがCtrl、右CtrlがEnterという機能になっている。 powershellのSendkeysだとどうやってNumpadEnterか右Ctrlを選択すればいいのでしょうか?
219 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 22:46:04.00 ID:rsgeG4yq.net] VBのSendKeysと変わらないと思う
220 名前:デフォルトの名無しさん [2024/06/21(金) 17:49:04.98 ID:LwqdtCE6.net] >>218 無料のRPAでやる方法もあるよ
221 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 01:38:41.92 ID:uvHlEJ4P.net] powershellってlinuxでも使えますっけ?
222 名前:デフォルトの名無しさん [2024/06/22(土) 05:23:03.55 ID:dw6Bjmix.net] 使えます
223 名前:デフォルトの名無しさん [2024/06/22(土) 19:51:57.56 ID:dw6Bjmix.net] Win10のPowerShellのC#がVS2022のC#とバージョンが違って戸惑う…。 Win11ではそこまで違和感ないのだろうか? foreach (var item in File.ReadAllLines(fileName).Select((line, i) => $"{i + 1,2}:{line}")) としたかったのにReadAllLinesも使えないし、 $"{i + 1,2}:{line}"部分も使えない。 何か、隔世の感がある…。
224 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 00:24:22.40 ID:Gy0jYBbT.net] ???
225 名前:デフォルトの名無しさん [2024/06/23(日) 01:48:23.24 ID:iAmtDmVE.net] PowerShell内蔵のC#スクリプトがOS毎にバージョンが違って、使えない機能があって不便だって話。 hello.ps1 Add-Type -Path .\hello.cs [Hello]::hello() hello.cs using System; public static class Hello { public static void hello() { Console.WriteLine("Hello World!!); } }
226 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 02:33:27.21 ID:QkuO1K/N.net] まあ現在進行形でメンテされてるからな むしろOS毎に入るバージョンが違ってくるのは当たり前なのでは…
227 名前:デフォルトの名無しさん [2024/06/23(日) 04:10:59.53 ID:iAmtDmVE.net] 分ってるけど、心の叫びだよ。 あ、PowerShellアップデートしてReadAllLinesの方は使えるようになった。 今更ファイルストリームでopen/closeとか嫌すぎたからホッとした。
228 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 13:37:48.52 ID:ermJYjK6.net] webアプリのテキスト入力部分にpowershellスクリプトで自動的に文字入力をしています しかし動作させるタイミングによってIMEが日本語入力になっていたり直接入力になっていたりしています 「無変換」キーに「IMEオフ」を割り当てて文字入力の前にpowershellで自動的に無変換キーを押下させましたが当方の環境では何故か期待通りの結果にならず、やむなくタスクバートレイのIMEアイコンを右クリック(メニュー表示)→「直接入力」左クリックをpowershellで自動でやって実現しています しかしこの方法はスマートじゃないです powershellで他のアプリに入力中のIMEの設定を「直接入力」モードにスマートに切り替える方法があれば教えてください
229 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 13:50:30.91 ID:e+eCK7bX.net] 望んでいる答えではないと思うがWebアプリなら素直にブラウザのプラグインでJavaScriptを動かす方法を一度覚えておいたほうが幸せになれると思う 安定性も増すしやれることの幅もかなり広がる
230 名前:デフォルトの名無しさん [2024/06/23(日) 13:52:52.91 ID:eptuMF0K.net] >>227 ぷっ バグがあったら動かないのは当然
231 名前:デフォルトの名無しさん [2024/06/23(日) 14:57:30.86 ID:nCpb5rpZ.net] >>228 WindowsFormsあたり使えばできるんじゃないの?と思ってCopilotに聞いてみた Add-Type -TypeDefinition @" using System; using System.Runtime.InteropServices; public class ImeControl { [DllImport("user32.dll")] public static extern IntPtr GetForegroundWindow(); [DllImport("user32.dll")] public static extern int ImmAssociateContext(IntPtr hWnd, IntPtr hIMC); public static void DisableImeMode() { IntPtr hWnd = GetForegroundWindow(); ImmAssociateContext(hWnd, IntPtr.Zero); } } "@ 思ってたんと違った
232 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 17:48:41.99 ID:ermJYjK6.net] >>231 有難うございます 一回り難しそうですが、試しながら参考にさせて頂きます
233 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 18:39:00.79 ID:QkuO1K/N.net] 肝心のアレが入ってないからまともに動かなそう AIをもっと虐めないとだよ
234 名前:デフォルトの名無しさん [2024/06/23(日) 23:34:40.87 ID:iAmtDmVE.net] >>230 バグじゃなくて、互換性の問題。 古いのC#の文法を使えば良いとは言え、あんまり逆行したかったん。
235 名前:デフォルトの名無しさん [2024/06/23(日) 23:46:54.32 ID:iAmtDmVE.net] xあんまり逆行したかったん。 oあんまり逆行したくなかったん。
236 名前:デフォルトの名無しさん [2024/06/24(月) 00:41:48.16 ID:sso3G8sO.net] >>221 使えます。
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の話をする気がないなら黙れジジイ