X



【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0139デフォルトの名無しさん
垢版 |
2017/06/25(日) 15:20:14.95ID:wnVI7vr5
>>138
全否定しているわけではない。そもそも毎回いちから作らない。
0141デフォルトの名無しさん
垢版 |
2017/06/25(日) 17:16:04.58ID:wnVI7vr5
>>140
コード書きに時間をさく、重要視しすぎるのは経験の少ないひとの特徴。
0145デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:09:14.46ID:yXb23ZWN
使えるなら便利なものを使えばいいけど
フリーソフトなんかインスコ出来ないんだろ
notepadでも仕方ないじゃんか
別の(自由な)PCが使えるならソッチで書けばいい
0148デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:28:34.48ID:yXb23ZWN
良く読んだら、Visual Studio無いってことは、コンパイル環境も無いってことか
じゃあJDKはあるんだからJavaで作るのが現実的じゃないかな
0149デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:30:37.67ID:1WC2t8my
だからコンパイルしなくても.NET Frameworkは使えるし
Powershell ISEはPowershellと一緒に入ってるだろって話だよ
0150デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:37:08.45ID:ffAutXm5
>>148
今はJDKがあるけど次もあるとは限らない
Windowsにデフォルトで入ってるPowerShellでやるということに意味がある
0151デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:42:55.46ID:yXb23ZWN
将来を考えるんなら、今は面倒でも
Visual Studioのインストールの許可を貰うのが一番だと思う
0152デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:49:23.13ID:yXb23ZWN
ああ業務(会社内身内だけであっても)で使うんならVisual Studioを購入する稟議がおりないのか
0153デフォルトの名無しさん
垢版 |
2017/06/25(日) 18:57:22.49ID:uMirXT24
プロジェクトルームのPCにろくなもん入ってないことは良くある
ネットは使えないしインストール許可はもちろん下りない
0154デフォルトの名無しさん
垢版 |
2017/06/25(日) 19:12:53.84ID:fMxhTN4O
>>148
> 良く読んだら、Visual Studio無いってことは、コンパイル環境も無いってことか
無知は黙ってなよ...
0155デフォルトの名無しさん
垢版 |
2017/06/25(日) 21:18:31.50ID:cBKwT0iz
ソースコードに書かれた、退職した人からの隠されたメッセージが怖いと話題に
ttp://hayabusa3.2ch・sc/test/read.cgi/news/1498229496/
> 107 名前:名無しさん@涙目です。(栃木県)@\(^o^)/ [US][sage] 投稿日:2017/06/24(土) 00:25:14.51 ID:gtItCgjB0.net
>   秀丸で開発は死にたくなるわ
>   もうIDEなしではなにもできない

> 111 名前:名無しさん@涙目です。(静岡県)@\(^o^)/ [US][] 投稿日:2017/06/24(土) 00:27:21.91 ID:y67Dbtee0.net
>   >>107
>   生産性が全然違うわな…
>   これ、どんなシステムのソースなんだろね
>   もう人間にCのソース書かせるのは虐待レベルかもしれんな

> 557 名前:名無しさん@涙目です。(チベット自治区)@\(^o^)/ [US][] 投稿日:2017/06/24(土) 14:13:41.00 ID:Mt7vWmnB0.net
>   >>107
>   会社にもいるわ秀丸使ってるの
>   ライセンス払ってないしやめて欲しいんだけど
0157デフォルトの名無しさん
垢版 |
2017/06/26(月) 00:11:28.58ID:q7GF7ZpN
SDKが入ってないとコンパイルできないだろ
0162デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:11:40.80ID:78rqJMYE
プログラムに詳しいID:muOV6x9Q「PowerShell ユーザーのレベルが低くて PowerShell が流行らない」

俺「PowerShell の実行速度知ってるのかな。」
0168デフォルトの名無しさん
垢版 |
2017/06/26(月) 16:48:34.60ID:78rqJMYE
>>164
PowerShell が流行ってないなら、何が流行っていると言うのか。
Python か?
Ruby か?
0169デフォルトの名無しさん
垢版 |
2017/06/26(月) 18:25:37.00ID:1MMeaTZS
>>166
だから無知は黙っとけよ
Windows 7 なら初めから csc.exe は入ってる

