X



【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0722デフォルトの名無しさん
垢版 |
2018/05/23(水) 16:20:34.21ID:xYq3JC1R
>>720
単に公式に当てはめればいい

$data = import-csv "csvのパス" -Header X,Y

$meanX = $data.X | measure -Average | select -expand Average
$meanY = $data.Y | measure -Average | select -expand Average

$sd = $data | foreach { ($_.X - $meanX) * ($_.X - $meanX) } | measure -Average | select -expand Average
$cd = $data | foreach { ($_.X - $meanX) * ($_.Y - $meanY) } | measure -Average | select -expand Average
$slope = $cd / $sd

$meanY - $slope * $meanX
0724デフォルトの名無しさん
垢版 |
2018/05/23(水) 18:35:19.02ID:V6P0Rj+x
>>722
ありがとうございます。簡潔に書かれていてすごい。

>>721
pythonでも出来るのですが、エクセル含めソフトインストールできないPCでの運用なので
0726デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:19:58.76ID:PUSKgIep
エクセルも使えない環境でデータ分析なんて
とんでもなく非効率だな
現実にはよくありそうな話だけど
0727デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:26:40.12ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

GWRI8
0728デフォルトの名無しさん
垢版 |
2018/05/24(木) 07:56:41.44ID:zQgi4Vqc
>>726
装置とそれを制御するソフトウェアが入った専用PCが連動して動く仕組みのシステムで、そのPCのデータをその中で処理したいと思ってて。
大型の装置で、もし誤作動を起こしたら火災や死亡事故もあり得るのでソフト導入は難しい状況。エクセルくらいは問題ないと思うんだけど、許可下りず。
0729デフォルトの名無しさん
垢版 |
2018/05/24(木) 09:57:30.14ID:fftgGS82
人命にかかわるならPowerShellでもだめだろ
0730デフォルトの名無しさん
垢版 |
2018/05/24(木) 12:22:12.99ID:6ROz+TzN
線形回帰分析のためだけにエクセルを導入しようとする高レベルVBAエンジニアさん命を握られてしまった従業員さん
0732デフォルトの名無しさん
垢版 |
2018/05/24(木) 18:11:34.30ID:CzEEKu6Z
今回だけじゃなくて別のデータ分析する
機会も出てくるかもしれないだろ

エクセルに限らずソフトがインストールできないんじゃ
いろいろ車輪の再発明することになりそう
0733デフォルトの名無しさん
垢版 |
2018/05/24(木) 18:17:30.66ID:5HLXkVSJ
そういう機会がなんども出てきてから検討すればいいよ
まあそうなったらエクセルじゃなくてデータ解析に適したツールを導入するべきだろうけどね
VBAerさんはとにかくVBAを使いたいって目的が先行するから困る
0734デフォルトの名無しさん
垢版 |
2018/05/24(木) 18:47:46.05ID:5HLXkVSJ
なんでもかんでも再発明が悪という風潮はよろしくない
少量の些細な再発明を避けるために大規模なソリューションを導入すると
そのソリューションの管理コストや障害リスクの方が高くなってしまう
0736デフォルトの名無しさん
垢版 |
2018/05/24(木) 19:37:16.12ID:8RmhyhjF
そういう設定なんだなというのは皆わかった上でディスカッションしてる
なので野暮なツッコミは無しにしようや
0738デフォルトの名無しさん
垢版 |
2018/05/24(木) 21:09:40.32ID:zQgi4Vqc
>>735
今はデータをUSBで他のPCに移してから処理してる。
制御PCでやりたい理由は、USBはパスワード付きっていうのもあって面倒で、しかも常に最新の情報を求められるため日に数回USBで出し入れすることになるのでより面倒。
それが毎日となるとめちゃくちゃ面倒。
ということで不慣れなpowershell でやろうとした次第です。
0739デフォルトの名無しさん
垢版 |
2018/05/24(木) 22:23:06.92ID:A0AqRoYu
別PCでC#の解析用アセンブリ作ってPowerShellから呼び出したらいいんじゃないの
0741デフォルトの名無しさん
垢版 |
2018/05/24(木) 22:42:20.58ID:OVWSg8Eh
オフラインです。C♯は難しそうなので。

