【最強CUI】PowerShell -Part 2at TECH
【最強CUI】PowerShell -Part 2 - 暇つぶし2ch765:デフォルトの名無しさん
18/05/24 18:47:46.05 5HLXkVSJ.net
なんでもかんでも再発明が悪という風潮はよろしくない
少量の些細な再発明を避けるために大規模なソリューションを導入すると
そのソリューションの管理コストや障害リスクの方が高くなってしまう

766:デフォルトの名無しさん
18/05/24 18:52:23.87 YkaVpFZu.net
なんで制御PCと同じのでやろうとしてるのか?
そもそもwi

767:デフォルトの名無しさん
18/05/24 19:37:16.12 8RmhyhjF.net
そういう設定なんだなというのは皆わかった上でディスカッションしてる
なので野暮なツッコミは無しにしようや

768:デフォルトの名無しさん
18/05/24 19:58:22.10 HJmOkmLD.net
勉強とは再発明することだと思うんがなあ

769:デフォルトの名無しさん
18/05/24 21:09:40.32 zQgi4Vqc.net
>>735
今はデータをUSBで他のPCに移してから処理してる。
制御PCでやりたい理由は、USBはパスワード付きっていうのもあって面倒で、しかも常に最新の情報を求められるため日に数回USBで出し入れすることになるのでより面倒。
それが毎日となるとめちゃくちゃ面倒。
ということで不慣れなpowershell でやろうとした次第です。

770:デフォルトの名無しさん
18/05/24 22:23:06.92 A0AqRoYu.net
別PCでC#の解析用アセンブリ作ってPowerShellから呼び出したらいいんじゃないの

771:デフォルトの名無しさん
18/05/24 22:34:04.69 JOD0E1R+.net
ネットも禁止な所?

772:デフォルトの名無しさん
18/05/24 22:42:20.58 OVWSg8Eh.net
オフラインです。C♯は難しそうなので。
すみません、私事を語り過ぎました。元の話題に戻ってどうぞ

773:デフォルトの名無しさん
18/05/24 22:53:30.12 6yspu/tD.net
死亡事故が起こるようなマシンだろ
俺なら通常はネットから切り離しとくわ

774:デフォルトの名無しさん
18/05/25 02:05:25.85 gztHcn54.net
>>7


775:42 オフラインって書いてますやん



776:デフォルトの名無しさん
18/05/25 03:37:02.75 JRXZZDGl.net
会話がかみ合ってないな
頭悪そう

777:デフォルトの名無しさん
18/05/25 03:58:22.29 cDmsKy0H.net
いや現実の問題設定は良い刺激になったよ
そういうのないと同じ話題がループしちゃうし

778:デフォルトの名無しさん
18/05/25 06:29:46.18 zDcEhAN3.net
そのPCで処理しても結局USBで持っていかないと駄目なんじゃ

779:デフォルトの名無しさん
18/05/26 18:35:06.63 2fyQupuv.net
AddTypeでNuGet Packageを参照に追加できれば便利だと思うんだがなぜないんだろ
いちいちpackageダウンロードしてzip解答してdll探してAddTypeするの面倒くさい
AddType -PackageSource URLリンク(api.nuget.org) -PackageName Oracle.ManagedDataAccess -Version 12.2.1100
$connection = New-Object -TypeName Oracle.ManagedDataAccess.Client.OracleConnection
こんなんできたら絶対便利だろ

780:デフォルトの名無しさん
18/05/27 01:15:09.38 ek08JVnr.net
そういうコマンドレットを作ればいいんじゃないの

781:デフォルトの名無しさん
18/05/27 10:22:45.07 FRc1Igvs.net
こういうのは末端のユーザーじゃなくMicrosoftが責任持って整備すべき仕事だよなぁ

782:デフォルトの名無しさん
18/05/27 10:32:40.51 uKjxyzN7.net
>>747
Visual Studioだと全部やってくれるのにな

783:デフォルトの名無しさん
18/05/27 10:54:12.69 kiqwqKPT.net
URLリンク(www.powershellgallery.com)
この中にお望みの物ないの?
俺は調べてないけど

784:デフォルトの名無しさん
18/05/28 20:48:57.60 ANh8mcyB.net
csv読み込みのときに、♯が入ってる行が消えるのですが回避方法あるでしょうか?
バージョンは2のため、cat|convertfrom- csv を使っています。

785:デフォルトの名無しさん
18/05/29 10:01:43.76 JWI1PS/k.net
cat|♯を消す処理|convertfrom- csv

786:デフォルトの名無しさん
18/05/29 13:59:12.26 /wWb7+KW.net
半角井桁でも全角井桁でもなくシャープがダメ文字ってことなら、いわゆる機種依存文字に対して内部的に文字化けしてるのかね
Get-Contentの-Encodingパラメーターを変えて試行錯誤してみるのはどうだろ

787:デフォルトの名無しさん
18/05/29 20:04:16.63 uVfBdj0+.net
>>753
おっしゃる通りcat時点ではシャープのある行も問題なく表示されていたのでそこでシャープを適当な文字列に置換する事で回避出来ました。
なお文字化け等では無かったためencodingは関係ありませんでしたが、お二方ともアドバイスしていただきありがとうございました。

788:デフォルトの名無しさん
18/05/29 21:24:14.97 NIS7bYGB.net
csvでシャープで始まる行はコメントとみなされる

789:デフォルトの名無しさん
18/05/29 21:48:09.49 JDVJC7kx.net
C#をAddTypeする#だけに

790:デフォルトの名無しさん
18/05/29 22:37:29.79 DjF05HP4.net
>>756
そんな仕様初めて聞いた
Excelは#で始まる行も読み込むよ

791:デフォルトの名無しさん
18/05/29 23:17:16.03 uVfBdj0+.net
>>756
そういう仕様なんだね。
プログラム内じゃないんだから勝手にコメントアウトしないで欲しい

792:デフォルトの名無しさん
18/05/30 01:59:47.06 yjZg0US2.net
RFCではCSVのコメントなんて定義されてないんだがな
#がコメントとか方言です

793:デフォルトの名無しさん
18/05/30 07:47:42.04 fRdW4Y4e.net
「♯を含む行」が消えるって言ってるんだから、実は「#で始まる行」が消えてた、なんてことは流石にないでしょう

794:デフォルトの名無しさん
18/05/30 08:14:02.91 fRdW4Y4e.net
と思って検証したらマジじゃねーかバーロー
v2では使えないけどcat -raw|convertfrom-csvなら無視されな�


795:ュなるから、#がCSVコメントとして無視されてるのではなくて、#をコメント行相当のオブジェクトとして返しているGet-Content側がタチ悪いという話じゃないだろうか



796:デフォルトの名無しさん
18/05/30 10:30:58.30 962OkqnQ.net
" で囲んだら大丈夫とか?

797:デフォルトの名無しさん
18/05/30 22:12:34.15 8qi2Khqy.net
PCに入ってるPowerShellのバージョンを簡単に切り替える方法はないのでしょうか?
作成したスクリプトがバージョン2でも3でも動くか等の検証を行いたいのですが?

798:デフォルトの名無しさん
18/05/30 22:36:17.40 JXGp/YkD.net
旧バージョン互換で動かすオプションあった気がする

799:デフォルトの名無しさん
18/05/31 17:20:46.88 ZTEAvdsG.net
そのCSV は各列を、" " で囲んでないのか?

800:デフォルトの名無しさん
18/05/31 21:31:21.76 3wC9yI4G.net
Windows PowerShell 2.0 エンジンの開始
URLリンク(docs.microsoft.com)

801:デフォルトの名無しさん
18/06/01 19:12:06.06 j/MM0qyt.net
ISEがインテリセンス使ったら落ちてたのが
KB4100403で修正されたらしい(未確認)

802:デフォルトの名無しさん
18/06/04 18:18:51.32 duSCMV5/.net
エクセルに書き込む時、例えば
for(i=1; -le 1000;i++){
sheet.cells.item(i,1)=i*5

こんな感じにすると非常に動作が遅いのですがもっと高速にする方法はあるでしょうか。
なおvbaでは、
for i=1 to 1000
arr(i,1)=i*5
next
と配列に入れておいてから、
oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(UBound(arr, 1), UBound(arr, 2))) = arr
と一括で書き込むと速いのですが、PSでもこのような書き方はあるでしょうか。

803:デフォルトの名無しさん
18/06/04 19:50:56.49 gQR1ea5z.net
>>769
速いかは知らんけどそれと同じようにするならこんな感じかね
$n = 1000
$arr = New-Object "object[,]" $n,1
1..$n | foreach { $arr[($_-1),0] = [int]$_*5 }
$sheet.Range($sheet.Cells.Item(1, 1), $sheet.Cells.Item($n, 1)) = $arr