>>167
どこが背伸びしてるかも書けなくてクヤシー
ってか w
0170デフォルトの名無しさん
垢版 |
2017/06/26(月) 22:20:40.86ID:ta2e2oUg
bashでいいんだよね
最近はwindowsでも当たり前のように動くし
あの不恰好なハイフンケースも見なくて済む
0171デフォルトの名無しさん
垢版 |
2017/06/27(火) 00:10:11.76ID:i+35CN1y
bash はテキストを扱うけど、PowerShell はオブジェクトを扱う

だから今では、Linux でも、PowerShell を使う
0173デフォルトの名無しさん
垢版 |
2017/06/27(火) 22:24:35.01ID:yIuIIYT1
オブジェクトパイプラインは
シェルスクリプトに相性最高だから
PowerShell使ってる
0174デフォルトの名無しさん
垢版 |
2017/06/27(火) 23:07:35.60ID:9pQu4/DR
PowerShellで動くGradleみたいなタスクランナーないのか?
適当なタスクはPowerShellで書いて難しいのは.NETでプラグイン書いて拡張みたいな
0175デフォルトの名無しさん
垢版 |
2017/06/30(金) 11:05:09.77ID:4xsmuURB
スタート右クリック -> コンピュータの管理 -> サービス一覧にHomeGroupListenerがありますが
Powershellのサービス表示コマンドgsvでHomeGroupListenerが出てきません
何故でしょうか?分かる方教えてください
0176デフォルトの名無しさん
垢版 |
2017/07/01(土) 10:38:47.37ID:365+VqkD
>>175
Powershellを管理者として実行してる場合は出てくる
標準ユーザーからだと見れない設定になってるみたい
0178デフォルトの名無しさん
垢版 |
2017/07/07(金) 00:02:12.03ID:i4NCWQ7g
コマンドプロンプトでbatファイルで「powershell -command '〜'」の形式で実行したいと考えています。
Excelのセルの値にセル内改行が入っている場合、〜.text.replace("`n","")で取り除けないかと考えていたのですが、
シングルクォーテーションで囲っているからか「`n」の部分が改行コードと認識されないようで、うまくいきませんでした。

powershellのISEで「powershell -command」を除いて「'〜'」の部分をシングルクォーテーションを除いて実行すればできるらしいことは分かったのですが、
「powershell -command」を除かないbatファイル形式だと実行できないままで、じゃあbatファイル形式だと本当にできないのかどうかが判断できないでいます。

詳しい方がいたら、batファイル形式でExcelのセル内改行を除くことができるか、実現の可否を教えてもらえるとありがたいです。
0180デフォルトの名無しさん
垢版 |
2017/07/07(金) 15:24:04.06ID:ZubRvcdJ
>>178
セル内改行やらシングルクォーテーションやらを除いて何たらのくだりがよく分からないのですが
とにかくbatファイルからPowerShellを呼び出して改行コードを消すのはできましたよ

batファイルだとコマンド内のダブルクォーテーションをエスケープするのが面倒だし、>>179が言われるように
PS1ファイルにコマンドを書いて、それを呼び出すのが一番良いと思います


REM 改行コードあり
start cmd /k powershell -command "$a=\"hoge`nfuga\";$a"

REM 改行コード削除
start cmd /k powershell -command "$a=\"hoge`nfuga\";$a.replace(\"`n\", \"\")"
0181デフォルトの名無しさん
垢版 |
2017/07/08(土) 16:14:05.15ID:fy9+Ir4c
>>179-180
別の言語環境からPowershellを実行しようと考えていました。
PS1を呼び出そうとしても管理者権限がなく、
客先なので権限的に難しいです;

コードは試してみてうまくいきました。
ありがとうございました。
0183デフォルトの名無しさん
垢版 |
2017/07/08(土) 23:33:03.82ID:VtagckP8
`nを取り除くだけならコマンドプロンプトだけでできる
>set a="hoge`nfuga"

>echo %a%
"hoge`nfuga"

