X



【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
0840デフォルトの名無しさん
垢版 |
2018/07/22(日) 16:11:26.61ID:YGqHpPTt
当然のことをしたまでよ
照れんなよ
0843デフォルトの名無しさん
垢版 |
2018/07/25(水) 21:13:55.37ID:Yq3sixxb
Powershellのコマンドを使ってあるEXEを管理者権限で起動することって出来ないでしょうか?

いちいちEXEのショートカットを作って「管理者として実行」にチェックするのが面倒なので・・・

あ、OSはWin7です。
0846デフォルトの名無しさん
垢版 |
2018/07/25(水) 23:07:01.78ID:GlwT5bgj
>>842
あんまり、荒らすつもりは無いけどそれはダメダメだね。
というか、その昔俺もその手法使ってたし。
俺の書いたPS1ファイルのタイムスタンプを見ると2011年だからその記事より前だな。

あのね、何でC#のソースを動かさなきゃならんの?
そういう場面が有るとすればPowerShellだけで出来ないことをしようとする場合だろ。
つまり工夫で乗りきろうとしている場合なんだからVBAのスレを荒らしてた奴風に言わせればC#のソースを書かなきゃならん時点でPowerShellはゴミってことになるのよ。
0847デフォルトの名無しさん
垢版 |
2018/07/26(木) 00:24:48.95ID:xTcDuoaq
VBA内でC#のクラス定義してそのままVBA内で使えるようになってから出直してこい
何をするにも不合理に手間がかかるからVBAは糞だって言ってんだよ
0848デフォルトの名無しさん
垢版 |
2018/07/26(木) 00:32:39.24ID:A133ONF8
なんで既存のソース活用するのにcscだの別プロセスだの大げさなことしないといかんの?
.NETがあるのになんで態々COMだのwinAPIだの直で触らなあかんの?
っていう人間なので問題なしです
0849デフォルトの名無しさん
垢版 |
2018/07/26(木) 06:27:07.99ID:gfIbAgn/
>>847
でもPowerShellは激遅ですよ
0850デフォルトの名無しさん
垢版 |
2018/07/26(木) 06:40:44.04ID:/8jtV8/F
>>846
> そういう場面が有るとすればPowerShellだけで出来ないことをしようとする場合だろ。
バカなの?
・C#のほうが楽に書ける
・既存のコードが流用できる
とかあるだろ
0851デフォルトの名無しさん
垢版 |
2018/07/26(木) 08:08:40.25ID:OM9s1u3H
>>847
PowerShellだって不合理じゃねーか。
お前は都合の良いところばかり言う。
Excelブック1ファイルで完結できるようになってから出直しな。

>>850
同じことだ。
欠点を工夫で乗りきっているわけだから。
0855デフォルトの名無しさん
垢版 |
2018/07/26(木) 12:49:19.43ID:OM9s1u3H
>>854
出来ないことをしようとする。
←C#のコ―ドをそのままC#でコンパイルして、出来たプログラムを動かす。

出来ないことをしようとする。
←コンパイル済みのプログラムを高速に動かす。

出来ないことをしようとする。
←VisualStudioでGUIのデザインをする。

出来ないことをしようとする。
←面倒なことをPowerShell単体で実現する。

な、一緒だろ。
0860デフォルトの名無しさん
垢版 |
2018/07/26(木) 19:03:10.56ID:OM9s1u3H
日本語が通じないのはお互い様だろ。

C#に比較して楽に書けて無いだろ。
つまりC#を元に考えればゴミということになる。

別途VSCodeとかを入れるのは面倒じゃ無いのか?

C#のコード部品にもインテリセンスが効くのか?

楽だとすればそれはC#のことでPowerShellは文字列変数にコード入れなきゃならん。
そして文字列をC#のコードとして動かす為にもAdd-Type呼び出すなどと面倒なことをしなきゃならん。
0861デフォルトの名無しさん
垢版 |
2018/07/26(木) 20:41:15.58ID:T4rU0dQ5
>>860
まったくもってその通りで C#>PowerSell だよ

