2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

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

【最強CUI】PowerShell -Part 1

1 :デフォルトの名無しさん:2013/09/12(木) 18:35:04.72 .net
スレなかったので立てました

951 :943:2016/11/06(日) 10:01:26.92 ID:kz8qdbwH.net
みなさん、あさーず。
>>946, >>948
確かに希望の動作をします。が、まぁありえないでしょうけど他のエラーも出てこないので
ちょっと・・・(batは当面最後にpauseします。)
>>949
これです。?がif文になるんですね。精進します。
>>950
エクセルのプロセスの有無に関わらず、(EXCELを''でくくってもくくらなくても)
Where-Object : パラメーター 'FilterScript' をバインドできません 以下略
のエラーがでましたよ。

みなさんありがとうございました。

ProcessNameというプロパティ(?)とか調べ方がわからんです。
慣れれば感どころがつかめるものでしょうか。
また、ちょちょっとテキスト処理くらいをする程度ならJavascript(WSH)を
覚えたほうがいんでしょうか。どなたかアドバイスください。

952 :デフォルトの名無しさん:2016/11/06(日) 10:37:03.34 ID:YIDcVWoD.net
普通のプログラムみたいに書けばほとんど学習コスト要らないかも

$processes = Get-Process
foreach ($p in $processes) {
if($p.ProcessName -eq "EXCEL") {
Stop-Process $p
}
}

953 :デフォルトの名無しさん:2016/11/06(日) 10:45:32.64 ID:dZD22YhG.net
>>951
ヘルプを見れば良いんじゃね?

954 :デフォルトの名無しさん:2016/11/06(日) 10:47:25.57 ID:5vRzoxZx.net
>>951
?ってのはWhere-Objectのエイリアスね

955 :デフォルトの名無しさん:2016/11/06(日) 18:20:38.22 ID:W+fv0qTW.net
>ProcessNameというプロパティ(?)とか調べ方がわからんです

Get-Process | Get-Member

956 :デフォルトの名無しさん:2016/11/06(日) 21:26:01.13 ID:kz8qdbwH.net
みなさん、引き続きありがとうございます。
>>952
そうですよね。書ける人にはそうだと思いますが、自分には書けるものより書けないものの方が多すぎて・・・。
>>953
はい、あとソース嫁とか英語嫁とか。
>>954
勉強になります。%がforeachじゃないことも今日知りました。
>>955
Stop-Job | Get-Member
ができないので、その説明では納得できません。

今からVBScriptを覚えようとは思わないのですが、JavascriptでWSHとpowershellとで
迷ってます。

957 :デフォルトの名無しさん:2016/11/06(日) 22:32:45.35 ID:Y3XMMWZU.net
そりゃ出力しないコマンドをパイプしても何も出て来んでしょ

とにもかくにもGet-Helpして見る事から始めると良い
-Onlineや-Fullオプションで出力の型を見る→ググってMSDNのページに辿り着く

958 :デフォルトの名無しさん:2016/11/06(日) 23:00:18.45 ID:YIDcVWoD.net
>>956
普通は今からやるならPowerShellだろうけど
プログラムのプの字も知らないなら山ほどサンプルがあるVBScript+WSHがいいも
エクセルVBAも同じ文法だからそっちの方にも活かしていけるし
今の時点javascriptが使えるわけでもなく、将来web開発する予定もないならJScriptでやる意味はないような
WSH自体が今後発展することもないらしいし

959 :デフォルトの名無しさん:2016/11/06(日) 23:49:48.56 ID:kz8qdbwH.net
>>957
そりゃそうなんですけど、言いたかったのはメンバを知る手法として汎用性がないということで
確かにget-help なんちゃらはやってはみるものの・・・という感じです。
>>958
ごく簡単なものや真似っこであれば、Perl、PHP【4】、Javascriptもちょっと使える程度なんすよ。
なまじ入り口だけjavascriptを知ってるだけに迷っているところです。
人生の残り時間も少ないので・・・。
みなさん親切なアドバイスありがとう。