804:デフォルトの名無しさん
18/06/04 23:24:00.90 OF0qTMZ9.net
>>770
ありがとうございます。多次元配列を使えばよいのですね。
webで調べると多次元配列と多段階配列(ジャグ配列)がごっちゃになってるサイトもあって混乱していましたが、770さんの簡潔な記述をみて理解出来ました。

805:デフォルトの名無しさん
18/06/06 23:07:10.85 N8yiaTQz.net
gradle的なタスクランナーDSLは無いの?

806:デフォルトの名無しさん
18/06/09 16:51:36.72 XSSJlv/Q.net
PowershellからExcelのユーザフォーム(コマンドボタン)を非表示かクリックできないようにしたいのですが、いくつか試してもうまく設定できませんでした。
ご存知の方がいたら、ご教示いただければ。

807:デフォルトの名無しさん
18/06/09 17:03:33.87 Tjb3C0On.net
試したコードを晒せば修正してあげるよ^^

808:デフォルトの名無しさん
18/06/09 18:02:05.59 54mp5fzV.net
>>773
別のインスタンスからフォームを操作するってこと?
参考にVBAだとどうやるの?

809:773
18/06/11 12:16:46.97 vpJG/a5Y.net
以下で動くことは確認しましたが、できたらPowershellだけで完結したいです。
$excel = New-Object -ComObject Excel.Application;
$book = $excel.Workbooks.Open('~ファイル名~');
$num1 = $excel.Worksheets.count ;
$array = @() ;
for ( $i1 = 1 ; $i1 -le $num1 ; $i1++ ){ ;
if ( $excel.Worksheets.Item($i1).name.substring( 0, 4 ) -eq 'xxx_' ) { ;
$array += $excel.Worksheets.Item($i1).name ;
} ;
} ;
for( $i2=0; $i2 -lt $array.count; $i2++){ ;
$shtname = $array[$array.count-$i2-1] ;
$MDB_index = $excel.Worksheets.Item('MDB').index ;
$excel.Worksheets.Item($shtname).move( $excel.Worksheets.Item( $MDB_index ) ) ;
$excel.Worksheets.Item('MDB').move( $excel.Worksheets.Item( $shtname ) ) ;
$excel.Worksheets.Item($shtname).name = 'yy_' + $shtname.substring( 4, $shtname.length - 4 ) ;
} ;
$excel.run("Unable")

810:773
18/06/11 12:17:21.17 vpJG/a5Y.net
* VBAのUnableの中身 ;
Sub Unable()
Dim SHTNAME As String
Dim NUMBER As Integer
Dim I1 As Integer
NUMBER = ThisWorkbook.Worksheets.Count
For I1 = 1 To NUMBER
SHTNAME = ThisWorkbook.Worksheets(I1).Name
If Mid(SHTNAME, 1, 3) = "yy_" Then
ThisWorkbook.Worksheets(I1).CBT1.Enabled = False
End If
Next
End Sub

811:デフォルトの名無しさん
18/06/11 23:51:03.62 gcU8d3qp.net
>>776
xxx_のシートをMDBの後ろに並べたいってことでいいんかね?
$book.Sheets[$book.Sheets.Count..1] | where { $_.name -like "xxx_*" } | foreach {
$_.move([Reflection.Missing]::Value, $book.Sheets("MDB"))
$_.name = $_.name -replace "^xxx_","yy_"
$_.OLEObjects("CBT1").Enabled = $false
}

812:773
18/06/12 12:30:53.64 ekyc4Iri.net
>>778
VBAに依存せず実行できました。感謝。

813:デフォルトの名無しさん
18/06/21 19:07:26.37 K/kbKit1.net
windows10ですが
Get-ItemPropertyでLastWriteTimeを見てみると
エクスプローラで表示される更新日時と異なるファイルが有りました
更新日時の方が作成日時より前の日付になってるので
おそらく LastWriteTimeの方が正しい日付だと思います
これを訂正するためにPSからエクスプローラの更新日付を取得したいのですが
エクスプローラの更新日時がどこから来ているものかさっぱりわかりません

814:デフォルトの名無しさん
18/06/21 19:25:07.20 UNnnYLs6.net
Utc?

815:780
18/06/21 20:21:17.18 K/kbKit1.net
いくつかファイルを調べてみると、更新日時とLastWriteTimeの差が一週間離れているのも有るので
タイムゾーンの問題とは考えにくいです
よく見ると、作成日時もCreationTimeと10日くらいのずれが有りましたw
エクスプローラが詳細プロパティ以外の日付を参照してる意味が分かりません
windowsの強制メジャーアップデートで何度かクラッシュした影響でファイルが壊れてるのかも

816:デフォルトの名無しさん
18/06/23 00:44:45.99 Ut6U9K8s.net
代替データストリームじゃね?

817:デフォルトの名無しさん
18/07/04 22:21:13.01 gFgZc5FG.net
JBF

818:デフォルトの名無しさん
18/07/04 23:23:31.98 acN7B5+I.net
なんでこんなに過疎ってるんですか

819:デフォルトの名無しさん
18/07/05 22:43:24.58 KzEq2oHL.net
「書き込みがあったら反応しよう」と思ってる人がたくさんいるからかな?

820:デフォルトの名無しさん
18/07/08 03:18:34.99 3ZrH1Hyw.net
わしはね、ローカルの小物guiでps始めよう思ってたらhtaというものを発見してしまったんじゃ

821:デフォルトの名無しさん
18/07/08 04:04:12.13 UfjkVwX1.net
失われた古代技術

822:デフォルトの名無しさん
18/07/14 21:56:02.39 RVDUVOmY.net
若者が「HTAって使えるんじゃね?」と思ってしまうのは仕方がない。
オッサン~ジジイが「HTAを発見した」つったら「今まで何して生きてきたの?」としか言いようがない。
Windowsでのローカルの小物GUIは、今、滅亡の危機ですらある。
WordやExcelを使った自動化すら、今後もできるかどうか怪しい。

823:デフォルトの名無しさん
18/07/14 22:29:26.95 Lxo


824:RiW+E.net



825:デフォルトの名無しさん
18/07/14 22:38:50.55 utl6Xayz.net
ローカルの小物GUIってなんだよ

826:デフォルトの名無しさん
18/07/14 22:50:10.64 P6K2NPR4.net
GUI付のしょうもないアプリ

827:デフォルトの名無しさん
18/07/14 23:12:51.46 RVDUVOmY.net
ローカル実行できるスクリプトで動くGUIアプリに決まってるだろ。
Excel や Access の VBA がその代表格。
COM がベースだから切られる方向なのは分かる。
でも代替できるものがない。
いっとき PowerShell+WPF が期待を担ったが…
・呼ばれる側のアプリにコマンドレットの実装が必要
・.NET ごとオープンソースの世界に行ってしまって Windows そのものが切られそう
・そういうのは C# で書いて配れ、と明示的に言ってくれた方がまだ楽。
が、MS はダンマリを決め込んでいるんだよなぁ…

828:デフォルトの名無しさん
18/07/15 00:32:04.05 X2092vNg.net
>>791
なんなんでしょうね

829:デフォルトの名無しさん
18/07/15 01:35:23.34 0pMWk4zA.net
>>793
>COM がベースだから切られる方向なのは分かる。
>でも代替できるものがない。
よく調べてないんだけどVisual Studio Tools for Officeとかはダメ?

830:デフォルトの名無しさん
18/07/15 01:35:37.01 SEkGxxwq.net
powershell入ってないXP以下で使えるんすよ
判ってくださいよ

831:デフォルトの名無しさん
18/07/16 21:11:22.99 HqjsUdw9.net
とりあえず、PowerShellが「最強CUI」とかいう寝言は取り下げた方がいい。誤解を招く。

832:デフォルトの名無しさん
18/07/16 21:19:57.77 Qq5myI16.net
はいはい、しゅごいでちゅねー

833:デフォルトの名無しさん
18/07/16 21:42:32.84 h7LXYR/p.net
最強だが。
ただ使っている人は少ない。

834:デフォルトの名無しさん
18/07/16 21:51:20.37 XBIjWYki.net
>>797
誤解してるのはお前だけだからお前がどっかに行けば解決