もっと書くと
C# > PowerSell >>>>>>>>> VBA
だけど

なんで唐突にC#と比べはじめちゃったの?
0862デフォルトの名無しさん
垢版 |
2018/07/26(木) 20:43:42.29ID:5d1EUyas
向こうでもVSCodeやらIDE入れたら〜ってレスしてるやついるけどさ

VBAを主に使うのは事務屋

事務の職場は(開発系と違って)外部ソフトの導入を渋られる所が多い

結局Windows付属の
・VBA
・VBS
・cmd
・PowerShell
しか使えない

エクセルにあまり関わらない処理はPowerShellでやってもいいんじゃね

って感じだと思うの
(というか、現にウチがこれ)

この、VBA(VB6)かPowerShell「しか」手段がない前提で行けば、
C#のソース読み込むとか多少歪んだ使い方だとしてもVBAよりPowerShellを使いたくなる時があるのは理解できるだろ?

もちろんVBAもバリバリ使ってるけどな

なんでどちらかだけしか使う価値がない!!!みたいな話になってんだろ
0865デフォルトの名無しさん
垢版 |
2018/07/26(木) 23:56:00.76ID:OM9s1u3H
>>862
逆の話でね、こっちはず―っとそういうことを言ってるの。
その度にPowerShellしか価値が無いと言われてるんだよ。
ず―っと適材適所と言ってる。
0866デフォルトの名無しさん
垢版 |
2018/07/27(金) 00:00:29.39ID:/pOg/k3/
>>865
VBAでスクレイピングだとか1ファイルで完結とか言っといて適材適所を主張してます!は頭おかしいんじゃねえの?
0867デフォルトの名無しさん
垢版 |
2018/07/27(金) 00:03:25.35ID:hpcoy/E6
>>861
全くその通りじゃね―んだよ。
VisualStudioが入って無い、もしくは入れられない環境ではC#は意味がねえ。
だから適材適所なんだよ。

大体、PowerShellがVBAに勝てるわけねえんだよ。
VBAが使われる環境ではVBA>>>PowerShellだし。
PowerEellが使われる環境ではPowerShell>>>VBAだろう。
噛み合わねえんだよ。
0868デフォルトの名無しさん
垢版 |
2018/07/27(金) 00:06:37.08ID:hpcoy/E6
>>866
1ファイルになるのはExcelの環境だからだろ。
そういう土俵(環境)なんだからVBAが有利なのは仕方無いだろ。
スクレイピングもExcelブックにデータを展開するのが前提だぞ。
そうじゃなかったらVBAでやるべきじゃない。
0869デフォルトの名無しさん
垢版 |
2018/07/27(金) 00:13:06.60ID:hpcoy/E6
汎用的な開発だったら何でVBAでやるんだよ。
そりゃアホだろ。

VBAの議論をするならExcelの環境が大前提なんだから他の言語はそれに合わせなければならない。
だから他言語は不利になるのあたり前の話。

こういう話は当然PowerShellにもあるわけで、だから適材適所なわけ。
0870デフォルトの名無しさん
垢版 |
2018/07/27(金) 01:27:22.29ID:/pOg/k3/
>>867
噛み合わないのはお前の理解力と日本語能力のせいでは??
正直なんでいきなり演説かましてんだこいつって感じだぞ
0871デフォルトの名無しさん
垢版 |
2018/07/27(金) 06:29:32.02ID:Z7cB5M3n
1ファイルになるのがメリットみたいな言い分が謎
逆にデメリットだろそれは
ファイル分けて管理したほうが開発しやすいだろ常識的に考えて
最終的に配布を1ファイルにしたいならJSみたいにバンドルすりゃいいだけだし
なんならワンライナーのオンラインインストーラーでもいい
0872デフォルトの名無しさん
垢版 |
2018/07/27(金) 06:40:59.87ID:uuBPM4V2
>>871
> ファイル分けて管理したほうが開発しやすいだろ常識的に考えて
それは開発側の都合でしかない
そんな事を意識しない利用者にとっては単一ファイルの方がいいのは当たり前
> なんならワンライナーのオンラインインストーラーでもいい
インストールとかバカすぎる w
0874デフォルトの名無しさん
垢版 |
2018/07/27(金) 07:22:54.24ID:Z7cB5M3n
>>872
脊髄反射でレスしないで読んでから返せない?