960 :デフォルトの名無しさん:2016/11/07(月) 04:16:21.54 ID:EaPQMBZD.net
>>956
WSHでjavascriptやっとけ

961 :デフォルトの名無しさん:2016/11/07(月) 06:58:57.92 ID:ykolmqA0.net
>>959
> 言いたかったのはメンバを知る手法として汎用性がないということで
お前さん勘違いしてるだろ?
> Get-Process | Get-Member
は Get-Process について調べるものじゃないぞ
Get-Process が生成したオブジェクトについて調べるてるんだよ
PowerShell は文字列もオブジェクトだから
'abc' | Get-Member
とかもできる
ProcessName は Get-Process じゃなくて Get-Process が生成したオブジェクトが持ってるから
> ProcessNameというプロパティ(?)とか調べ方がわからんです
って聞かれりゃ
> Get-Process | Get-Member
って答えるのは至極まっとうだよ

> 確かにget-help なんちゃらはやってはみるものの・・・という感じです。
どういう感じなんだよ w

962 :デフォルトの名無しさん:2016/11/07(月) 10:40:20.65 ID:S5LyibMq.net
>>961
朝早くからありがとう。数値もオブジェクトのようですね。get-processとかのコマンドレットはオブジェクトではないのでしょうか?
言い争いたいんじゃなくて単純な疑問です。マニュアルとか嫁で終了でもいいです。
>>960
その方がいい気がしてきました。当初のプロセス終了なんかは1行で簡単に書けてよいのですけれど
テキスト処理(とかエクセルの処理)とかが多いので、生きてるうちはJavascriptでいこうと思いました。

963 :デフォルトの名無しさん:2016/11/07(月) 16:08:30.03 ID:iTWgrf69.net
excelの処理ならpythonおすすめ
わりとまじで

964 :デフォルトの名無しさん:2016/11/07(月) 19:13:44.46 ID:yPAI37iD.net
あくまでもPSのGet-Process;は関数呼出の意で、JSで言うget_process();
コマンドとその出力は全く別物なんだけど、正直JSの文法を引きずってる感じがある

.NETに馴染みが無いのは仕方ないけれど、興味も無いならPS使うメリットは半減だしWSHで良いと思う

965 :デフォルトの名無しさん:2016/11/07(月) 19:49:53.62 ID:ykolmqA0.net
>>963
なんか便利だっけ?
まともなライブラリがあるとかって言うような話?

966 :デフォルトの名無しさん:2016/11/07(月) 21:25:33.50 ID:7HG9C5AL.net
Get-WmiObject Win32_Process -Filter 'Name="excel.exe"' | % { $_.Terminate() } > $null

967 :デフォルトの名無しさん:2016/11/07(月) 21:55:39.76 ID:0v/tCVcX.net
教えたとしても中身を理解しなけりゃ意味無いよ

968 :デフォルトの名無しさん:2016/11/07(月) 23:43:54.05 ID:iAKG+yvx.net
>Get-Process | Get-Member
の回答に対して、
>Stop-Job | Get-Member
>ができないので、その説明では納得できません。

が帰ってくるのが問題
パイプが何なのか分かってないんじゃないの

969 :デフォルトの名無しさん:2016/11/08(火) 00:37:47.36 ID:M6Rn2+El.net
PSはOSSになって、Linux用も作られた

さらに、Windows10では、Bash on Ubuntu on Windows, Windows Subsystem for Linux(WSL)で、
Linuxのバイナリがそのまま動くから、そのLinux上で、PSも動かすとか?

PSは、PSと同じフォルダにある、IDEのPowerShell_ise を使った方がいい

オブジェクトは、obj. のように、. を押すと、
補完で、オブジェクトのすべてのプロパティ・関数が表示される

オブジェクトのすべてのプロパティ名・値を表示すれば、ヘルプを読むよりも速い。
foreach, -Filter property などを使って作れる? よく知らんけど

特殊変数(組み込み変数)、特殊文字は、見ておいた方がいい。
get-alias で、すべてのaliasも見る