835:デフォルトの名無しさん
18/07/17 23:10:59.27 yoTx9oxy.net
>>798-800
管理目的なら最強だろう。確かに。
が、それ以外の目的にはおおよそ優しくない。てゆーか元の開発陣がそう言ってる(管理目的、API指向)。
OSSになったから 6以降も(3でもやったけど…)破壊的な仕様変更をゴリゴリやりそう。
特に PowerShell Desktop は今後バージョンアップは無さげだから、管理系以外の Win系のユーザーは手を出す理由がない。
Win系ですら 「引き継ぎを考えたら VBScript で書いておこうか…」てなる。
WPF は死亡寸前だし。
Winユーザーはバッチや VBScript の後継としての役目を捨てようとしている PowerShell に文句を言う筋合いはあると思うがね。
純粋な対話型CUI の最強は bash系列だし。
何言ってんの??
どこがどう最強なのか言って欲しいわ。
特に、Office系の自動化なんて COMオブジェクトに頼らないと無理だろ。
PowerShell で書くといちいち Excel のセルですらリソース開放が必要でクソ面倒。
Set objExcel = Nothing
とサクッと書けるほうがいいに決まっている。
PowerShell は万能じゃねーんだよ!馬鹿ども。

836:デフォルトの名無しさん
18/07/17 23:14:01.71 fhQFSH5P.net
>>801
管理目的とは?

837:デフォルトの名無しさん
18/07/17 23:20:39.18 fwrxWQ2y.net
C#erだから.NETライブラリがそのまま使えるPowerShell好きだわ

838:デフォルトの名無しさん
18/07/17 23:25:15.93 fhQFSH5P.net
>>803
どんな用途で使ってる?

839:デフォルトの名無しさん
18/07/17 23:32:27.62 fwrxWQ2y.net
>>804
最近作ったのはCのヘッダーからC#ラッパー生成するやつ

840:デフォルトの名無しさん
18/07/18 12:45:25.76 xS6rtIKl.net
vbsからps


841:をキックする



842:デフォルトの名無しさん
18/07/19 23:44:42.87 puBIzWD6.net
>>806
生理的に嫌すぎる

843:デフォルトの名無しさん
18/07/22 13:00:02.17 ZN+SAgqe.net
VBAスレに来てるPowerShellゴミクズ荒し何なの?
PowerShellの工夫はより良くするための工夫でVBAの工夫は欠陥を補う工夫って、どのロで言うんだろうね。
VBAだとソース管理出来ないというから、ソース抜き出してソース管理ツールに渡すのはダメという意味なんだろうけど、その割にPowerShellだとVisualStudioと連携できるとか言い出すダブスタ。
PowerShellでC#コンパイル出来るとか、バカ丸出し。
csc使うんだったら何だって出来るだろう。
コイツがムカつくのはそういう工夫を全て否定する所。
それを否定するならPowerShellだってゴミクズだろう。
そういう工夫こそが大事なのに。

844:デフォルトの名無しさん
18/07/22 13:30:20.53 FoHjHQaV.net
スクリプトなんて適材適所で何使ったっていい
他人がなんかいちゃもん付けてきたら、
「こいつ初心者で一時的に心酔してバカ発言してるんだな、
 あと数ヶ月もすればこのときのことを思い出して恥ずかしさにそこらへんを転げまわるんだろうな」
程度に気の毒がってりゃいいさ

845:デフォルトの名無しさん
18/07/22 13:32:06.23 G9t5vsVs.net
エクセルなんて要らん工夫して紙と電卓を使いこなせば事務作業はできる
会社に支給されたパソコンを目の前置いて、こう主張するおじいさんが居たらどう思う?
馬鹿だねーエクセルなんて簡単なのになんで電卓使うの?
社員ならエクセル使っていいのになんで?
そう思わないかな?
もし思わないなら根本的に感覚がズレてるので同意を得るのは難しいと思うよ

846:デフォルトの名無しさん
18/07/22 13:33:43.75 /fuF+goF.net
つかわざわざこっちにきて何がしたいん?
そいつに言えばいいやん
お前もゴミだろう

847:デフォルトの名無しさん
18/07/22 13:35:02.58 G9t5vsVs.net
>>811
ことごとく論破されたので逃げてきたんだろう

848:デフォルトの名無しさん
18/07/22 14:06:13.49 YGqHpPTt.net
>>811
VBAのスレが荒れるのが嫌だからでしょ
考えたらわかるじゃんw 脳みそあるの?

849:デフォルトの名無しさん
18/07/22 14:07:05.72 YGqHpPTt.net
>>812
PowerShellユーザが迷惑かけてるんだから
スレとしての責任が問われてる

850:デフォルトの名無しさん
18/07/22 14:07:45.01 ZN+SAgqe.net
散々論破しているのに最後まで居座られて迷惑してスレが終わったからだよ。
そしてPowerShellの立場はExcelと被るわけでどっちも適材適所だろ。
その場に合ったのを使えば良いんだ。
奴は自分がPowerShellを貶めてるのに気付いて無い。

851:デフォルトの名無しさん
18/07/22 14:15:13.20 /fuF+goF.net
責任とって立ててきてやったぞ
存分にレスバを楽しんでくれ
Excel VBA 質問スレ Part55
スレリンク(tech板)

852:デフォルトの名無しさん
18/07/22 14:16:06.18 WPYgWuMH.net
読んできた
Rubyキチが紛れてるのが無理矢理すぎて笑える

853:デフォルトの名無しさん
18/07/22 14:17:54.05 YGqHpPTt.net
>>816
馬鹿野郎、てめんとこの人間が迷惑かけてんだから
うちの者がご迷惑おかけして申し訳ありません
と謝罪するのが筋だろうが

854:デフォルトの名無しさん
18/07/22 14:19:08.41 YGqHpPTt.net
ほんとPowerShellは他人に迷惑かけてバッカやな
ほんまクズやな、PowerShellのせいやろな

855:デフォルトの名無しさん
18/07/22 14:20:41.76 /fuF+goF.net
照れんなよ
立ててくれてうれしいんだろ

856:デフォルトの名無しさん
18/07/22 14:23:23.96 YGqHpPTt.net
行動は早いけど間違ってる人っているよね

857:デフォルトの名無しさん
18/07/22 14:24:51.70 1tw3f2DK.net
オマエやんそれ
レスは早いがトンチン�


858:Jン



859:デフォルトの名無しさん
18/07/22 14:26:02.34 YGqHpPTt.net
>>822
ぼくは何も行動してないからね、完全に無害だけど
スレ立てしちゃった人がいるんだよ、ぼくはその人を知ってるんだ

860:デフォルトの名無しさん
18/07/22 14:26:31.77 YGqHpPTt.net
>>816
こいつです、こいつVBAのスレを立てやがりました

861:デフォルトの名無しさん
18/07/22 14:27:18.37 /fuF+goF.net
褒めすぎんなよ
当然のことをしたまでよ

862:デフォルトの名無しさん
18/07/22 14:27:57.35 YGqHpPTt.net
自分がどれだけ悪いことをしたのかについてもわかってないと思います
頭の悪い人っているんだなって思いました

863:デフォルトの名無しさん
18/07/22 14:28:40.17 YGqHpPTt.net
URLリンク(pbs.twimg.com)

864:デフォルトの名無しさん
18/07/22 14:30:32.96 YGqHpPTt.net
自発的に間違った行動をとる組織にとってのガン細胞が確認されました

865:デフォルトの名無しさん
18/07/22 14:30:55.52 YGqHpPTt.net
>>816 こいつガンです

866:デフォルトの名無しさん
18/07/22 14:31:21.33 YGqHpPTt.net
ガン、お前だったのか!?

867:デフォルトの名無しさん
18/07/22 14:31:43.01 YGqHpPTt.net
大造じいさんとガン

868:デフォルトの名無しさん
18/07/22 14:33:56.27 YGqHpPTt.net
なんでVBAのスレ立ててもうたんや
何してくれてんのや
PowerShellユーザが言い訳できないレベルで
全面的に悪いことになってまうやろ

869:デフォルトの名無しさん
18/07/22 14:35:11.72 YGqHpPTt.net
なんでや!?なんでやねん!なんでスレ立ててもうたんや!!
なんでもっと冷静に行動でけへんねん
スレ立てたら済むと思ったんか?
なに考えてんねん

870:デフォルトの名無しさん
18/07/22 14:36:13.45 YGqHpPTt.net
なんでこんな前例を作ってしまったんや
この過ちはPowerShellの後世に禍根を残すで

871:デフォルトの名無しさん
18/07/22 14:37:09.12 YGqHpPTt.net
>>831
大造じいさん「ぐぅぅ、わしはもうだめや・・・」