すみません、私事を語り過ぎました。元の話題に戻ってどうぞ
0742デフォルトの名無しさん
垢版 |
2018/05/24(木) 22:53:30.12ID:6yspu/tD
死亡事故が起こるようなマシンだろ
俺なら通常はネットから切り離しとくわ
0744デフォルトの名無しさん
垢版 |
2018/05/25(金) 03:37:02.75ID:JRXZZDGl
会話がかみ合ってないな
頭悪そう
0745デフォルトの名無しさん
垢版 |
2018/05/25(金) 03:58:22.29ID:cDmsKy0H
いや現実の問題設定は良い刺激になったよ
そういうのないと同じ話題がループしちゃうし
0747デフォルトの名無しさん
垢版 |
2018/05/26(土) 18:35:06.63ID:2fyQupuv
AddTypeでNuGet Packageを参照に追加できれば便利だと思うんだがなぜないんだろ
いちいちpackageダウンロードしてzip解答してdll探してAddTypeするの面倒くさい

AddType -PackageSource https://api.nuget.org/v3/index.json -PackageName Oracle.ManagedDataAccess -Version 12.2.1100
$connection = New-Object -TypeName Oracle.ManagedDataAccess.Client.OracleConnection

こんなんできたら絶対便利だろ
0749デフォルトの名無しさん
垢版 |
2018/05/27(日) 10:22:45.07ID:FRc1Igvs
こういうのは末端のユーザーじゃなくMicrosoftが責任持って整備すべき仕事だよなぁ
0752デフォルトの名無しさん
垢版 |
2018/05/28(月) 20:48:57.60ID:ANh8mcyB
csv読み込みのときに、♯が入ってる行が消えるのですが回避方法あるでしょうか?
バージョンは2のため、cat|convertfrom- csv を使っています。
0754デフォルトの名無しさん
垢版 |
2018/05/29(火) 13:59:12.26ID:/wWb7+KW
半角井桁でも全角井桁でもなくシャープがダメ文字ってことなら、いわゆる機種依存文字に対して内部的に文字化けしてるのかね
Get-Contentの-Encodingパラメーターを変えて試行錯誤してみるのはどうだろ
0755デフォルトの名無しさん
垢版 |
2018/05/29(火) 20:04:16.63ID:uVfBdj0+
>>753
おっしゃる通りcat時点ではシャープのある行も問題なく表示されていたのでそこでシャープを適当な文字列に置換する事で回避出来ました。
なお文字化け等では無かったためencodingは関係ありませんでしたが、お二方ともアドバイスしていただきありがとうございました。
0759デフォルトの名無しさん
垢版 |
2018/05/29(火) 23:17:16.03ID:uVfBdj0+
>>756
そういう仕様なんだね。
プログラム内じゃないんだから勝手にコメントアウトしないで欲しい
0760デフォルトの名無しさん
垢版 |
2018/05/30(水) 01:59:47.06ID:yjZg0US2
RFCではCSVのコメントなんて定義されてないんだがな
#がコメントとか方言です
0761デフォルトの名無しさん
垢版 |
2018/05/30(水) 07:47:42.04ID:fRdW4Y4e
「♯を含む行」が消えるって言ってるんだから、実は「#で始まる行」が消えてた、なんてことは流石にないでしょう
0762デフォルトの名無しさん
垢版 |
2018/05/30(水) 08:14:02.91ID:fRdW4Y4e
と思って検証したらマジじゃねーかバーロー
v2では使えないけどcat -raw|convertfrom-csvなら無視されなくなるから、#がCSVコメントとして無視されてるのではなくて、#をコメント行相当のオブジェクトとして返しているGet-Content側がタチ悪いという話じゃないだろうか
0764デフォルトの名無しさん
垢版 |
2018/05/30(水) 22:12:34.15ID:8qi2Khqy
PCに入ってるPowerShellのバージョンを簡単に切り替える方法はないのでしょうか?
作成したスクリプトがバージョン2でも3でも動くか等の検証を行いたいのですが?
0766デフォルトの名無しさん
垢版 |
2018/05/31(木) 17:20:46.88ID:ZTEAvdsG
そのCSV は各列を、" " で囲んでないのか?
0768デフォルトの名無しさん
垢版 |
2018/06/01(金) 19:12:06.06ID:j/MM0qyt
ISEがインテリセンス使ったら落ちてたのが
KB4100403で修正されたらしい(未確認)
0769デフォルトの名無しさん
垢版 |
2018/06/04(月) 18:18:51.32ID:duSCMV5/
エクセルに書き込む時、例えば
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でもこのような書き方はあるでしょうか。
0770デフォルトの名無しさん
垢版 |
2018/06/04(月) 19:50:56.49ID:gQR1ea5z
>>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
0771デフォルトの名無しさん
垢版 |
2018/06/04(月) 23:24:00.90ID:OF0qTMZ9
>>770
ありがとうございます。多次元配列を使えばよいのですね。
webで調べると多次元配列と多段階配列(ジャグ配列)がごっちゃになってるサイトもあって混乱していましたが、770さんの簡潔な記述をみて理解出来ました。
0773デフォルトの名無しさん
垢版 |
2018/06/09(土) 16:51:36.72ID:XSSJlv/Q
PowershellからExcelのユーザフォーム(コマンドボタン)を非表示かクリックできないようにしたいのですが、いくつか試してもうまく設定できませんでした。