ユーザー都合で1ファイルがいいなら、1ファイルにバンドルすりゃいいだろ、って読めなかった?

インストールがダメってのも意味不明だな
ユーザー目線ならそれこそ何ファイルだろうがツールとして使えれば良いのだから、インストールスクリプトは有力な選択肢になる

1ファイルが良いってのもそもそもお前の思い込みでしかなくて、世の中には複数ファイルのツールのほうが遥かに多く、利用されてる
ユーザーは結果として簡単に使えればそんなことは気にしないんだよ
0875デフォルトの名無しさん
垢版 |
2018/07/27(金) 08:02:02.45ID:uuBPM4V2
>>874
VBAでバンドルとやらをどうやるつもりなのか書いてみ
> ユーザーは結果として簡単に使えれば
って豪語するんだから今のExcelファイル単体並に簡単に使えるんだよな w
0876デフォルトの名無しさん
垢版 |
2018/07/27(金) 08:14:39.55ID:hpcoy/E6
>>874
1ファイルにバンドル?
ExcelブックにPS1をバンドルしてどうするんだ?
個別に動かすの?
それじゃ1ファイルの意味ねーだろ。
第一、VBAは面倒とか言ってたのにそういう面倒なことするの?

Excelブックを渡した相手に余計な何かをインストールさせるのか。
VBAならそんなこと丸っきり必要ないのに。
インストールしなくても同じことが出来るならインストールしなきゃならんのはどう見てもデメリット。

世の中はExcelブックと他に何か別のファイルを持ち歩くのが遥かに多いとか、バカ過ぎるだろ。

ユーザーは簡単に使えれば中のコードがどうとか何の言語とかは優先度が低い。

Excelが前提のVBA批判をしてる自覚ある?
世の中には複数ファイルのツールってExcelの何?
なんか、ひとりよがりに感じるな。
0877デフォルトの名無しさん
垢版 |
2018/07/27(金) 08:58:29.44ID:5SOHwwXD
適材適所とか言っておいてこれだよ
どんな場所でもVBAが適材になると思ってるらしい
0879デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:06:33.39ID:9o30Opw+
日本語が通じないのが一番困るねぇ
なんでエクセルにpsをバンドルするって話にすり変わってんだよ
開発は複数のPs1でやって配布は1つのps1にバンドルしてやるって話だろが
0881デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:15:36.26ID:9o30Opw+
ファイル渡すだけ

インストールワンライナーをコピペしてシェル叩くだけ
あるいは1つのインストールスクリプトをダウンロードして実行するだけ

どっちも初回の手間は大して変わらんだろう

でも、エクセルファイル渡しは後々のバージョン管理で混乱するから、総合的に見てインストールのほうが楽だね
0882デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:18:56.01ID:9o30Opw+
エクセルは他のもの要らないんだー

見つからない参照


鉄板あるあるネタwww


psはライブラリなければセントラルリポジトリからとってくるだけなのでこんなアホな目に合わんで済む
0883デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:26:36.44ID:2qIHcbej
ライブラリなんて使うからそうなる
全部自分で1から書き上げるか、歴史ある秘伝の自作ソースをコピペすれば事足りる
工夫で乗り切れるのだ




らしいっすよ?
0884デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:44:53.66ID:hpcoy/E6
>>877
だから話の流れを読め。
Excel限定のVBAの話から始まっている。
どんな場所でもでは無い。
Excel限定だ。
元々の>>871が既にExcel限定を考慮せずにおかしなことになってる。

>>878
そうとも限らない場合もあるけど基本的にはその通り。
それに対してどんな場合でもVBAはダメっていう主張が有って、VBA側はそれに反論してる。
0885デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:47:15.71ID:hpcoy/E6
>>881
その手間が既に面倒くさいだろ。
しかもブック開いてるのに別スクリプトも動かすのか?