872:デフォルトの名無しさん
18/07/22 14:39:37.19 YGqHpPTt.net
さて、残念なことが起きました
この中にVBAのスレを立てた人がいます
正直に手を挙げてください

873:デフォルトの名無しさん
18/07/22 14:39:55.36 YGqHpPTt.net
>>816
お前や!!!

874:デフォルトの名無しさん
18/07/22 15:07:12.23 JJRFMnGG.net
いくら何でもこれはないわ。
どっちがよりクズかって言ったら断然VBA住人だろう。
PowerShell -Part 3
スレリンク(tech板)

875:デフォルトの名無しさん
18/07/22 16:11:00.92 YGqHpPTt.net
>>838
スレ立ててやったんやから感謝せえや

876:デフォルトの名無しさん
18/07/22 16:11:26.61 YGqHpPTt.net
当然のことをしたまでよ
照れんなよ

877:デフォルトの名無しさん
18/07/22 18:26:14.28 JJRFMnGG.net
>>839
ずいぶん可愛そうな環境で育ったんだな。同情するよ、ごめんな。

878:デフォルトの名無しさん
18/07/24 20:42:16.15 cNxRMkIk.net
>>808
> PowerShellでC#コンパイル出来るとか、バカ丸出し。
残念ながらそんな昭和脳レベルの話じゃないんだな w
URLリンク(yomon.hatenablog.com)スクリプト内でC%23コードを書いて使う

879:デフォルトの名無しさん
18/07/25 21:13:55.37 Yq3sixxb.net
Powershellのコマンドを使ってあるEXEを管理者権限で起動することって出来ないでしょうか?
いちいちEXEのショートカットを作って「管理者として実行」にチェックするのが面倒なので・・・
あ、OSはWin7です。

880:デフォルトの名無しさん
18/07/25 21:15:04.89 Yq3sixxb.net
↑OSはWin10でした。すみません。

881:デフォルトの名無しさん
18/07/25 21:41:07.86 ep37fxti.net
start hoge.exe -Verb runas

882:デフォルトの名無しさん
18/07/25 23:07:01.78 GlwT5bgj.net
>>842
あんまり、荒らすつもりは無いけどそれはダメダメだね。
というか、その昔俺もその手法使ってたし。
俺の書いたPS1ファイルのタイムスタンプを見ると2011年だからその記事より前だな。
あのね、何でC#のソースを動かさなきゃならんの?
そういう場面が有るとすればPowerShellだけで出来ないことをしようとする場合だろ。
つまり工夫で乗りきろうとしている場合なんだからVBAのスレを荒らしてた奴風に言わせればC#のソースを書かなきゃならん時点でPowerShellはゴミってことになるのよ。

883:デフォルトの名無しさん
18/07/26 00:24:48.95 xTcDuoaq.net
VBA内でC#のクラス定義してそのままVBA内で使えるようになってから�


884:o直してこい 何をするにも不合理に手間がかかるからVBAは糞だって言ってんだよ



885:デフォルトの名無しさん
18/07/26 00:32:39.24 A133ONF8.net
なんで既存のソース活用するのにcscだの別プロセスだの大げさなことしないといかんの?
.NETがあるのになんで態々COMだのwinAPIだの直で触らなあかんの?
っていう人間なので問題なしです

886:デフォルトの名無しさん
18/07/26 06:27:07.99 gfIbAgn/.net
>>847
でもPowerShellは激遅ですよ

887:デフォルトの名無しさん
18/07/26 06:40:44.04 /8jtV8/F.net
>>846
> そういう場面が有るとすればPowerShellだけで出来ないことをしようとする場合だろ。
バカなの?
・C#のほうが楽に書ける
・既存のコードが流用できる
とかあるだろ

888:デフォルトの名無しさん
18/07/26 08:08:40.25 OM9s1u3H.net
>>847
PowerShellだって不合理じゃねーか。
お前は都合の良いところばかり言う。
Excelブック1ファイルで完結できるようになってから出直しな。
>>850
同じことだ。
欠点を工夫で乗りきっているわけだから。

889:デフォルトの名無しさん
18/07/26 08:42:02.44 xTcDuoaq.net
工夫の簡単さがVBAとはダンチなんですが

890:デフォルトの名無しさん
18/07/26 09:04:14.03 EgEPuxK9.net
はるほど、ExcelVBAスレで暴れてた奴今度はこっちに来てたのか…

891:デフォルトの名無しさん
18/07/26 12:12:12.02 /8jtV8/F.net
>>851
どこが同じなんだよ w
> 出来ないことをしようとする

> 楽に書ける
> 流用できる

892:デフォルトの名無しさん
18/07/26 12:49:19.43 OM9s1u3H.net
>>854
出来ないことをしようとする。
←C#のコ―ドをそのままC#でコンパイルして、出来たプログラムを動かす。
出来ないことをしようとする。
←コンパイル済みのプログラムを高速に動かす。
出来ないことをしようとする。
←VisualStudioでGUIのデザインをする。
出来ないことをしようとする。
←面倒なことをPowerShell単体で実現する。
な、一緒だろ。

893:デフォルトの名無しさん
18/07/26 13:38:54.60 l6m81nf0.net
相変わらず日本語が通じない

894:デフォルトの名無しさん
18/07/26 14:42:38.06 /8jtV8/F.net
もう引っ込みつかなくなって意味不明なことを語りだしたか w

895:デフォルトの名無しさん
18/07/26 14:55:36.09 pqw8jMOd.net
PoshもVBAも
同じMS製品なんだから
ケンカすんなよ

896:デフォルトの名無しさん
18/07/26 18:46:55.24 BBodZQOS.net
VBAはMSの暗黒面だから一緒にしないでほしい

897:デフォルトの名無しさん
18/07/26 19:03:10.56 OM9s1u3H.net
日本語が通じないのはお互い様だろ。
C#に比較して楽に書けて無いだろ。
つまりC#を元に考えればゴミということになる。
別途VSCodeとかを入れるのは面倒じゃ無いのか?
C#のコード部品にもインテリセンスが効くのか?
楽だとすればそれはC#のことでPowerShellは文字列変数にコード入れなきゃならん。
そして文字列をC#のコードとして動かす為にもAdd-Type呼び出すなどと面倒なことをしなきゃならん。

898:デフォルトの名無しさん
18/07/26 20:41:15.58 T4rU0dQ5.net
>>860
まったくもってその通りで C#>PowerSell だよ
もっと書くと
C# > PowerSell >>>>>>>>> VBA
だけど
なんで唐突にC#と比べはじめちゃったの?

899:デフォルトの名無しさん
18/07/26 20:43:42.29 5d1EUyas.net
向こうでもVSCodeやらIDE入れたら~ってレスしてるやついるけどさ
VBAを主に使うのは事務屋

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

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

エクセルにあまり関わらない処理はPowerShellでやってもいいんじゃね
って感じだと思うの
(というか、現にウチがこれ)
この、VBA(VB6)かPowerShell「しか」手段がない前提で行けば、
C#のソース読み込むとか多少歪んだ使い方だとしてもVBAよりPowerShellを使いたくなる時があるのは理解できるだろ?
もちろんVBAもバリバリ使ってるけどな
なんでどちらかだけしか使う価値がない!!!みたいな話になってんだろ

900:デフォルトの名無しさん
18/07/26 21:19:35.67 xTcDuoaq.net
マクラーは何でもかんでもVBAでやりたがるから

901:デフォルトの名無しさん
18/07/26 23:53:09.37 8XjexWHE.net
Add-Typeはメタプログラミングするときに便利

902:デフォルトの名無しさん
18/07/26 23:56:00.76 OM9s1u3H.net
>>862
逆の話でね、こっちはず―っとそういうことを言ってるの。
その度にPowerShellしか価値が無いと言われてるんだよ。
ず―っと適材適所と言ってる。

903:デフォルトの名無しさん
18/07/27 00:00:29.39 /pOg/k3/.net
>>865
VBAでスクレイピングだとか1ファイルで完結とか言っといて適材適所を主張してます!は頭おかしいんじゃねえの?

904:デフォルトの名無しさん
18/07/27 00:03:25.35 hpcoy/E6.net
>>861
全くその通りじゃね―んだよ。
VisualStudioが入って無い、もしくは入れられない環境ではC#は意味がねえ。
だから適材適所なんだよ。
大体、PowerShellがVBAに勝てるわけねえんだよ。
VBAが使われる環境ではVBA>>>PowerShellだし。
PowerEellが使われる環境ではPowerShell>>>VBAだろう。
噛み合わねえんだよ。