>echo %a:`n=%
"hogefuga"
0184デフォルトの名無しさん
垢版 |
2017/07/11(火) 21:26:19.29ID:dObX9Tuu
>>182-183
客先でget-executionpolicyを実行した結果、restictedでした。
変更しようとしたらアクセス拒否されました(客先なので管理者権限無し)。
なおVersionは2.0です;

Excelのセル内改行を処理することが目的でした。
コマンドプロンプトだとExcelを開いてその中身を操作することはできないはず
(できるとしたら、方法知らないです)。
0188デフォルトの名無しさん
垢版 |
2017/07/15(土) 11:47:00.67ID:gU/I/qic
>>186が完璧すぎてコレで解決すると思いますが、あえて、あえて欠点を言うならば
batファイルとps1ファイルの2つを管理することになることです、、そこでbatファイルだけで済ませてみようのコーナー!

rem --------------------------------------------------------------------------------
rem ダブルクォート内のダブルクォートは\でエスケープ
rem アンパサンド、パイプ、括弧などの特殊文字は^(キャレット)でエスケープ
rem %(ForEach-Object)は%%
rem --------------------------------------------------------------------------------
set cmd=^
$a=\"hoge`nfuga\";$a.replace(\"`n\", \"\");^
gsv ^| ?{$_.status -eq \"stopped\"} ^| select-object -first 5 ^| %%{$_.displayname}

start cmd /k powershell -command "%cmd%"


いかがでしょうか、エスケープまみれで若干見難くメンテナンス性に欠けてる雰囲気を醸し出していながら
あら?案外PowerShellのコマンド呼び出せるじゃん?結構複雑な処理もできるじゃん?という可能性を感じて頂けると思います
0189デフォルトの名無しさん
垢版 |
2017/07/15(土) 12:12:56.60ID:CHIBYjTE
JScriptをバッチで書こうってのと同じ発想だね
ちょっと面白かったけど結局使わなくなったな、やっぱメンテナンス性が悪い
0198デフォルトの名無しさん
垢版 |
2017/07/26(水) 15:57:09.64ID:oWetxvTP
「将来のリリースでは削除予定(中略)

削除
Outlook Express
ペイント

非推奨
IIS用のRSA/AES暗号化
Windows PowerShell 2.0

ペイントが削除されることは大きな話題となり、これを受けて
MicrosoftはペイントをWindowsストアで提供する計画を明らかにした」

Windows 10 Fall Creators Updateで削除される機能が公表される。
ペイントは「非推奨」となりWindowsストアで提供 | スラド IT
https://it.srad.jp/story/17/07/26/056231/
2017年07月26日 14時42分
0202デフォルトの名無しさん
垢版 |
2017/07/27(木) 00:20:15.41ID:QED4HDCh
>>200
毎日使ってる。

メモ帳は F5で日時入れて日記
あと、書式を削除して文字列をコピペするときに中継につかう。

ペイントは保存だけだけどキャプチャしたサイズで保存できるから便利だった。
0203デフォルトの名無しさん
垢版 |
2017/07/27(木) 07:04:28.87ID:P1js1uXh
>>202
> 書式を削除して文字列をコピペするときに中継につかう。
これは俺もよく使ったな
2007 辺りから Office でテキストだけの貼り付けができるようになったのでだいぶ出番は少なくなったけど
0204デフォルトの名無しさん
垢版 |
2017/07/27(木) 22:36:14.85ID:wZCn8yX+
>>202
オレ書式消す時にはwebブラウザの検索欄使ってるわ。
メモ帳起動するのも面倒くさい。
0205デフォルトの名無しさん
垢版 |
2017/07/28(金) 00:13:48.81ID:BWZfnzS5
PSのスレとしてはこれを使いやすいとこに置いとくとかが正解では
v5.0以降じゃないと動かないけど

(Get-Clipboard)|Set-Clipboard
0207デフォルトの名無しさん
垢版 |
2017/07/28(金) 12:33:26.50ID:WvgdGCet
>>206
逆に言えば、ブラウザ検索窓で済むくらい、一行が多いって事じゃね?
0209デフォルトの名無しさん
垢版 |
2017/08/07(月) 09:28:31.23ID:ZOe0YyE+
 あまり仕様を理解してないせいかもしれませんが,オブジェクトのプロパティに最後のひと押しをしたい時に,よい書き方が分かりません。教えてください。

 例えば chrome の プライベートメモリサイズの合計を調べたいとします

>>> gps chrome | Measure-Object PM -sum

 ここまでは良いのですけど。 さらに総和を 1mb で割りたいとします。
 果たしてもう一度パイプを通すべきなのでしょうか。

>>> gps chrome | Measure-Object PM -sum | % {$_.sum/1MB}

 この「パイプを通して foreach……」というのが,方法としておかしい気がするんです。
 ただの考え過ぎかもしれませんが,似たようなケースで多々も同じ方法を使っていて……いつも不安になってます。

 どなたかご教授いただければ幸いです。
0210デフォルトの名無しさん
垢版 |
2017/08/07(月) 10:25:25.82ID:LLOFEtR0
>>209
>この「パイプを通して foreach……」というのが,方法としておかしい気がするんです。
なぜおかしいと思うの?
0211デフォルトの名無しさん
垢版 |
2017/08/07(月) 10:38:22.40ID:aJuSimYa
>>209
自分もおかしくないと思うけど、パイプ使いたくないならこうすれば?

(gps chrome | Measure-Object PM -sum).sum / 1mb
0213デフォルトの名無しさん
垢版 |
2017/08/07(月) 23:18:53.21ID:ZOe0YyE+
 そこまでおかしくないということでしたら安心しました。

 おかしいかというよりかは PowerShell においてこれが自然な方法かどうかが気になっていました。
 プロパティを調べるにはただ obj.sum と書くのが自然な気がしたからです。そのために別の手続きを幾つか経過させるべきなのか迷っていました。
 その意味では >>211 さんの方法がより良い気がします。

 PowerShell では,代入文などを使って素朴に書いたほうが綺麗にできているのかもしれません。

 自然だとか綺麗だとかは個人的な美学の問題ですし,PowerShell が出始めたころに出し尽くした議論だとは思いますけど……。

 どうもありがとうございました!
0214デフォルトの名無しさん
垢版 |
2017/08/08(火) 01:16:03.36ID:nf4mccFn
>>213
211の方法でも、さらに加工しようとするとややこしくなる
例えば文字列でMBを加えて出力しようとすると
Write-Host "$((gps chrome | Measure-Object PM -sum).sum / 1mb)MB"

これよりはパイプだけの方が見やすいと思う
gps chrome | Measure-Object PM -sum | %{$_.sum/1MB} | %{"$($_)MB"} | Write-Host

まあ変数使えよって話かもしれないけどw
0216デフォルトの名無しさん
垢版 |
2017/08/09(水) 08:38:50.59ID:RoXwN+kA
俺は下の方が読みやすいな。
左から順に読み下せるってのが、パイプの性質に合ってる気がする。
まあ、好みかもな。
0217デフォルトの名無しさん
垢版 |
2017/08/09(水) 09:28:52.63ID:VOmW1luq
>>213
obj.sum的なことは$_.sumでやってるじゃん

1つの要素をForeachで回すのに違和感があるのかな?
Foreachで回す時にいちいち要素数なんか考慮しないよ、要素なんてゼロの時もあるし1の時もあるし複数ある時もあるわけだし

要素が1つの時は、(hogehoge).sum と書いて、要素が2つ以上ある時は、hogehoge | %{$_.sum} と書き分ける方がおかしい
よって、これは好みの問題ではなく正解は>>214でいうところの下の書き方が正解
好みとか美学とかなんたらいう前にPowershellの流儀に従うべき、上の書き方はありえないよ、ありえない
0220デフォルトの名無しさん
垢版 |
2017/08/09(水) 16:33:47.42ID:uHgJiGhi
たとえばカレントディレクトリににa.txtとb.jpg、c.jpgの3ファイルがあったとして

$txt = ls *.txt

$jpg = ls *.jpg

の型が違うのは気持ち悪い気はする
$txt.Countとか$txt[0]とやったり、逆に$jpg.Nameとかもできるんだけど
$jpg += $txtだとちゃんと追加される一方で、$txt += $jpgだとエラーになる
0221デフォルトの名無しさん
垢版 |
2017/08/09(水) 16:48:34.81ID:xf4P4t8V
好みや流儀より、単純にパイプの方がメンテナンス性が優れてるよ
>>214は実際やってみると小数点以下の羅列の後に"MB"が付いて見苦しくなる
でもパイプなら一部の修正だけですむ
%{"$($_)MB"} を %{"{0:.00}MB" -f $_} とか、
四捨五入して %{[math]::Floor($_+0.5)} | %{"$($_)MB"} とか
214の上でこれやろうとするとカッコばかりで暗号のようになる
0222デフォルトの名無しさん
垢版 |
2017/08/09(水) 16:52:13.45ID:xf4P4t8V
>>220
それはまたちょっと違う問題だね
その場合はこうやって強制的に配列にしろと教えられたよ

$txt = @(ls *.txt)
0225デフォルトの名無しさん
垢版 |
2017/08/09(水) 18:47:27.63ID:veHAq/rO
>>222
配列かスカラーか返される物が状況によって変わる気持ち悪さは昔からあちこちで散々言われてるね
0226デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:38:02.86ID:LnmC5B+P
>>221
暗号ねぇ w
Write-Host ("{0:0.00}MB" -f (gps chrome | Measure-Object PM -sum).sum / 1mb))
ちなみに書式変換時は元々四捨五入なのでFloorとかは要らんよ
0227デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:41:50.81ID:LnmC5B+P
>>225
配列を便利に扱えるようにしてるのはわかるけどちょっとやり過ぎかな
-eq 演算子なんてトラップ以外の何者でもないだろ
あと全然関係ないけど -isnull 演算子が欲しい
0228デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:46:51.80ID:xf4P4t8V
>>226
[int]だけで四捨五入になるのは知ってるけど、分かりやすくした