970 :デフォルトの名無しさん:2016/11/08(火) 02:00:45.02 ID:d4uu94CJ.net
でなんでexcelの処理にpythonがおすすめなんだよ

971 :デフォルトの名無しさん:2016/11/08(火) 07:07:12.12 ID:DSM31B76.net
>>952
質問者じゃないけど、こう書いてもらえると分かりやすいな・・

972 :デフォルトの名無しさん:2016/11/08(火) 07:17:06.87 ID:DSM31B76.net
>>970
元の書き込みしたのは俺じゃないけど。
VBよりPythonとかのモダンなヤツの方が言語として使いやすいのはあると思う

VBAの動的配列 (CollectionやCOMのDictionary) が使い勝手がイマイチだとか
VBAの正規表現は中途半端なLIKE文やイチイチCOMのRegExp使わないといけないとか
VBAの定数はメンバ個数すらだせないEnumやさもなければConstで定義しないといけないとか
不満を言い出すとキリがない・・

973 :デフォルトの名無しさん:2016/11/08(火) 10:00:11.81 ID:gXJp65lf.net
>>963 出先でもちょこちょこっと処理できるといいので興味はありますけれどpythonは候補外です。
>>964 .NET覚えられるといいなとは思いますがJAVAが先で、しかも挫折中です。WSHにします。
>>966 こうも書けるということですね。ありがとう。
>>967,968 何を尋ねるかが整理できていないので申し訳ない。整理ができたら自分で解決できるのでしょうけれど。
んで、私あてへのレスではないのかもしれないけれど、Stop-Job | Get-Member 云々の解のひとつは
>>969なんだと思いました。調べ方が知りたかったのです。伝わるかな。
みなさん、ありがとうございました。

974 :デフォルトの名無しさん:2016/11/08(火) 11:46:21.67 ID:ZBAGJV1u.net
>>973
お前は何やってもだめだな

975 :デフォルトの名無しさん:2016/11/08(火) 12:23:15.83 ID:6hVcST+s.net
>>973
Javaが難しいようならWSHも含めた
JavaScript一本でいいと思う

今のJSはスマホもPCも何でもできるし
クセがあったけどES6で書きやすくなったしで

オレはPowerShellで十分書きやすいけど

976 :969:2016/11/08(火) 19:58:32.81 ID:M6Rn2+El.net
調べ方は、このスレでキーワードだけ聞いて、それで検索すれば?

漏れは数冊、本を読んだけど

977 :デフォルトの名無しさん:2016/11/12(土) 12:22:11.49 ID:v5MvkRT2.net
Google日本語入力で日本語入力しちゃうと
下に出る日本語関連のメッセージが消えずに残るのはいつか直るかな

978 :デフォルトの名無しさん:2016/11/12(土) 12:37:55.46 ID:UfahRH/Y.net
○○にはPythonの方を薦めるよ
かなりまじで

↑これコピペみたいだな
アンチが偽装してるっぽいけど
興味ないから知らんかったわ

979 :デフォルトの名無しさん:2016/11/12(土) 12:43:41.54 ID:x4E8HTQB.net
IronPythonがきっちりメンテされるんなら
そっちも使って見たいけど

980 :デフォルトの名無しさん:2016/11/12(土) 13:11:45.53 ID:VYJ07zOJ.net
>>977
それはMSが治すことか?

981 :デフォルトの名無しさん:2016/11/12(土) 19:32:19.90 ID:uUI+drrM.net
>>977
流石Google
変なIME作るなあ

982 :デフォルトの名無しさん:2016/11/14(月) 11:40:43.83 ID:igQzh1Us.net
ume

983 :デフォルトの名無しさん:2016/11/21(月) 15:33:19.17 ID:xWRgRXVP.net
>>972
言語系が違うから
同じ系統と使っていた人はそちらが使いやすい
というだけの話で、他人に強いる話じゃない。
自己満足すればいいだけ。