905:デフォルトの名無しさん
18/07/27 00:06:37.08 hpcoy/E6.net
>>866
1ファイルになるのはExcelの環境だからだろ。
そういう土俵(環境)なんだからVBAが有利なのは仕方無いだろ。
スクレイピングもExcelブックにデータを展開するのが前提だぞ。
そうじゃなかったらVBAでやるべきじゃない。

906:デフォルトの名無しさん
18/07/27 00:13:06.60 hpcoy/E6.net
汎用的な開発だったら何でVBAでやるんだよ。
そりゃアホだろ。
VBAの議論をするならExcelの環境が大前提なんだから他の言語はそれに合わせなければならない。
だから他言語は不利になるのあたり前の話。
こういう話は当然PowerShellにもあるわけで、だから適材適所なわけ。

907:デフォルトの名無しさん
18/07/27 01:27:22.29 /pOg/k3/.net
>>867
噛み合わないのはお前の理解力と日本語能力のせいでは??
正直なんでいきなり演説かましてんだこいつって感じだぞ

908:デフォルトの名無しさん
18/07/27 06:29:32.02 Z7cB5M3n.net
1ファイルになるのがメリットみたいな言い分が謎
逆にデメリットだろそれは
ファイル分けて管理したほうが開発しやすいだろ常識的に考えて
最終的に配布を1ファイルにしたいならJSみたいにバンドルすりゃいいだけだし
なんならワンライナーのオンラインインストーラーでもいい

909:デフォルトの名無しさん
18/07/27 06:40:59.87 uuBPM4V2.net
>>871
> ファイル分けて管理したほうが開発しやすいだろ常識的に考えて
それは開発側の都合でしかない
そんな事を意識しない利用者にとっては単一ファイルの方がいいのは当たり前
> なんならワンライナーのオンラインインストーラーでもいい
インストールとかバカすぎる w

910:デフォルトの名無しさん
18/07/27 06:58:14.44 1B0+N/X4.net
ちっちゃな事で荒れるな。
IT土方同士仲良くしろ。

911:デフォルトの名無しさん
18/07/27 07:22:54.24 Z7cB5M3n.net
>>872
脊髄反射でレスしないで読んでから返せない?
ユーザー都合で1ファイルがいいなら、1ファイルにバンドルすりゃいいだろ、って読めなかった?
インストールがダメってのも意味不明だな
ユーザー目線ならそれこそ何ファイルだろうがツールとして使えれば良いのだから、インストールスクリプトは有力な選択肢になる
1ファイルが良いってのもそもそもお前の思い込みでしかなくて、世の中には複数ファイルのツールのほうが遥かに多く、利用されてる
ユーザーは結果として簡単に使えればそんなことは気にしないんだよ

912:デフォルトの名無しさん
18/07/27 08:02:02.45 uuBPM4V2.net
>>874
VBAでバンドルとやらをどうやるつもりなのか書いてみ
> ユーザーは結果として簡単に使えれば
って豪語するんだから今のExcelファイル単体並に簡単に使えるんだよな w

913:デフォルトの名無しさん
18/07/27 08:14:39.55 hpcoy/E6.net
>>874
1ファイルにバンドル?
ExcelブックにPS1をバンドルしてどうするんだ?
個別に動かすの?
それじゃ1ファイルの意味ねーだろ。
第一、VBAは面倒とか言ってたのにそういう面倒なことするの?
Excelブックを渡した相手に余計な何かをインストールさせるのか。
VBAならそんなこと丸っきり必要ないのに。
インストールしなくても同じことが出来るならインストールしな�


914:ォゃならんのはどう見てもデメリット。 世の中はExcelブックと他に何か別のファイルを持ち歩くのが遥かに多いとか、バカ過ぎるだろ。 ユーザーは簡単に使えれば中のコードがどうとか何の言語とかは優先度が低い。 Excelが前提のVBA批判をしてる自覚ある? 世の中には複数ファイルのツールってExcelの何? なんか、ひとりよがりに感じるな。



915:デフォルトの名無しさん
18/07/27 08:58:29.44 5SOHwwXD.net
適材適所とか言っておいてこれだよ
どんな場所でもVBAが適材になると思ってるらしい

916:デフォルトの名無しさん
18/07/27 11:09:47.17 t79VcJbD.net
Excelの場合はVBAは適材と読めるけど

917:デフォルトの名無しさん
18/07/27 12:06:33.39 9o30Opw+.net
日本語が通じないのが一番困るねぇ
なんでエクセルにpsをバンドルするって話にすり変わってんだよ
開発は複数のPs1でやって配布は1つのps1にバンドルしてやるって話だろが

918:デフォルトの名無しさん
18/07/27 12:06:57.97 wTR8C+Yu.net
excel自体が適材じゃないから
ありとあらゆるものがexcelだから

919:デフォルトの名無しさん
18/07/27 12:15:36.26 9o30Opw+.net
ファイル渡すだけ
インストールワンライナーをコピペしてシェル叩くだけ
あるいは1つのインストールスクリプトをダウンロードして実行するだけ
どっちも初回の手間は大して変わらんだろう
でも、エクセルファイル渡しは後々のバージョン管理で混乱するから、総合的に見てインストールのほうが楽だね

920:デフォルトの名無しさん
18/07/27 12:18:56.01 9o30Opw+.net
エクセルは他のもの要らないんだー

見つからない参照

鉄板あるあるネタwww

psはライブラリなければセントラルリポジトリからとってくるだけなのでこんなアホな目に合わんで済む

921:デフォルトの名無しさん
18/07/27 12:26:36.44 2qIHcbej.net
ライブラリなんて使うからそうなる
全部自分で1から書き上げるか、歴史ある秘伝の自作ソースをコピペすれば事足りる
工夫で乗り切れるのだ


らしいっすよ?

922:デフォルトの名無しさん
18/07/27 12:44:53.66 hpcoy/E6.net
>>877
だから話の流れを読め。
Excel限定のVBAの話から始まっている。
どんな場所でもでは無い。
Excel限定だ。
元々の>>871が既にExcel限定を考慮せずにおかしなことになってる。
>>878
そうとも限らない場合もあるけど基本的にはその通り。
それに対してどんな場合でもVBAはダメっていう主張が有って、VBA側はそれに反論してる。

923:デフォルトの名無しさん
18/07/27 12:47:15.71 hpcoy/E6.net
>>881
その手間が既に面倒くさいだろ。
しかもブック開いてるのに別スクリプトも動かすのか?
めんどうだわ。

924:デフォルトの名無しさん
18/07/27 12:51:06.22 hpcoy/E6.net
>>882
そもそも基本的にMicrosoft謹製以外は使用NGが普通だぞ。
ライブラリのコードを全て把握してるとか自社で作成したものなら別だが。

925:デフォルトの名無しさん
18/07/27 13:10:58.41 2qIHcbej.net
>>885
Excelにくっついてくるソルバーアドイン使うのでさえ
オプションクリックしてアドインクリックして有効なアドインクリックしてチェックボックスクリックして…
とかやるのよりよっぽど簡単

926:デフォルトの名無しさん
18/07/27 18:25:06.09 hpcoy/E6.net
>>887
???
既にそんな設定は済んでいるが。

927:デフォルトの名無しさん
18/07/27 18:29:23.81 HpMLTKup.net
>>884
Excelありきの話ならVBAスレでバトルしてこい
ここはPowerShellスレでPowerShellはなんでもできるオールラウンダーだ
PSerは心が広いからExcelコントロールの話をするなということはない
だがExcelの話題で縛れというなら流石に付き合う理由はない
繰り返す
Excelありきの話ならVBAスレで


928:やれ



929:デフォルトの名無しさん
18/07/27 18:34:48.47 hpcoy/E6.net
>>889
そうなんだよな。
本当は長居するつもりも無かったんだが
頓珍漢なレスが多くて反応して今に至ってる。

930:デフォルトの名無しさん
18/07/27 18:37:15.79 hpcoy/E6.net
元々VBAスレがPowerShell信者に荒らされてな。
そのままスレが最後までいって次が立つまでの間にこっちに書いたらこうなった。

931:デフォルトの名無しさん
18/07/27 20:52:54.00 /pOg/k3/.net
>>888
お前が済んでたらファイル渡されたユーザーも参照できんのかよ

932:デフォルトの名無しさん
18/08/01 09:22:45.41 LkPgJ43O.net
v6.0.3 Release of PowerShell Core
URLリンク(github.com)

933:デフォルトの名無しさん
18/08/05 15:25:02.08 iWriYPq8.net
C#は.NET無い環境だとブレークポイントで止めながらデバッグとか出来ないってことでいいのでしょうか?