めんどうだわ。
0886デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:51:06.22ID:hpcoy/E6
>>882
そもそも基本的にMicrosoft謹製以外は使用NGが普通だぞ。
ライブラリのコードを全て把握してるとか自社で作成したものなら別だが。
0887デフォルトの名無しさん
垢版 |
2018/07/27(金) 13:10:58.41ID:2qIHcbej
>>885
Excelにくっついてくるソルバーアドイン使うのでさえ
オプションクリックしてアドインクリックして有効なアドインクリックしてチェックボックスクリックして…
とかやるのよりよっぽど簡単
0889デフォルトの名無しさん
垢版 |
2018/07/27(金) 18:29:23.81ID:HpMLTKup
>>884
Excelありきの話ならVBAスレでバトルしてこい

ここはPowerShellスレでPowerShellはなんでもできるオールラウンダーだ
PSerは心が広いからExcelコントロールの話をするなということはない
だがExcelの話題で縛れというなら流石に付き合う理由はない

繰り返す
Excelありきの話ならVBAスレでやれ
0890デフォルトの名無しさん
垢版 |
2018/07/27(金) 18:34:48.47ID:hpcoy/E6
>>889
そうなんだよな。
本当は長居するつもりも無かったんだが
頓珍漢なレスが多くて反応して今に至ってる。
0891デフォルトの名無しさん
垢版 |
2018/07/27(金) 18:37:15.79ID:hpcoy/E6
元々VBAスレがPowerShell信者に荒らされてな。
そのままスレが最後までいって次が立つまでの間にこっちに書いたらこうなった。
0894デフォルトの名無しさん
垢版 |
2018/08/05(日) 15:25:02.08ID:iWriYPq8
C#は.NET無い環境だとブレークポイントで止めながらデバッグとか出来ないってことでいいのでしょうか?
0898デフォルトの名無しさん
垢版 |
2018/08/08(水) 06:10:45.62ID:9IQgpJP5
Add-TypeでC#をコンパイルしてアセンブリを吐き出すことってできない?
cscをつかうかCodeDOMをつかうっきゃないか
0902デフォルトの名無しさん
垢版 |
2018/08/12(日) 11:52:57.19ID:AqaK+sLZ
「Write-Host $Args[0]」とだけ書いたスクリプトを、コマンドプロンプトから
「powershell ./test.ps1 "(笑)"」
と呼び出すと「CommandNotFoundException」が発生します。

括弧が悪いようですが、やっぱり渡す前に「"`(笑`)"」みたいにバッククォートで括弧をエスケープするしかないんですかね?
実際は引数に何が来るかわからないので、できればPowerShell側でなんとかしたいんですが。
0906デフォルトの名無しさん
垢版 |
2018/08/15(水) 21:56:44.38ID:JQmIXjO5
>>905
店名は「笑」と書いてショウと読むのに対し,
「(笑)」は「(笑い)」の省略されたものなのでワラもしくはワライと読むはずなので,
その画像は不適切
0907905
垢版 |
2018/08/16(木) 23:27:16.70ID:3IMawj9A
>>906
いや、そもそもスレチなんでまともに相手しないであげて下さいw

ところでPowershellで何かわからないことあってググると
大体「http://mtgpowershell.blogspot.com/」のサイトがヒットすることが多いんだけど
このサイト運営してる人ってすごく頭がいいんだろうなあ
0910907
垢版 |
2018/08/17(金) 21:38:03.34ID:OW713aU2
>>909
俺が悪かったのでもうスレチにマジレスは勘弁して下さい。(^_^;)

>>908
Powershellの書籍まで出してる人のサイトか、すごいですね。
使えるTIPSあるかひと通り見てみますね。
0912デフォルトの名無しさん
垢版 |
2018/08/26(日) 22:38:58.94ID:BD3/9DfM
特化された言語と比べなければ十分シンプルかな
cat $1 | % { $a = -split $_; $a[3] + $a[2] }
変数への代入が少しやぼったく感じる
0913デフォルトの名無しさん
垢版 |
2018/08/27(月) 08:30:13.32ID:C7OBrvX6
ふむふむ、笑は「わら」って読まないのか…
1つ勉強になったわ
            笑笑店主