984 :デフォルトの名無しさん:2016/11/22(火) 02:29:44.48 ID:kEABk5Yk.net
>>983
レスが付いたので一応返すけど。
自分が列挙したのは機能不足の例であって、あなたが言うような言語系の違いでは無いと思う。
自分はVBAの文法は不足点が多いと思うけど、後継のVBA.netにはそういう不足は感じない。

985 :デフォルトの名無しさん:2016/11/22(火) 02:31:52.29 ID:kEABk5Yk.net
VBA.net→VB.netのtypo

986 :デフォルトの名無しさん:2016/11/22(火) 08:41:55.85 ID:y8FHZWuV.net
>>984
VBA と VB.net じゃ全然違う言語だろ w

987 :デフォルトの名無しさん:2016/11/22(火) 09:10:27.16 ID:i0R3Yq3v.net
お客さんがVBって言っててVB6とかだろめんどくさいとか思ってたらExcel VBA渡された

988 :デフォルトの名無しさん:2016/11/22(火) 11:04:57.44 ID:XOp4M2bC.net
>>986
違う言語なら何だと言うんだ?

989 :デフォルトの名無しさん:2016/11/22(火) 12:43:12.95 ID:y8FHZWuV.net
>>988
話の流れぐらい読めよ...
言語系が違うって話

990 :デフォルトの名無しさん:2016/11/22(火) 13:24:44.52 ID:uKd48bt3.net
win10 でコマンドプロンプトの代わりに標準になると聞いて飛んできますた

991 :デフォルトの名無しさん:2016/11/22(火) 21:20:37.17 ID:i5gt5IqK.net
Windows10 Insider Preview Build 14971でPowerShellが既定のコマンドラインシェルになった話
ttp://stknohg.hatenablog.jp/entry/2016/11/19/155916

1.既定のシェルになると言ってもユーザーインターフェースの(特にExplorer内の)既定の話である。
2.コマンドプロンプトが無くなるわけではなく、PowerShellやコマンドプロンプトの挙動が変わるわけでもない。
3.将来的な方針については一切語られていない。

強いて現時点で言えることがあるとすれば、

「コマンドプロンプトが見つけにくくなります。」

ということだけだと思います。

992 :デフォルトの名無しさん:2016/11/22(火) 22:21:46.25 ID:XOp4M2bC.net
>>989
君こそ>972,984をちゃんと読んだ方が良いんじゃない?
全く異なる論理を持ってきているようにしか読めない

993 :デフォルトの名無しさん:2016/11/22(火) 23:40:19.08 ID:DxAcXI0b.net
見つけたぞ〜

994 :デフォルトの名無しさん:2016/11/23(水) 05:42:53.64 ID:kdOVRR5O.net
結局ちょこまかリビジョンで大幅仕様変えるってなら8.1までみたく別の名前付けろやボケ

995 :デフォルトの名無しさん:2016/11/23(水) 15:15:39.41 ID:H2HeAnI3.net
>>992
>>984 が VBA と VB.net が同じ系列の言語って言ってるから、それは違うだろ
って言う簡単な話なんだが君には難しかったか?

996 :デフォルトの名無しさん:2016/11/23(水) 16:48:10.29 ID:XEgR0M7V.net
うめ

997 :デフォルトの名無しさん:2016/11/26(土) 01:34:20.62 ID:wbn1VWla.net
>>995
どっちもBASIC系列じゃん

998 :デフォルトの名無しさん:2016/11/26(土) 06:27:15.03 ID:pZYy6q7Y.net
>>997
構造化 ⇔ オブジェクト指向
そもそも BASIC 系列って w

999 :デフォルトの名無しさん:2016/11/26(土) 06:31:44.32 ID:pZYy6q7Y.net
次スレ
【最強CUI】PowerShell -Part 2
http://echo.2ch.net/test/read.cgi/tech/1480109402/

1000 :デフォルトの名無しさん:2016/11/26(土) 06:32:22.55 ID:pZYy6q7Y.net
ウメ

総レス数 1000
264 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★