934:デフォルトの名無しさん
18/08/05 16:13:15.95 8pU3W85Z.net
>>894
.NET無いってどういうこと?

935:デフォルトの名無しさん
18/08/05 16:58:00.21 iWriYPq8.net
>>895
Visual Studioでした。すみません。

936:デフォルトの名無しさん
18/08/05 21:27:02.69 8pU3W85Z.net
>>896
omnisharp
これ以上は適切なスレで

937:デフォルトの名無しさん
18/08/08 06:10:45.62 9IQgpJP5.net
Add-TypeでC#をコンパイルしてアセンブリを吐き出すことってできない?
cscをつかうかCodeDOMをつかうっきゃないか

938:デフォルトの名無しさん
18/08/08 07:33:51.33 aBUsJDbY.net
>>898
そこまできたら普通にRoslyn使えよ…

939:デフォルトの名無しさん
18/08/08 09:28:50.60 t8dLk4fV.net
>>898
-OutputAssembly
-OutputType
URLリンク(technet.microsoft.com)

940:デフォルトの名無しさん
18/08/10 02:50:48.12 r84RRSaO.net
日本語環境でUpdate-Helpが成功した方いますか?

941:デフォルトの名無しさん
18/08/12 11:52:57.19 AqaK+sLZ.net
「Write-Host $Args[0]」とだけ書いたスクリプトを、コマンドプロンプトから
「powershell ./test.ps1 "(笑)"」
と呼び出すと「CommandNotFoundException」が発生します。
括弧が悪いようですが、やっぱり渡す前に「"`(笑`)"」みたいにバッククォートで括弧をエスケープするしかないんですかね?
実際は引数に何が来るかわからないので、できればPowerShell側でなんとかしたいんですが。

942:デフォルトの名無しさん
18/08/12 14:22:48.08 pjLEMieq.net
>>902
powershell -file ./test.ps1 "(笑)"

943:デフォルトの名無しさん
18/08/13 20:44:05.76 9GVffBEY.net
>>903
いけました、ありがとうございます!

944:デフォルトの名無しさん
18/08/13 22:24:06.95 aFOAPcea.net
URLリンク(livedoor.blogimg.jp)

945:デフォルトの名無しさん
18/08/15 21:56:44.38 JQmIXjO5.net
>>905
店名は「笑」と書いてショウと読むのに対し,
「(笑)」は「(笑い)」の省略されたものなのでワラもしくはワライと読むはずなので,
その画像は不適切

946:905
18/08/16 23:27:16.70 3IMawj9A.net
>>906
いや、そもそもスレチなんでまともに相手しないであげて下さいw
ところでPowershellで何かわからないことあってググると
大体「URLリンク(mtgpowershell.blogspot.com)」のサイトがヒットすることが多いんだけど
このサイト運営してる人ってすごく頭がいいんだろうなあ

947:デフォルトの名無しさん
18/08/17 02:04:19.83 ApTQfLt8.net
>>907
ネタにマジレスするっていうネタやで
俺もそのサイトは度々参考にさせてもらってるわ
http


948:://tech.guitarrapc.com/archive/category/PowerShell ↑このサイトもおすすめ。「PowerShell実践ガイドブック」の作者。



949:デフォルトの名無しさん
18/08/17 07:49:40.85 ObWRp2dL.net
>>905
>>906
麺屋側は商売だから
とくに「ワラ」とか
ネットスラングまんまの店名つけるわけない

950:907
18/08/17 21:38:03.34 OW713aU2.net
>>909
俺が悪かったのでもうスレチにマジレスは勘弁して下さい。(^_^;)
>>908
Powershellの書籍まで出してる人のサイトか、すごいですね。
使えるTIPSあるかひと通り見てみますね。

951:デフォルトの名無しさん
18/08/26 17:31:51.65 ueCC70T4.net
さすがに空白区切りの項目を$3とかで参照できないよな
awkが特殊すぎるか

952:デフォルトの名無しさん
18/08/26 22:38:58.94 BD3/9DfM.net
特化された言語と比べなければ十分シンプルかな
cat $1 | % { $a = -split $_; $a[3] + $a[2] }
変数への代入が少しやぼったく感じる

953:デフォルトの名無しさん
18/08/27 08:30:13.32 C7OBrvX6.net
ふむふむ、笑は「わら」って読まないのか…
1つ勉強になったわ
            笑笑店主


954:デフォルトの名無しさん
18/09/05 21:03:41.11 223DM7Lb.net
>>889
「PowerShellは何でもできる」は嘘。
お前は死んでいい。つーか死ね。
PoewerShellやっても背は伸びなかったし、彼女出来なかったし、宝くじにも当たらなかったわ!!!!
まぁそれは冗談として。
「何でも」ってのは流石に撤回しろよ。
あ、俺は >>884 ではない。

955:デフォルトの名無しさん
18/09/05 21:34:41.59 ueA0fDDX.net
PowerShellで赤ちゃんできました、ありがとうございます!!

956:デフォルトの名無しさん
18/09/05 22:18:06.97 +hZ+CXx5.net
>>914
> PoewerShellやっても背は伸びなかったし、彼女出来なかったし、宝くじにも当たらなかったわ!!!!
それパチモンやん

957:デフォルトの名無しさん
18/09/05 22:34:57.71 67GmsqOi.net
毛が生えてきました

958:デフォルトの名無しさん
18/09/05 23:18:58.56 223DM7Lb.net
PqewrShellを飲んで二か月です。
アソコビンビンで妻も満足です。
こう?

959:デフォルトの名無しさん
18/09/05 23:24:51.36 67GmsqOi.net
通常の蜆の30倍
蘇る男の自信

960:デフォルトの名無しさん
18/09/06 06:56:43.48 OzF+wVKL.net
蜆ってしじみのことか
PowerShell…米国の製薬会社で開発された貝のサプリかな

961:デフォルトの名無しさん
18/09/06 21:28:59.42 tWUwV9UN.net
Powershellやりはじめたら台風被害にあったよ><
家の前の自転車が倒れただけだけど

962:デフォルトの名無しさん
18/09/08 14:31:58.13 oTozgSe4.net
PowerShell Core 6.x (以下 PS6) を導入した環境でスクリプトを実行する際、
実行環境を容易に 旧来の PowerShell 5 (以下 PS5)、PS6 とで
切り替える方法ってありますか?
モジュールの関係で PS5 でないと動作しないものもあるので、こっちのスクリプトは
PS5 で動かしたい、ほかは PS6 で、って感じで混在してます。
海外のスレッドでは、拡張子「.ps6」を独自に追加してそれで切り替えれば?みたいな
回答が出てましたけど、汎用性に欠けるのであんまりそういうことはしたくないんです。
Linux みたいに shebang 行で切り替えられれば一番なんですけど。
なにかアイディア無いですか?

963:デフォルトの名無しさん
18/09/08 14:40:20.95 MO8wxn5E.net
一行目読み取ってどっちを起動するか切り替える実行ファイルつくればいいやん

964:デフォルトの名無しさん
18/09/08 15:06:48.98 hiBN1no6.net
切り替えるってのがよく分からん
そもそもps1ファイル自体は実行しても何も起こらないんじゃなかったっけ

965:デフォルトの名無しさん
18/09/08 15:24:39.69 YwBJn4st.net
そりゃスクリプトはテキストファイルだから実行形式じゃないよ
画像ビューアにコマンドライン引数で画像パス渡せば画像が開くでしょ
スクリプトの実行はそれと同じことやってるの
なんでプログラム板でこんなこと説明しないといけないんだ

966:デフォルトの名無しさん
18/09/08 16:26:12.38 L0x65Qz7.net
いやだからさ
実行元がpwshとpowershellで明確に違うのに何を切り替えるのか分からんのよ

967:デフォルトの名無しさん
18/09/08 16:37:52.36 nMBTba9u.net
拡張子の関連付け問題の話?
バ―ジョンチェックとどちらで起動するかのリストを持ってる振り分けアプリ作って、.ps1への関連付けをそれにするとか。

968:デフォルトの名無しさん
18/09/08 16:47:51.96 oKnpK5oG.net
実行された環境がPS6だったら自身をPS5で実行して終了するスクリプトを
PS5で実行したいファイルの頭に書いておけばいいんじゃね

969:デフォルトの名無しさん
18/09/08 17:33:30.08 oTozgSe4.net
例えば、Active Directory 管理用モジュール「ActiveDirectory」は、現状
powershell.exe でしか動かず、pwsh.exe ではインポートできないわけ。
--------
参考
URLリンク(docs.microsoft.com)
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) に、実行環境ごと書いてしまう (参考 URLリンク(d.hatena.ne.jp) )
なんだけど、ほかにやりよう無いかね。