暗号は言い過ぎたかもしれんが、そんなん書くより一度変数に入れたくならんか?w
0230デフォルトの名無しさん
垢版 |
2017/08/09(水) 20:10:17.94ID:LnmC5B+P
>>228
> そんなん書くより一度変数に入れたくならんか?w
この程度でなるか?
って話
程度は人によって違うからまあ好きにしなよ

>>229
スマホから書き込んでるから細かいところは目を瞑ってくれ
0231デフォルトの名無しさん
垢版 |
2017/08/09(水) 21:53:40.19ID:VOmW1luq
課長 「SumをMBで出してくれ」
A君 "{0:0.00}MB" -f ((gps chrome | Measure-Object PM -sum).sum / 1mb)
B君 gps chrome | Measure-Object PM -sum | %{[String]::format("{0:0.00}MB", $_.sum/1mb)}

課長 「すばらしい! じゃあついでにMax値とMin値もMBで出してちょうだい」
A君 「ぐぬぬ・・・」
B君 gps chrome | Measure-Object PM -sum -Maximum -Minimum | %{[String]::format("Sum: {0:0.00}MB`nMax: {1:0.00}MB`nMin: {2:0.00}MB", ($_.sum, $_.maximum, $_.minimum | %{$_/1mb}) )}
明美 「きゃーB君ステキ ブッチュー」
0232デフォルトの名無しさん
垢版 |
2017/08/09(水) 23:08:02.45ID:VOmW1luq
C君 gps chrome | Measure-Object PM -sum -Maximum -Minimum | %{$_.sum, $_.maximum, $_.minimum | %{$_/1mb}} | %{"{0:0.00}MB" -f $_}
明美 「キャー 抱いてぇー」
0233デフォルトの名無しさん
垢版 |
2017/08/10(木) 00:28:12.53ID:6XCllBcj
自分ならこうするかな
一行で書かなきゃいけないルールでもあるのか、その会社は

gps vivaldi | Measure-Object PM -sum -Maximum -Minimum| %{
foreach($i in 'Sum','Maximum','Minimum'){
"{0}: {1:0.00}MB" -f $i.Substring(0,3),($_.$i/1mb)
}
}
■ このスレッドは過去ログ倉庫に格納されています

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