0914デフォルトの名無しさん
垢版 |
2018/09/05(水) 21:03:41.11ID:223DM7Lb
>>889
「PowerShellは何でもできる」は嘘。
お前は死んでいい。つーか死ね。
PoewerShellやっても背は伸びなかったし、彼女出来なかったし、宝くじにも当たらなかったわ!!!!

まぁそれは冗談として。
「何でも」ってのは流石に撤回しろよ。

あ、俺は >>884 ではない。
0916デフォルトの名無しさん
垢版 |
2018/09/05(水) 22:18:06.97ID:+hZ+CXx5
>>914
> PoewerShellやっても背は伸びなかったし、彼女出来なかったし、宝くじにも当たらなかったわ!!!!
それパチモンやん
0920デフォルトの名無しさん
垢版 |
2018/09/06(木) 06:56:43.48ID:OzF+wVKL
蜆ってしじみのことか
PowerShell…米国の製薬会社で開発された貝のサプリかな
0921デフォルトの名無しさん
垢版 |
2018/09/06(木) 21:28:59.42ID:tWUwV9UN
Powershellやりはじめたら台風被害にあったよ><

家の前の自転車が倒れただけだけど
0922デフォルトの名無しさん
垢版 |
2018/09/08(土) 14:31:58.13ID:oTozgSe4
PowerShell Core 6.x (以下 PS6) を導入した環境でスクリプトを実行する際、
実行環境を容易に 旧来の PowerShell 5 (以下 PS5)、PS6 とで
切り替える方法ってありますか?

モジュールの関係で PS5 でないと動作しないものもあるので、こっちのスクリプトは
PS5 で動かしたい、ほかは PS6 で、って感じで混在してます。

海外のスレッドでは、拡張子「.ps6」を独自に追加してそれで切り替えれば?みたいな
回答が出てましたけど、汎用性に欠けるのであんまりそういうことはしたくないんです。
Linux みたいに shebang 行で切り替えられれば一番なんですけど。

なにかアイディア無いですか?
0923デフォルトの名無しさん
垢版 |
2018/09/08(土) 14:40:20.95ID:MO8wxn5E
一行目読み取ってどっちを起動するか切り替える実行ファイルつくればいいやん
0924デフォルトの名無しさん
垢版 |
2018/09/08(土) 15:06:48.98ID:hiBN1no6
切り替えるってのがよく分からん
そもそもps1ファイル自体は実行しても何も起こらないんじゃなかったっけ
0925デフォルトの名無しさん
垢版 |
2018/09/08(土) 15:24:39.69ID:YwBJn4st
そりゃスクリプトはテキストファイルだから実行形式じゃないよ
画像ビューアにコマンドライン引数で画像パス渡せば画像が開くでしょ
スクリプトの実行はそれと同じことやってるの
なんでプログラム板でこんなこと説明しないといけないんだ
0926デフォルトの名無しさん
垢版 |
2018/09/08(土) 16:26:12.38ID:L0x65Qz7
いやだからさ
実行元がpwshとpowershellで明確に違うのに何を切り替えるのか分からんのよ
0927デフォルトの名無しさん
垢版 |
2018/09/08(土) 16:37:52.36ID:nMBTba9u
拡張子の関連付け問題の話?
バ―ジョンチェックとどちらで起動するかのリストを持ってる振り分けアプリ作って、.ps1への関連付けをそれにするとか。
0928デフォルトの名無しさん
垢版 |
2018/09/08(土) 16:47:51.96ID:oKnpK5oG
実行された環境がPS6だったら自身をPS5で実行して終了するスクリプトを
PS5で実行したいファイルの頭に書いておけばいいんじゃね
0929デフォルトの名無しさん
垢版 |
2018/09/08(土) 17:33:30.08ID:oTozgSe4
例えば、Active Directory 管理用モジュール「ActiveDirectory」は、現状
powershell.exe でしか動かず、pwsh.exe ではインポートできないわけ。