ご存知の方がいたら、ご教示いただければ。
0776773
垢版 |
2018/06/11(月) 12:16:46.97ID:vpJG/a5Y
以下で動くことは確認しましたが、できたら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")
0777773
垢版 |
2018/06/11(月) 12:17:21.17ID:vpJG/a5Y
* 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
0778デフォルトの名無しさん
垢版 |
2018/06/11(月) 23:51:03.62ID:gcU8d3qp
>>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
}
0779773
垢版 |
2018/06/12(火) 12:30:53.64ID:ekyc4Iri
>>778
VBAに依存せず実行できました。感謝。
0780デフォルトの名無しさん
垢版 |
2018/06/21(木) 19:07:26.37ID:K/kbKit1
windows10ですが
Get-ItemPropertyでLastWriteTimeを見てみると
エクスプローラで表示される更新日時と異なるファイルが有りました

更新日時の方が作成日時より前の日付になってるので
おそらく LastWriteTimeの方が正しい日付だと思います

これを訂正するためにPSからエクスプローラの更新日付を取得したいのですが
エクスプローラの更新日時がどこから来ているものかさっぱりわかりません
0782780
垢版 |
2018/06/21(木) 20:21:17.18ID:K/kbKit1
いくつかファイルを調べてみると、更新日時とLastWriteTimeの差が一週間離れているのも有るので
タイムゾーンの問題とは考えにくいです
よく見ると、作成日時もCreationTimeと10日くらいのずれが有りましたw

エクスプローラが詳細プロパティ以外の日付を参照してる意味が分かりません
windowsの強制メジャーアップデートで何度かクラッシュした影響でファイルが壊れてるのかも
0784デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:21:13.01ID:gFgZc5FG
JBF
0787デフォルトの名無しさん
垢版 |
2018/07/08(日) 03:18:34.99ID:3ZrH1Hyw
わしはね、ローカルの小物guiでps始めよう思ってたらhtaというものを発見してしまったんじゃ
0789デフォルトの名無しさん
垢版 |
2018/07/14(土) 21:56:02.39ID:RVDUVOmY
若者が「HTAって使えるんじゃね?」と思ってしまうのは仕方がない。
オッサン〜ジジイが「HTAを発見した」つったら「今まで何して生きてきたの?」としか言いようがない。

Windowsでのローカルの小物GUIは、今、滅亡の危機ですらある。
WordやExcelを使った自動化すら、今後もできるかどうか怪しい。
0793デフォルトの名無しさん
垢版 |
2018/07/14(土) 23:12:51.46ID:RVDUVOmY
ローカル実行できるスクリプトで動くGUIアプリに決まってるだろ。
Excel や Access の VBA がその代表格。
COM がベースだから切られる方向なのは分かる。
でも代替できるものがない。