970:デフォルトの名無しさん
18/09/08 18:08:00.82 +HZWtY92.net
UNIXシェルのシバンみたいのが理想なら>>928は現実的な最適解だと思うんだけど何故スルー?

971:デフォルトの名無しさん
18/09/08 18:26:03.12 HSx0xrFN.net
そんだけならコンテキストメニューを拡張して
「PSV5で実行」を追加すれば良くね

972:デフォルトの名無しさん
18/09/08 19:09:29.22 nMBTba9u.net
右クリックなら選べるからコンテキストメニューをどうにかすべきだな。
ダブルクリックの話かと思ってた。

973:デフォルトの名無しさん
18/09/08 19:12:14.31 nMBTba9u.net
>>930
環境の問題とプログラム自体を分けておきたいとかあるんじゃないの?

974:デフォルトの名無しさん
18/09/08 21:00:30.80 oTozgSe4.net
>>928
イメージとしてはこんな感じかな。たしかにうまくいきそう。
ありがとう、明日試してみる。
-----------
<# ps1 の関連付けが powershell.exe の状態 (デフォルト) で、pwsh.exe で実行させたいものの場合 #>
# 実行環境が ver 5 以下の場合
if ($PSVersionTable.PSVersion.Major -le 5) {
pwsh.exe $MyInvocation.MyCommand.Path
exit
}
# 以下、ver 6 以上�


975:ナ実行させたい内容



976:デフォルトの名無しさん
18/09/08 21:11:46.23 oTozgSe4.net
>>931 >>932
もちろんそれでも十分可能なんだけど、以下の理由でできればカスタマイズは避けたいんです。スクリプト内だけで完結させたい。
・マシンがたくさん、OS も複数種類、ユーザプロファイルもたくさんあるので、標準構成からあまりいじりたくない
・お客さんに納品する可能性も考慮

977:デフォルトの名無しさん
18/09/09 12:32:25.50 CjsffzYn.net
そんな条件なら最初から全部ver5用に作るわ

978:デフォルトの名無しさん
18/09/09 12:54:55.70 PZb39582.net
運用マニュアルなしで議論してもしょうがないでしょ
このスクリプトはver5環境で実行してくださいと一言書いとけば済む話

979:デフォルトの名無しさん
18/09/09 13:48:43.10 b90Mhdwq.net
そういう能書きが書いてあっても何のこっちゃ分からんという人に配布しなきゃいけない場合もあるからなぁ
お客さんに運用対応を要求するのも大変なことだし

980:デフォルトの名無しさん
18/09/09 14:14:36.64 R8hBsgvF.net
>>937はこの手の仕事したことないんだろ
マニュアル書いても
「ver5環境ってなんだ?」
とか、そもそも説明なんて読んでなくて
「うまく動かないので至急なんとかしてください」
って言われるだけのこと

981:デフォルトの名無しさん
18/09/09 14:39:06.98 DLS5Iddq.net
これで十分
#Requires -Version 5
if ($PSVersionTable.PSEdition -eq 'Core') {
throw 'Powershell Coreでは動作しません。'
}

982:デフォルトの名無しさん
18/09/09 14:42:48.50 0y2Fjk63.net
「マニュアル?あぁ読んでないわ。とにかく直しといてね」

983:デフォルトの名無しさん
18/09/09 14:47:33.78 0y2Fjk63.net
>>940
「なんか 動作しません て出るんだけど?直しといてね」

984:デフォルトの名無しさん
18/09/09 15:19:04.80 DLS5Iddq.net
「対応するなら○○万円(鬱陶しい顧客リスク分を上乗せして)頂戴します。」
断るならブラック顧客だから切るべし。
断れないならブラック企業だから転職。

985:デフォルトの名無しさん
18/09/09 15:28:45.97 D8J39mU4.net
>>943
突っぱねるだけじゃなく、妥協点を見出す、Fail safe, Fool proof ってのも重要なことだよ。
まあ個人のポリシーだから好きにすればいいけど。

986:デフォルトの名無しさん
18/09/09 15:31:06.93 //bKOaXP.net
無職の妄想かよ w

987:デフォルトの名無しさん
18/09/09 15:47:36.82 jqHbfRUC.net
マニュアル書くにしたって、「エラーメッセージが出ます」と一言で説明するだけじゃ不十分
「『ver5環境では動作しません』というメッセージが表示されます。この場合...」と一字一句再現してやらないとわけわからなくなる人が山のようにいるのでね
ウィンドウの背景色やフレームの色まで画像付きで説明されてないと理解できない人もいるし
舐めてると死ぬぞ

988:デフォルトの名無しさん
18/09/09 20:12:23.17 0ym3cmgA.net
会計ソフトを出したら、それを買った客が、簿記・会計処理のことを聞いてくるw
女が電話に出ると、何時間でも粘るw
そういう客もいる

989:デフォルトの名無しさん
18/09/09 20:24:13.14 H4RfJ3jl.net
>>947
それ、チャンスじゃん。
サポート料を時間当たりいくらと決めとけば良い。

990:デフォルトの名無しさん
18/09/09 20:59:40.12 //bKOaXP.net
>>947
全然関係ないけど昔生理用品メーカーに納入した機器の入れ替えに行った時に聞いた話だと、お客さんからの問い合わせ(多分クレーム)で長い時は3時間とかかかるって言ってた

991:934
18/09/10 17:56:21.73 0jDkILQ9.net
結局こんなふ


992:うにしたよ https://pastebin.com/9RWLpSC7 >>928 ありがとうごさいました! ほかの皆さんもありがとうございました!



993:デフォルトの名無しさん
18/09/12 08:25:50.66 HwQfxVDT.net
Verifying PowerShell versions…let me count the ways
URLリンク(blogs.technet.microsoft.com)

994:デフォルトの名無しさん
18/09/14 07:52:52.25 itNItVhP.net
powershellにはbuild toolないのか

995:デフォルトの名無しさん
18/09/14 09:15:39.59 u+Z35nAl.net
Announcing PowerShell Core 6.1
URLリンク(blogs.msdn.microsoft.com)

996:デフォルトの名無しさん
18/09/14 10:16:47.60 60Mnn9Dg.net
これは朗報だ!
---------
AWS Lambda は PowerShell Core をサポートします
URLリンク(aws.amazon.com)

997:デフォルトの名無しさん
18/09/14 12:28:03.19 Z7a8n8W6.net
6.1日本語使えない?

998:デフォルトの名無しさん
18/09/14 13:01:26.89 /Xr9NdPd.net
>>954
PowerShellでWeb API作る需要あるのかな