--------
参考
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/breaking-changes-ps6?view=powershell-6
PowerShell スナップインは、PowerShell モジュールの前身ですが、PowerShell コミュニティではあまり使用されていません。
-- snip --
現時点では、Windows および Windows Server 内の ActiveDirectory および DnsClient モジュールに影響します。
--------

というわけで、今俺が作ってるものだと、以下のものが混在してる。
イ)powershell.exe でしか動かない
ロ)pwsh.exe でしか動かない
ハ)どっちでも動く

で、〜.ps1 ファイルを実行する際に、右クリックして「PowerShell で実行」とすると、何もしなければ powershell.exe で
実行される。自分が作ったものはほとんどが(ハ)なんだけど、時々(ロ)もあって、それを実行するときは右クリックして「PowerShell で実行」が出来ないんで面倒。

今検討してるのは、
a) pwsh.exe でしか動かないものは拡張子を .ps6 でにして、Windows に ps6 を pwsh.exe に関連付ける
b) sendto フォルダに pwsh.exe で実行させるバッチファイルを置く
c) バッチファイル (〜.cmd) に、実行環境ごと書いてしまう (参考 http://d.hatena.ne.jp/hake/20180218/p1 )

なんだけど、ほかにやりよう無いかね。
0931デフォルトの名無しさん
垢版 |
2018/09/08(土) 18:26:03.12ID:HSx0xrFN
そんだけならコンテキストメニューを拡張して
「PSV5で実行」を追加すれば良くね
0932デフォルトの名無しさん
垢版 |
2018/09/08(土) 19:09:29.22ID:nMBTba9u
右クリックなら選べるからコンテキストメニューをどうにかすべきだな。

ダブルクリックの話かと思ってた。
0934デフォルトの名無しさん
垢版 |
2018/09/08(土) 21:00:30.80ID:oTozgSe4
>>928
イメージとしてはこんな感じかな。たしかにうまくいきそう。
ありがとう、明日試してみる。
-----------
<# ps1 の関連付けが powershell.exe の状態 (デフォルト) で、pwsh.exe で実行させたいものの場合 #>
# 実行環境が ver 5 以下の場合
if ($PSVersionTable.PSVersion.Major -le 5) {
pwsh.exe $MyInvocation.MyCommand.Path
exit
}
# 以下、ver 6 以上で実行させたい内容
0935デフォルトの名無しさん
垢版 |
2018/09/08(土) 21:11:46.23ID:oTozgSe4
>>931 >>932
もちろんそれでも十分可能なんだけど、以下の理由でできればカスタマイズは避けたいんです。スクリプト内だけで完結させたい。

・マシンがたくさん、OS も複数種類、ユーザプロファイルもたくさんあるので、標準構成からあまりいじりたくない
・お客さんに納品する可能性も考慮
0937デフォルトの名無しさん
垢版 |
2018/09/09(日) 12:54:55.70ID:PZb39582
運用マニュアルなしで議論してもしょうがないでしょ
このスクリプトはver5環境で実行してくださいと一言書いとけば済む話
0938デフォルトの名無しさん
垢版 |
2018/09/09(日) 13:48:43.10ID:b90Mhdwq
そういう能書きが書いてあっても何のこっちゃ分からんという人に配布しなきゃいけない場合もあるからなぁ
お客さんに運用対応を要求するのも大変なことだし
0939デフォルトの名無しさん
垢版 |
2018/09/09(日) 14:14:36.64ID:R8hBsgvF
>>937はこの手の仕事したことないんだろ
マニュアル書いても
「ver5環境ってなんだ?」
とか、そもそも説明なんて読んでなくて
「うまく動かないので至急なんとかしてください」
って言われるだけのこと
レス数が900を超えています。1000を超えると表示できなくなるよ。

ニューススポーツなんでも実況