いっとき PowerShell+WPF が期待を担ったが…
・呼ばれる側のアプリにコマンドレットの実装が必要
・.NET ごとオープンソースの世界に行ってしまって Windows そのものが切られそう
・そういうのは C# で書いて配れ、と明示的に言ってくれた方がまだ楽。

が、MS はダンマリを決め込んでいるんだよなぁ…
0795デフォルトの名無しさん
垢版 |
2018/07/15(日) 01:35:23.34ID:0pMWk4zA
>>793
>COM がベースだから切られる方向なのは分かる。
>でも代替できるものがない。

よく調べてないんだけどVisual Studio Tools for Officeとかはダメ?
0797デフォルトの名無しさん
垢版 |
2018/07/16(月) 21:11:22.99ID:HqjsUdw9
とりあえず、PowerShellが「最強CUI」とかいう寝言は取り下げた方がいい。誤解を招く。
0801デフォルトの名無しさん
垢版 |
2018/07/17(火) 23:10:59.27ID:yoTx9oxy
>>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 は万能じゃねーんだよ!馬鹿ども。
0808デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:00:02.17ID:ZN+SAgqe
VBAスレに来てるPowerShellゴミクズ荒し何なの?

PowerShellの工夫はより良くするための工夫でVBAの工夫は欠陥を補う工夫って、どのロで言うんだろうね。
VBAだとソース管理出来ないというから、ソース抜き出してソース管理ツールに渡すのはダメという意味なんだろうけど、その割にPowerShellだとVisualStudioと連携できるとか言い出すダブスタ。

PowerShellでC#コンパイル出来るとか、バカ丸出し。
csc使うんだったら何だって出来るだろう。
コイツがムカつくのはそういう工夫を全て否定する所。
それを否定するならPowerShellだってゴミクズだろう。

そういう工夫こそが大事なのに。
0809デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:30:20.53ID:FoHjHQaV
スクリプトなんて適材適所で何使ったっていい
他人がなんかいちゃもん付けてきたら、
「こいつ初心者で一時的に心酔してバカ発言してるんだな、
 あと数ヶ月もすればこのときのことを思い出して恥ずかしさにそこらへんを転げまわるんだろうな」
程度に気の毒がってりゃいいさ
0810デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:32:06.23ID:G9t5vsVs
エクセルなんて要らん工夫して紙と電卓を使いこなせば事務作業はできる

会社に支給されたパソコンを目の前置いて、こう主張するおじいさんが居たらどう思う?
馬鹿だねーエクセルなんて簡単なのになんで電卓使うの?
社員ならエクセル使っていいのになんで?
そう思わないかな?

もし思わないなら根本的に感覚がズレてるので同意を得るのは難しいと思うよ
0811デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:33:43.75ID:/fuF+goF
つかわざわざこっちにきて何がしたいん?
そいつに言えばいいやん
お前もゴミだろう
0813デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:06:13.49ID:YGqHpPTt
>>811
VBAのスレが荒れるのが嫌だからでしょ
考えたらわかるじゃんw 脳みそあるの?
0814デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:07:05.72ID:YGqHpPTt
>>812
PowerShellユーザが迷惑かけてるんだから
スレとしての責任が問われてる
0815デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:07:45.01ID:ZN+SAgqe
散々論破しているのに最後まで居座られて迷惑してスレが終わったからだよ。
そしてPowerShellの立場はExcelと被るわけでどっちも適材適所だろ。
その場に合ったのを使えば良いんだ。

奴は自分がPowerShellを貶めてるのに気付いて無い。
0818デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:17:54.05ID:YGqHpPTt
>>816
馬鹿野郎、てめんとこの人間が迷惑かけてんだから
うちの者がご迷惑おかけして申し訳ありません
と謝罪するのが筋だろうが
0819デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:19:08.41ID:YGqHpPTt
ほんとPowerShellは他人に迷惑かけてバッカやな
ほんまクズやな、PowerShellのせいやろな
0821デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:23:23.96ID:YGqHpPTt
行動は早いけど間違ってる人っているよね
■ このスレッドは過去ログ倉庫に格納されています

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