999:デフォルトの名無しさん
18/09/14 14:27:05.47 60Mnn9Dg.net
>>956
自分の場合だけど、Windows の EC2 インスタンスと連携するプログラムを Lambda 上で
作る案件がちょくちょくあって、これまでは Windows 上は PowerShell、Lambda のほうは
P{ython で作ることが多かった。
だけど自分のスキルのせいもあって、PowerShell と Python のコーディングを同時並行で進めると
色々と混乱することが少なくなかったのね。
# 両方 Python で作れば、と思うかもしれんけど、運用の手間を考えると、
# 追加でインストールするものはなるべく少なくしたい
それが、Lambda で PowerShell Core が使えるなら PowerShell で統一できるので、
個人的にすごく捗るな、と。

1000:デフォルトの名無しさん
18/09/16 13:14:02.90 16Y59QgZ.net
class構文じゃなくて本物の型を定義したい場合にはAdd-Typeしかないのかな
GUI作るときにPSObjectがうまくデータバインドできなくて困った

1001:デフォルトの名無しさん
18/09/28 12:50:16.79 8vtXqMhV.net
URLリンク(news.mynavi.jp)
Powershell6.1で大分パフォーマンス上がったみたいね
パフォーマンス以外に起動も結構早くなった感じ

1002:デフォルトの名無しさん
18/09/28 13:35:11.01 oUAtTcYe.net
Macだからかもしれない
Macでの実行環境は最適化する余地が大きく残ってたとかがあり得る
Windowsでどうかは比較してみないとなんとも

1003:デフォルトの名無しさん
18/09/28 15:32:47.04 ExWLpVS+.net
psわざわざ入れるって無理だな
有り物使うだけだからOSアプデで付くのを待つしかない

1004:デフォルトの名無しさん
18/10/05 17:32:43.04 LWyIHUF+.net
PowershellはOSによってプリインストールバージョン違うの地味に面倒だな
MS Updateで5.0までは強制的にアップデートしてくれないかな
客先のサーバでSQLモジュールも入って無くてInstall-moduleも入って無くてスクリプト使えなくて困ったわ

1005:デフォルトの名無しさん
18/10/05 20:42:27.53 OkuzM4NB.net
今の10の1803ってバージョン何が入ってるの

1006:デフォルトの名無しさん
18/10/05 21:07:07.34 YbvjOj4C.net
5.1

1007:デフォルトの名無しさん
18/10/06 10:44:13.46 fld0/WcD.net
2.0ベースでなんとかするテクニックは必須ですよね

1008:デフォルトの名無しさん
18/10/06 14:33:29.33 gea8Zy97.net
テクニックって程のものって何かある?
使える使えないの差ぐらいじゃないの

1009:デフォルトの名無しさん
18/10/06 16:17:11.73 J00E9zwo.net
再来年1月にはPowershell2.0プリインストール環境が終了するから2.0に合わせた書き方


1010:頑張る気力がイマイチ Windows7とか2008R2は早く死んでくれないかな



1011:デフォルトの名無しさん
18/10/06 16:48:11.63 h/HmdYY4.net
Windows7とか2008R2は最後のまともなバージョン

1012:デフォルトの名無しさん
18/10/06 21:18:07.69 MlTlM5yZ.net
Windows 2000 Proが一番良かった。

1013:デフォルトの名無しさん
18/10/06 23:10:20.08 tgEP6apu.net
>>967
SP1入れずに使ってる環境なんてほぼ無いだろ?なら4.0覚えときゃOK
個人的にはzipクラスがある4.5が望ましい

1014:デフォルトの名無しさん
18/10/06 23:21:17.76 SoS+Fgug.net
とりあえず3.0以降じゃないとちょっと辛いイメージ

1015:デフォルトの名無しさん
18/10/07 00:45:26.55 /+/kkqPE.net
何が辛いんだい
ほら言ってごらん

1016:デフォルトの名無しさん
18/10/07 00:51:14.63 KvcjzmFM.net
3.0以降じゃないとPsCustomObject使えないとか、コマンドレット充実してなくてNETライブラリ使う羽目になって、もうこれC#で書いたほうが良くね?になるあたりかね

1017:デフォルトの名無しさん
18/10/07 02:34:13.34 MeohIHbL.net
coreに移行して大分経ってからGet-ScheduledTaskとかのWindows専用っぽいコマンドレット無くなってるのに気付いた
まあこれはあんまり使わんしpowershell.exeで実行すりゃいいか

1018:デフォルトの名無しさん
18/10/07 06:17:50.14 mFTX0OZ0.net
where-objectでフィルタをかける時、複数条件が必要な場合は
パイプでつなぐしかないですかね?andとかあればいいんですけど
where-object 条件1 | where-object 条件2

1019:デフォルトの名無しさん
18/10/07 06:44:39.40 MeohIHbL.net
論理演算子はもちろんあります
-and -orなど

1020:デフォルトの名無しさん
18/10/07 10:50:24.18 VwaVbKnV.net
>>975
サンプルだと
? {$arg -eq "test" -or $arg2 -eq "test"}
みたいな感じ
-使う演算子が繋がって違和感あるかもしれんけど

1021:デフォルトの名無しさん
18/10/07 11:44:45.71 I8sm2uyS.net
そもそもカンマでcriteraの文字列を区切ればor指定になるのでは

1022:デフォルトの名無しさん
18/10/07 21:44:12.84 /+/kkqPE.net
>>978
どゆこと?
$arg -eq "test1","test2"
とかやってもならないけど

1023:デフォルトの名無しさん
18/10/08 20:48:01.10 7Fv0bXJp.net
パワーシェル内でパワーシェルを呼び出す時、どのパワーシェルの処理が成功してるか失敗してるかわかるようにログ出すのはどうすればいいんでしょうか?

1024:デフォルトの名無しさん
18/10/08 21:56:04.04 sIA/07pT.net
>>980
スクリプトの名前等を頭につけるとか

1025:デフォルトの名無しさん
18/10/08 22:04:42.09 7Fv0bXJp.net
ごめん。全然わからん・・・

1026:デフォルトの名無しさん
18/10/08 22:05:00.95 vQC6HMz5.net
argsでIDを渡すとか
powershell -command { "ID: $($args[0])"} -args 777

1027:デフォルトの名無しさん
18/10/08 22:19:23.32 7Fv0bXJp.net
バッチファイルみたいにリダイレクトではログ渡せないのかな?
2>1
みたいなかんじで?

1028:デフォルトの名無しさん
18/10/08 23:19:17.74 nFrei6GD.net
$?で前回のコマンドの実行結果
$lastexitcodeにexitコマンドで返された値が入る(呼び出したスクリプトはexitに戻り値を付けて終了させないとダメ)
$?だとスクリプト内の最後のコマンドの結果が帰るからスクリプトの作りによっては失敗の判定は出来ないのはバッチとかと一緒

1029:デフォルトの名無しさん
18/10/08 23:24:06.69 7Fv0bXJp.net
なるほど
呼び出すスクリプト内にエラーコードで正常か異常か$?で判定させてそれをifかなんかで分岐させてエラーコードを呼び出し元のスクリプトの$lastexitcodeをehcoする感じですかね?

1030:デフォルトの名無しさん
18/10/08 23:32:12.23 rY44Et0R.net
>>979に答えてくれないか

1031:デフォルトの名無しさん
18/10/08 23:41:24.75 GVMVzq1c.net
>>980
成否判定ならこれでよくね
hoge.ps1
$hoge = $true
if($hoge){exit 1}
exit 0
-------------
$ps = Start-Pr


1032:ocess hoge.ps1 -Wait -PassThru switch($ps.ExitCode) { 0 { "失敗" } 1 { "成功" } }



1033:デフォルトの名無しさん
18/10/08 23:44:14.86 L+98sdt+.net
「どの」を見落としてる

1034:デフォルトの名無しさん
18/10/08 23:45:52.94 7Fv0bXJp.net
これを呼び出すスクリプト全部に書くってこと?
呼び出し元と先が複数あって、先を全部修正するのが大変なので出来れば元だけで完結させたい
が、無理そうなのでこれを全てに書いていく?

1035:デフォルトの名無しさん
18/10/08 23:55:10.73 GVMVzq1c.net
>>990
0で戻ってきたらokにでもすれば
いじらんで良いやろ

1036:デフォルトの名無しさん
18/10/09 00:01:31.08 G4IJkzod.net
>>990
exitで成否を戻した方がしっかり判定できる
呼び出したスクリプトで何が発生したら失敗とするかをしっかり判定しないの?
結果コードでの判定とか曖昧すぎてトラブルの元と思う

1037:デフォルトの名無しさん
18/10/09 00:57:32.40 VXCTyrZC.net
>>984
実際にやりたいことがわからないけどエラーメッセージをリダイレクトするだけなら同じようにできるよ
powershell ./hoge.ps1 2>>log.txt

1038:デフォルトの名無しさん
18/10/09 03:31:08.27 0K1bBeTL.net
>>979
知らないけど、switch 文で、カンマを使うとか?
そういう意味じゃないの?

1039:デフォルトの名無しさん
18/10/09 05:18:39.42 06HomXwK.net
>>979
-inならいけるけど、まあ違うんだろうな
dir | where { $_.name -in "a1.txt","a2.txt","b1.txt" }
$list = @( "a1.txt","a2.txt","b1.txt" )
dir | where { $_.name -in $list }

1040:デフォルトの名無しさん
18/10/09 08:24:03.86 2kAOJdzZ.net
>>979
適当こいただけじゃないのかな
PSのカンマ演算子は配列を作り、配列の要素が複数なら内容問わず真になる
そもそもカンマでの結合はORなのかANDなのか意図が曖昧
仕様としても微妙だしバッドプラクティスに思える

1041:デフォルトの名無しさん
18/10/09 17:47:31.12 G4IJkzod.net
次スレ
PowerShell -Part 3
スレリンク(tech板)

1042:デフォルトの名無しさん
18/10/09 18:41:58.03 iKGY38Kd.net
>>997

前に同じ名前のスレが落ちてたけどこの板は保守が要るってことかな?

1043:デフォルトの名無しさん
18/10/09 21:10:27.51 PXd6fmY+.net
>>994-997
ありがとう

1044:デフォルトの名無しさん
18/10/09 21:31:03.39 G4IJkzod.net
(1..1000 |% {if ($_ -eq 1000) {write-output "1000 complete!"} else { write-output $_}}) -join " "

1045:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 682日 15時間 1分 1秒

1046:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch