18/01/02 22:14:25.04 cpIk9AtY.net
タイプミスしちゃった
start cmd
301:デフォルトの名無しさん
18/01/02 22:29:34.02 4AlqWi6E.net
>>286
質問の意味わかってる?
302:デフォルトの名無しさん
18/01/02 22:36:39.85 cpIk9AtY.net
コマンドプロンプトを開きたいとしか読めない。
質問を見ると、コマンドプロンプトを出さないようにしたいという
意味にはなってないし。
なんなんでし�
303:蛛H
304:デフォルトの名無しさん
18/01/02 22:39:26.99 cpIk9AtY.net
ああごめん、わかった。
単にexeを実行したいってことね。
start xxx.exe
これでいいんじゃない?
305:デフォルトの名無しさん
18/01/02 22:58:55.67 jMJmiv3g.net
と、おだやかなお正月風景がすすんでいます
306:デフォルトの名無しさん
18/01/02 23:54:42.16 BiuuD5uo.net
>>285
C#アプリ側でpowershell上で実行するように変更するか、スクリプトなりショートカットファイルなり使ってpowershell経由で呼べば良いんじゃないかな?
例えばショートカットのリンク先に powershell.exe -noexit C#アプリ.exe とか。
※powershellのフルパスは自動的に補完されると思うけど、C#アプリはフルパスで記入した方が良いよ。
307:デフォルトの名無しさん
18/01/03 01:24:47.80 E10k9nmq.net
>>285
C#とかのコンソールアプリは別にcmdが裏で動いてたりするわけじゃないよ
powershellも色が付いた単なるコンソールアプリだよ
308:デフォルトの名無しさん
18/01/03 04:11:38.95 LyakWDNT.net
そのアプリの中で、cmd というコマンドを使っていれば、コマンドプロンプト、
powershell というコマンドを使っていれば、PowerShell が起動する
コマンドプロンプトで、powershell と打てば、PowerShell に、
PowerShell で、cmd と打てば、コマンドプロンプトが起動する
309:デフォルトの名無しさん
18/01/03 07:28:44.92 r/sVYD0y.net
いわゆるDOS窓はConsoleAPIを使って生成していて
それに対してstdin/outで読み書きしてれば
自作のコンソールアプリ,cmd,powershell等のコンソールアプリ間で相互に呼び出して繋げられるようになっている
Console Functions - Windows Console | Microsoft Docs
URLリンク(docs.microsoft.com)
310:デフォルトの名無しさん
18/01/04 19:31:12.74 53E7Fk1q.net
c#のcsi.exeで実行するスクリプトってすごい便利だな知らんかったこれ
311:デフォルトの名無しさん
18/01/05 11:06:17.33 zx9cp28q.net
たしかにC#のスクリプトはお手軽さはないがなんでもできるんだよなあ
ちょっと手のこんだことだとC#のほうが楽
312:デフォルトの名無しさん
18/01/05 11:13:19.30 zx9cp28q.net
inputboxはC#にないからpowershellからのほうが楽なのねなるほど
313:デフォルトの名無しさん
18/01/05 14:42:36.77 m3Niw8wH.net
>>298
これはC#から使えないの?
Interaction.InputBox メソッド
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
314:デフォルトの名無しさん
18/01/06 12:35:04.57 nVtZlcUN.net
URLリンク(itsukara.hateblo.jp)
すごいねこれ。GUIはwpfのほうがええんかな
315:デフォルトの名無しさん
18/01/07 00:05:50.77 X0qXwTa7.net
>>300
今後の問題ってのがWPFにもFormにもあるけど、
わたしゃ、DesktopではPowerShell+WPFでガンガン
作ってますよ。
xamlで書いて。
316:デフォルトの名無しさん
18/01/09 03:02:58.55 69Y93T5M.net
PowerShell+WPFなめてたけど
おもったより簡単に書けるな
だがPoserShell窓消せないのでC#でexeにしたほうがいいっぽい
317:デフォルトの名無しさん
18/01/09 09:19:25.79 4EiQrQ8s.net
>>302
WSHでラップすれば一応消せるで
318:デフォルトの名無しさん
18/01/10 00:29:43.87 NjZf1Ty6.net
>>302
スゲー便利よ。WPF表示関数化してる。
VSでデザインした時も、デザイナーのオブジェクトのNameをそのまま
PowerShellの変数で使用できるようにしちゃってるんで、すげー開発
効率高い。ちなみにその関数も20行くらいのもの。
デザインしたら、そのままPowerShellのデータとバインドして表示。
319:デフォルトの名無しさん
18/01/11 01:24:15.68 SytfDmnE.net
ジャグ配列を返す関数を作ったのですが、ルートの要素が1個の時に戻り値がおかしくなります
ルートの要素が2個以上の場合は起きません。どうしてででしょうか
以下再現コード
function test_jag_array() {
$jag = ,@(@("abc", "def", "ghi", @("jkl", "mno", "pqr", "stu")))
foreach($x in $jag) {
[void]("func " + $x[0] + " " + $x[1] | Out-Host)
for ($i = 3; $i -lt $x.length; $i++) {
$a= $x[$i][0]; $b= $x[$i][1]; $c= $x[$i][2]; $d= $x[$i][3]
[void]("func " + "a:" + $a + " b:" + $b + " c:" + $c + " d:" + $d | Out-Host)
}
}
return $jag
}
$jag = test_jag_array
foreach($x in $jag) {
[void]("res " + $x[0] + " " + $x[1] | Out-Host)
for ($i = 3; $i -lt $x.length; $i++) {
$a= $x[$i][0]; $b= $x[$i][1]; $c= $x[$i][2]; $d= $x[$i][3]
[void]("res " + "a:" + $a + " b:" + $b + " c:" + $c + " d:" + $d | Out-Host)
}
}
上の実行結果
func abc def ←期待する結果
func a:jkl b:mno c:pqr d:stu ←期待する結果
res a b ←なんじゃこれ・・・
res d e ←なんじゃこれ・・・
res g h ←なんじゃこれ・・・
res jkl mno ←なんじゃこれ・・・
res a:s b:t c:u d: ←なんじゃこれ・・・
320:デフォルトの名無しさん
18/01/11 01:34:44.31 SytfDmnE.net
↑をルート要素2で試す場合は$jagを以下に変えてください。
$jag = ,@(@("abc", "def", "ghi", @("jkl", "mno", "pqr", "stu")), `
@("abc", "def", "ghi", @("jkl", "mno", "pqr", "stu")))
要素1を回避するコードを加えて一応この問題は解決はしてますが、バグの特定で1日潰れました。
321:デフォルトの名無しさん
18/01/11 03:42:54.09 z0XvJ0+n.net
>>306
その辺の闇は以下によくまとめられてた
powershellの@()の謎を解く
URLリンク(qiita.com)
また以下記事のコメント欄でWrite-Output -NoEnumerateの例があった
powershell: 2次元配列が微妙
URLリンク(qiita.com)
322:デフォルトの名無しさん
18/01/11 03:49:18.87 z0XvJ0+n.net
こんな感じでいける
function test_jag_array() {
$jag1 = , ("abc", "def", "ghi", ("jkl", "mno", "pqr", "stu"))
$jag2 = , ("abc", "def", "ghi", ("jkl", "mno", "pqr", "stu")),
("abc", "def", "ghi", ("jkl", "mno", "pqr", "stu"))
$jag = $jag1 # jag1の場合
~省略(元のまま)~
Write-Output -NoEnumerate $jag
}
323:デフォルトの名無しさん
18/01/11 05:37:21.95 z0XvJ0+n.net
>>308
訂正
$jag2の右辺の最初のコンマ演算子いらないわ取り除いて
これだと最初の要素がさらに配列に包まれてしまう
なかなか一貫性のある書き方が難しいね
324:デフォルトの名無しさん
18/01/11 08:50:32.05 DUtiDslL.net
PowerShell Core 6.0: Generally Available (GA) and Supported!
URLリンク(blogs.msdn.microsoft.com)
325:デフォルトの名無しさん
18/01/12 00:35:51.74 9OW8M9wc.net
>>307
ありがとうございます。
実装(=仕様?)が変なんですね。
VBScriptのarrayのような順序付き汎用コンテナとして使うつもりでいましたが
他の手段も考えてみます。
326:デフォルトの名無しさん
18/01/12 20:29:55.97 05Vmz+vo.net
MacやLinuxでも動作する「PowerShell Core 6.0」が一般公開 - 窓の杜
URLリンク(forest.watch.impress.co.jp)
最強や
327:デフォルトの名無しさん
18/01/14 13:52:57.20 hvH7W8Dy.net
どうせならXPにも対応して欲しいな
古いマシン再利用できるかもしれん
328:デフォルトの名無しさん
18/01/14 15:04:00.85 h026DvON.net
OSSなんだからforkして自分でやればいい
329:デフォルトの名無しさん
18/01/14 22:54:52.40 rBzJ4J2v.net
まずは.NET Coreのforkからだな
330:デフォルトの名無しさん
18/01/20 14:22:45.53 5CcUAB6E.net
まとめ
PowerShell使いにくい
331:デフォルトの名無しさん
18/01/20 15:07:18.35 eJTcatAc.net
>>316
おバカ自慢は要らない
332:デフォルトの名無しさん
18/01/20 20:09:32.77 tb/5wFRb.net
馬鹿には使いこなせいPowerShell。つまりゴミ。
333:デフォルトの名無しさん
18/01/20 20:12:33.64 aYLVMpQq.net
> 使いこなせい
日本語もまともに書けない馬鹿 = >>318 は使�
334:ヲないってことか w
335:デフォルトの名無しさん
18/01/20 20:18:39.25 tb/5wFRb.net
そのとおり。馬鹿には使いこなせないPowerShell。vi並の粗大ゴミ。
WSH捨てたことを一生後悔することだろう。というかPowerShellなど普及することはない。WPF並の生ゴミ。悪臭がする。
336:デフォルトの名無しさん
18/01/20 20:28:37.35 CFAgCrzx.net
俺は使えるからなんの問題もない
337:デフォルトの名無しさん
18/01/20 20:32:52.77 tb/5wFRb.net
ほぼサーバ用途なのに自分だけ使えれば問題ないとか保守のことを全く考えないおれ天才君が作ったもの。
それがPowerShell。普及するわけがない。
338:デフォルトの名無しさん
18/01/20 20:38:49.39 CFAgCrzx.net
ごめんな、うちの会社は普通にみんな使えてるから w
底辺は色々大変だね
あとサーバー用途だけじゃなくて、ちょっとしたテキスト処理とかでも便利に使えるし
まあついていけない人はWSH使ってりゃいいんじゃね?
339:デフォルトの名無しさん
18/01/20 21:28:13.84 tb/5wFRb.net
嘘だね。使えてない奴が使えてるフリしてるだけ。そういうバグあり馬鹿コードを多くの大手SIerの保守案件で散々見てきた。
MSが提供するサンプルコードすら惨いときもあるのにおまえの会社だけは「普 通 に み ん な 使 え て る」という。
キミの口はジョブス並みだな。
340:デフォルトの名無しさん
18/01/20 21:36:04.82 87fvh5f6.net
PS万歳とは言わないけど
何出して来るかと思ったら結局WSHかよ…
341:デフォルトの名無しさん
18/01/20 21:42:56.41 tb/5wFRb.net
PowerShellを出すならNT4.0のときだったんだよ。昔のMSは互換性、保守を重要視してくれた。
ゲイツがいなくなって今ではまるでジョブスのように切り捨ての王様になってしまった。直にPowerShellもなかったことになるだろう。
もはやMSの凋落は必至。
342:デフォルトの名無しさん
18/01/20 21:57:45.42 ea7nxeEz.net
必死だな
343:デフォルトの名無しさん
18/01/21 08:08:27.81 rQmHQ7OM.net
>>326
> 直にPowerShellもなかったことになるだろう。
すでにオープンソースになっててLinuxですら動くことも知らないんだろうな w
344:デフォルトの名無しさん
18/01/21 11:13:24.09 W6oArJxs.net
MSがオープンソースにするものは捨てたということ
345:デフォルトの名無しさん
18/01/21 11:17:54.20 xo2ueQrN.net
ねーよwww
346:デフォルトの名無しさん
18/01/21 11:28:24.25 oGuWm1pn.net
>>329
ならWSHは安泰じゃん良かったな
347:デフォルトの名無しさん
18/01/21 11:49:34.94 mkWKfEkb.net
>>328
それだが、PowerShellはクソ言語と、悪いけど俺も思っていて、それでも使うのは素のMS-Windowsに載っていて、Windows操作に必要だからでしかないんだよね。
こんなモノのLinuxやMac版を誰が使うんだろう。
まともなC言語環境のあるLinuxやBSD(Mac)でC#みたいな劣化言語を使いたい人なんていない。PSも同様だと思うので、一体誰に向けた動きなのかと。
348:デフォルトの名無しさん
18/01/21 12:00:01.51 uiiSY3P/.net
>>332
理解できない言語を糞認定 w
どこが糞か書いてみ
349:デフォルトの名無しさん
18/01/21 12:32:28.85 JwhmWwix.net
PowerShellはPerlを弄ってた時のワクワク感を思い出させる。
「折衷主義者のガラクタ」って揶揄されてたPerlに似てるところが好きだ。
350:デフォルトの名無しさん
18/01/21 15:36:03.00 SnOHZgOX.net
で、LinuxのPerlに勝てると?
351:デフォルトの名無しさん
18/01/21 16:04:27.13 U0dzqAVa.net
しょーもな低スキルの低能丸出しのレスばっか
中身のある技術的な話を誰一人できないっていう
352:デフォルトの名無しさん
18/01/21 16:06:20.87 W6oArJxs.net
これは見てて恥ずかしいタイプのマウンティング
353:デフォルトの名無しさん
18/01/21 16:11:36.64 jvKKFqi6.net
おバカ自慢とか変な自治厨が�
354:Zみ着いてて居心地悪いわ 使いにくいのは事実なんだから仕方ねーじゃん
355:デフォルトの名無しさん
18/01/21 16:34:53.49 rQmHQ7OM.net
>>338
> 使いにくいのは事実なんだから仕方ねーじゃん
お前にはそうなんだろうな...
356:デフォルトの名無しさん
18/01/21 16:40:03.11 W6oArJxs.net
そもそもオープンソース化して喜ぶとかウニ厨でしょう。
357:デフォルトの名無しさん
18/01/21 17:16:23.83 Nniit6aA.net
>>338
おバカ自慢て言われた程度で自治厨とか繊細すぎるな
あんた2chに向いてないと思う
358:デフォルトの名無しさん
18/01/22 03:30:40.49 xAzFKy/K.net
馬鹿だから使えない理論はvi厨の論法。使いにくいという事実を受け入れられない共産主義者。
359:デフォルトの名無しさん
18/01/22 06:19:54.05 DO9KWhZf.net
MS-Windowsのデバイスドライバ辺りをオープンソース化してくれるならともかく、PowerShellよりマシなものが沢山ある環境にこんな糞を投入されて喜ぶウニ厨なんていないでしょう。
360:デフォルトの名無しさん
18/01/22 08:38:15.63 ckfaCAxk.net
プレーンテキスト至上主義のunixで使えたところでそんなにうれしくないのは確か
361:デフォルトの名無しさん
18/01/22 15:04:01.00 xAzFKy/K.net
デバドラのサンプルソースは一通り揃ってるし、WDFはオープンソース化したというニュースを昔に見たが。
というかドキュメント整備したくないからソース見てくれって話だろう。つまり手抜き。
MSDNライブラリもスナップショットの提供を止めてから崩壊してるし。
無能PGが増えてコード品質の低下が止まらなくなってんだよ、今のMSは。
362:デフォルトの名無しさん
18/01/22 17:12:28.75 +/nnDvsj.net
>>342
だからどこが使い辛いんだよ、具体的に書いてみなよ
よくわからずに語ってるんじゃないんでしょ?
363:デフォルトの名無しさん
18/01/22 18:06:37.00 ITXp9HeA.net
>>>>346
Perl使ってみて、それでもPowerShellが良いって思うんならもう言うことは無いな
364:デフォルトの名無しさん
18/01/22 18:29:53.43 4bmxr+CG.net
結局具体的なことなにもいえないっていう
どの言語もろくに使えないのでは?
ご自慢のPerlつかってればいいと思うよ
365:デフォルトの名無しさん
18/01/22 18:34:06.79 ITXp9HeA.net
使える使えないの議論はしてないってことが根本から分かってない奴には困ったもんだ
366:デフォルトの名無しさん
18/01/22 18:38:20.36 4bmxr+CG.net
ほう、どうゆう議論してるの?
367:デフォルトの名無しさん
18/01/22 21:27:41.78 vYNLhkYR.net
そんなにPowerShellがクソなら、なんでGoogleがPowerShellモジュールを作ったりしてるんだよ
Cloud Tools for PowerShell
URLリンク(cloud.google.com)
368:デフォルトの名無しさん
18/01/22 21:44:39.43 qSpJOl7I.net
結論ありきの言い逃げがしたいだけだから、そもそも議論になってないだけだよ
369:デフォルトの名無しさん
18/01/22 22:35:18.60 4cUHC1qI.net
PowerShellは世界最強のシェル。
ただ使う人が少ない、使いこなせている人が少ないのがどうにも。
370:デフォルトの名無しさん
18/01/23 17:18:34.01 eZkYRvtN.net
googleはただのパクり屋。google様が使ってるから素晴らしいみたいな
マカーのような価値観の人がいるようだが、MSのほうがよほどマシ。
371:デフォルトの名無しさん
18/01/24 08:44:25.19 Rwufea/L.net
そもそもなんでPowerSherllの比較対象がperlなんだ?
bashとかのunixシェルなら分かるが
372:デフォルトの名無しさん
18/01/24 18:20:30.45 cTEKAhE2.net
bash じゃ正規表現や連想配列も使えないだろ
って言う老害でしょ
373:デフォルトの名無しさん
18/01/25 01:53:04.89 WgYpUAx2.net
よほどPowerShellが気になってるんでしょうね
わざわざ来るくらいだから
374:デフォルトの名無しさん
18/01/25 01:54:46.25 WgYpUAx2.net
>>351
AWSもいっしょだよ
375:デフォルトの名無しさん
18/01/25 02:58:09.47 bbltRTAq.net
大学とかで勉強し始めたばかりの奴が自分のOSや言語を作りたいって人いるじゃん。
そんな奴が作った感じするんだよね、PowerShellは。使う�
376:、のことを何も考えてないっていうか。 PowerShellには期待してたけど、残念賞あげたいレベル。
377:デフォルトの名無しさん
18/01/25 03:06:11.90 +aT+OEjK.net
まあMSがこれだけ時間をかけて普及させようとがんばってきたのにちっとも普及しなかったからな
さらに.NET FrameworkベースのPowerShellで頑張ってればいいのに.NET Coreベースに移行するのは吉とでるか凶と出るか
378:デフォルトの名無しさん
18/01/25 03:34:37.44 xdveLU72.net
>>359
具体的に
379:デフォルトの名無しさん
18/01/25 04:38:12.97 bbltRTAq.net
リボンUIとかメトロUIもそんな奴が作った感じするんだよね。今まで便利で不満なかったものが、
今からおれが考えたこれ使えと言いつつ自分は碌に使ってないから何が不便かすら理解していない。
結局移行してもらえず、無料にしたり、オープンソースにしたり。
380:デフォルトの名無しさん
18/01/25 06:02:25.02 9nHFvuML.net
>自分は碌に使ってないから何が不便かすら理解していない。
おまえがなーw
PowerShellのイケてないところはたしかにあるんだよ
でもお前はなにひとつ具体的にあげられないから議論にならない
典型的な批判してる俺かっこいいのプログラミング初心者だろうw
381:デフォルトの名無しさん
18/01/25 08:46:52.90 jzQbwnAF.net
>>359
たとえばどんなところ?
382:デフォルトの名無しさん
18/01/25 09:23:56.11 QMrii+Ei.net
>>362
リボン導入前のOfficeがどんなUIだったか知らないのか?
URLリンク(www.aoky.net)
383:デフォルトの名無しさん
18/01/25 14:44:54.00 bbltRTAq.net
評判が悪ければすぐ撤回するのはゲイツの思想。
移行してもらえないのをユーザが馬鹿だからって基本ジョブスの思想なんだよね。
そもそもなんでそういう奴がWindows使ってるのか謎。Macでも使ってろよ。
まぁゲイツが引退してからのMSはまるでアップルだけどね。欠陥品のゴリ押しばかり。
384:デフォルトの名無しさん
18/01/25 18:38:14.54 AIlmNuXT.net
結局具体的な使い辛さも言えずにぶつぶつ独り言を言うだけかよ...
385:デフォルトの名無しさん
18/01/25 18:57:51.13 bbltRTAq.net
そういうことは移行を拒否した大勢の顧客に聞くべきだったのだ。ゲイツならそうした。
Vista、Office2007、Windows8、WPF、PowerShell、ワンボタンマウス・・・いくらでも例はある。
386:デフォルトの名無しさん
18/01/25 22:18:43.13 jzQbwnAF.net
---ここまで具体例なし---
387:デフォルトの名無しさん
18/01/26 00:20:26.36 2qREz52g.net
説明するまでもないこと
具体例云々繰り返す奴はLinux板で良く見かけるよ
388:デフォルトの名無しさん
18/01/26 02:32:53.30 hKoymMP7.net
結局、PowerShellって何がしたかったんだ?Unixシェルの駆逐?
389:デフォルトの名無しさん
18/01/26 08:27:51.42 sFu+Ex6E.net
>>371
Unixシェルの駆逐(笑)が目的ならbash on Windowsなんか作らないだろ…
390:デフォルトの名無しさん
18/01/26 15:16:39.51 cWhgmMyM.net
駆逐どころか、(Unixのログインシェルに移植版PowerShellを使えるか知らんが)PSのログインシェル人口が絶滅危惧種のcshに追いつけたら大成功だと思うよ。
391:デフォルトの名無しさん
18/01/26 16:26:08.29 kUBhdwT4.net
なにいってんだ
bash on windowsもMacやLinuxでのPowershellも開発用
普段LinuxやMac使ってる人がWinでも開発しやすくするため、逆もしかり
なんで追いつけたら大成功なんてアホなこと言ってんの
392:デフォルトの名無しさん
18/01/26 17:35:08.99 Lzw6elJ8.net
シェアの話はしちゃダメだよ(笑)
393:デフォルトの名無しさん
18/01/26 20:00:31.74 hKoymMP7.net
単純にMSはコマンドプロンプトを完全にPowerShellに置き換えようとしたの?
394:デフォルトの名無しさん
18/01/26 20:03:32.03 8m7gdhLr.net
>>370
> 説明するまでもないこと
説明できない奴の常套句 w
395:デフォルトの名無しさん
18/01/26 22:11:48.50 xXSIxAPE.net
Cmdlet適当に組み合わせるだけでもいろんな事ができて便利なので使ってるけど、正直構文はちょっとキモいと思ってる
JScript/WSHの延長でTypeScriptっぽくしたほうが良かったんじゃ
396:デフォルトの名無しさん
18/01/26 23:57:01.40 8m7gdhLr.net
>>378
> 正直構文はちょっとキモいと思ってる
そうか?
まあ == の代わりに -eq とかはちょい見辛い気はする
あと関数内で単なる式を書くと戻り値になるとかも慣れないと気持ち悪いな
でもそれより配列の扱いが特殊な方が気になる
397:デフォルトの名無しさん
18/01/27 00:21:36.31 +1W3UINk.net
なんだかんだと言いながら
PowerShell利用は急激に増えてるのは事実なんで
それでいいんじゃないの
398:デフォルトの名無しさん
18/01/27 01:48:16.16 gGfEZXbc.net
結局、PowerShellがどういう意図で開発されたんだ?
なんでこの程度の基本的な質問すら誰も回答しないでスルーする?
399:デフォルトの名無しさん
18/01/27 02:15:12.60 AI3Ijs7Y.net
開発から10年以上になるってのに今更過ぎる話題
URLリンク(www.atmarkit.co.jp)
400:デフォルトの名無しさん
18/01/27 03:12:23.79 C3HeL8rM.net
powershell覚えようかと思ったけど、bash使えるようになったからもういいや
401:デフォルトの名無しさん
18/01/27 04:46:17.42 gGfEZXbc.net
> なぜ新しいシェルが必要なのか?
> 理由その1:コマンド・プロンプトの進化が限界に来ているため
> 理由その2:コマンド・プロンプトのバッチ機能が不十分であるため
内容にガッカリ。Widnwosは開発環境、IDEが強力でコマンドプロンプトを使う場面が限られている。
しかも既にWSHがあってバッチ処理で困ることもない。WSHは言語は自由なのにvbscriptを持ち出して記述が冗長とかいうアホ指摘。
> Microsoftはシステム管理用に特化し、優れたスクリプト機能もあわせ持つ新しいシェルを開発する必要に迫られたわけである。
その解決手段がなぜか、「システム管理用に特化」のシェル。
この程度の理由じゃそりゃ移行してくれないはずだわ。誰も必要に迫られてないのだから。
こんな恥ずかしい技術記事持ってくんなよ。おまえはこの記事でPowerShellの必要性に納得したのかよ。
402:デフォルトの名無しさん
18/01/27 04:56:49.67 1VJSvYbm.net
>>384
サーバー使ったことなさそう。
403:デフォルトの名無しさん
18/01/27 06:38:42.80 y60tdrG2.net
>>374
開発用シェルというものを初めて聞いた。
すまないが、それはどういう定義か教えて貰えないだろうか。
404:デフォルトの名無しさん
18/01/27 07:42:12.61 +IHcDO2K.net
まあ爺はbashなりWSHなりを使っときゃいいんじゃね
もう新しい技術を取り入れる能力無さそうだし w
405:デフォルトの名無しさん
18/01/27 08:28:47.77 AI3Ijs7Y.net
無理して移行する必要は無いよって言ってくれてるから安心して
URLリンク(technet.microsoft.com)
ただ初学者に無理してcmdとWSHを勉強させるのは勘弁して欲しい
406:デフォルトの名無しさん
18/01/27 08:30:36.32 m1Wg2epk.net
知ったかぶるなら、こういうのを見てからにしとけばよかったのに
使う気が無い人向けのPowerShell入門
URLリンク(karino2.livejournal.com)
407:デフォルトの名無しさん
18/01/27 10:35:01.25 ZgMGVzLO.net
>>388
いいこと書いてるけど自動車乗れるようになったら自転車に乗らなくなるのと同じでPowerShellに慣れたらわざわざVBScriptなんて使わんわな
408:デフォルトの名無しさん
18/01/27 19:09:24.76 gGfEZXbc.net
新しい技術、新しい技術連呼で具体例は一切なしか。まさに詐欺師ジョブスと同じ手法じゃん。
しつこく聞いてやって出てきたのがこれだからな。
URLリンク(www.atmarkit.co.jp)
> 理由その1:コマンド・プロンプトの進化が限界に来ているため
> 理由その2:コマンド・プロンプトのバッチ機能が不十分であるため
さらに突っ込んだらこれが理由だとさ。
URLリンク(technet.microsoft.com)
> その一方で例外もあります。たとえば、Microsoft Exchange Server 2007 の管理を自動化する場合は、PowerShell を使う必要があります。
つまりMSの製品にあれこれ制限かけて無理やり移行させようとしてるだけ。まさにAppleと同じ切り捨て手法ですな。MSオワタ
409:デフォルトの名無しさん
18/01/27 22:43:30.80 ZgMGVzLO.net
>>391
> 新しい技術、新しい技術連呼で具体例は一切なしか。
ん?
ちょっと調べりゃすぐわかるだろうに...
・パイプにオブジェクトを渡せる
・スクリプトの癖に型を強制できる
・一部の処理でループを記述せずに配列を処理するできる (-eq 演算子とか switch 文とか)
410:デフォルトの名無しさん
18/01/28 00:29:40.36 bTKnHnST.net
> パイプにオブジェクトを渡せる
すごいようでこれがあまりにもすごくないんだよな。残念大勝の一番の理由がこれ。
411:デフォルトの名無しさん
18/01/28 01:08:47.49 WtZFLS3w.net
>>393
馬鹿すぎ
412:デフォルトの名無しさん
18/01/28 01:50:52.35 bTKnHnST.net
>>394
具体的に
413:デフォルトの名無しさん
18/01/28 03:00:11.13 WtZFLS3w.net
>>395
具体的って?
.NETにオブジェクトとして渡せるだけで十分だろ。
414:デフォルトの名無しさん
18/01/28 03:20:34.63 bTKnHnST.net
なにひとつ具体的にあげられないから議論にならないな
典型的な人を馬鹿にした俺かっこいいのプログラミング初心者だろう
415:デフォルトの名無しさん
18/01/28 07:17:45.41 7YQDaT33.net
シェルスクリプトで苦労したことがないんでしょうね
416:デフォルトの名無しさん
18/01/28 08:24:55.62 C2Jb//yt.net
>>393
URLリンク(technet.microsoft.com)
を見ても便利さを理解できない老害ならおとなしくWSHでVBScript使っとけばいいと思うよ w
417:デフォルトの名無しさん
18/01/28 08:42:15.20 MFdZtZMl.net
unixシェルは同じコマンドでも作者やバージョンによって出力フォーマットが違うことがあるのがゴミ
.netはecmaで標準化されてるからどの環境でも同じように使える
418:デフォルトの名無しさん
18/01/28 09:07:27.12 i85SWwCT.net
PSは今やWindowsのシェルと言うよりも.NETのシェル
そしてMSには.NET以外のDOS由来だのActiveX/COMに割けるリソースは無い
そもそもcmdやWSHは別者過ぎて学習の指針となるべき一貫性が無い
そもそも.NETに興味ないならしょうがないけどね
419:デフォルトの名無しさん
18/01/28 10:35:46.87 ZKF4cQEu.net
>>379
関数だと括弧をつけると配列を第一引数として渡したことになるところは毎回ハマる
メソッドの使用と混在すると特に
というかアレは関数じゃなくてcmdletだから、生成構文を区別して、関数は関数で別に作れたら良かったのに
420:デフォルトの名無しさん
18/01/28 10:48:43.15 5COUzF1g.net
>>379
それは自分が何に成れているか次第ででょうね
私だと==を使う言語自体使っていなかったので
-eq以前に==自体に違和感感じるんだわ
421:デフォルトの名無しさん
18/01/28 10:56:03.92 5COUzF1g.net
msはかつて大きなシェアをとった時代に独禁法で規制された
関係で他の環境への進出を長い間やれなかった(また控えていた)。
そのために他のプラットフォーム上では企業として進出しなかった。
今はそういう環境から解放されたので、他のプラットフォーム上に
積極的に出ることができるようになったという流れ。
今後は、どんどん出てくるよ。
うまく行くかどうかは別として。
422:デフォルトの名無しさん
18/01/28 11:53:02.48 qzyVH/BM.net
>>402
括弧と言うかカンマ ',' の扱いが独特なのと一次元配列に対する親切機能(お節介機能とも言う)のお陰で今でも混乱してる俺
>>403
日頃どんな言語使ってるの?
423:デフォルトの名無しさん
18/01/28 11:55:33.58 7JwYicqf.net
>>405
複数だけど、一番多いのはSASかな。
424:デフォルトの名無しさん
18/01/28 12:18:28.19 qzyVH/BM.net
425:SAS なんて聞いたこともないからよく知らんけど統計処理用の言語みたいだから PowerShell みたいな言語と比較されてもそりゃ違うだろとしか言えんわな
426:デフォルトの名無しさん
18/01/28 12:25:37.17 jpmSjP1r.net
>>407
まあ特殊な管理用途以外でShell使う必要がないので
大規模なレガシーデータ処理だとまともに処理できるソフトが
余りないので、DB構築の前処理などに大変便利してる。
PowerShellも便利にしてるよ。
427:デフォルトの名無しさん
18/01/28 13:04:36.95 NipuMoZC.net
LISPみたいな印字書式を定義しなかったせいでオブジェクト毎に出力が無茶苦茶なのがな
適当なシリアライズ/デシリアライズなコンテナを探してこないと
428:デフォルトの名無しさん
18/01/28 13:14:16.78 FWMaXZJR.net
これ、
> ・パイプにオブジェクトを渡せる
蛇蝎のように嫌われているのだろうと思っていたが、意外にもこの界隈では評価されているんだね。
型を意識する必要のある点や、-output-string(だっけ?)が要ることもあったりする点が、他OS移植版普及のネックだろうと思う。
429:デフォルトの名無しさん
18/01/28 13:21:04.03 C2Jb//yt.net
>>410
???
当然だけど文字列を渡すこともできるんだが...
430:デフォルトの名無しさん
18/01/28 13:27:41.20 jpmSjP1r.net
>>410
そうやってメリットデメリット出して考えてゆくのが
良いような気がするな。開発者自体が別プラットフォーム間での
移植性を考えているなら当然の問題として、それを考えていることに
なるので、じゃどういう考えを持っているか見て行くのも面白いと思う。
431:デフォルトの名無しさん
18/01/28 13:31:58.78 jpmSjP1r.net
>>411
一つはそれはあるね
とはいえPowerShellの良さを生かそうとすると
別な手段も考え(てくる)気がする。
ま、.NETドライブするのが大きな目的だから、別プラットフォーム間で
.NET同士でオブジェクトで渡す方向があるでしょうね。
432:デフォルトの名無しさん
18/01/28 14:05:22.62 5h4UQWxR.net
>>409
Format-*の中から状況ごとに都合のいいのを選べばいいだけじゃないの?
自分で規定のフォーマットを定義してもいい
Format コマンドを使用した出力ビューの変更
URLリンク(docs.microsoft.com)
about_Format.ps1xml
URLリンク(technet.microsoft.com)
433:デフォルトの名無しさん
18/01/28 14:24:26.21 vzdSAj0J.net
自分は事務職で、PowerShellを少しだけ使ってるんですけど、便利だなあと思う反面、
難しくてしんどいことも多いです。
最初にPowerShellを使ってみたのは、業務システムから出力されるCSVから、データの抽出をしたときです。
CSVのカラムが数百列あるうえに、下っ端の私が知らぬ間に仕様がたまに変わる。
(新規カラムがいくつか追加されている。しかもそれらが既存カラムの間に挿入されている)
そのCSVから複数条件で抽出するのに、以前はエクセルで毎回難儀してたのが、
2時間くらいかけて文法のさわりを勉強してPowerShellを使ってみたら超楽ちん!
それからはもう少し勉強して、Webからデータをとってきたり、毎度決まりきったファイルのリネームと移動、
みたいなことにも便利に使ってます。
しんどいのは、挙動の予測が難しい場合が多々あることです。
他の言語(VBA、C#)も少し勉強したことがあるのですが、初心者にわかりづらい挙動の多さという意味では
PowerShellが一番難しいです。
ちょっとしたことをするのにも大抵1つ2つ罠にはまって、毎回悩みながら解決する羽
434:目になります。 そして文法はなんだか覚えづらい。 ここ何か月か新規スクリプトを作る機会がなかっただけでだいぶ忘れてしまいました。 OSに付属していることだし、職業プログラマーじゃない人も使うことを考えて、 できればもう少しシンプルで覚えやすい仕様にしてほしかった。
435:デフォルトの名無しさん
18/01/28 14:27:55.14 jpmSjP1r.net
>しんどいのは、挙動の予測が難しい場合が多々あることです。
>ちょっとしたことをするのにも大抵1つ2つ罠にはまって、
>毎回悩みながら解決する羽目になります。
そういうのを、ここに質問する場にしたらどうでしょ。
436:デフォルトの名無しさん
18/01/28 15:12:22.02 vzdSAj0J.net
>>416
ありがとうございます。
またハマってしまうことがあったら質問させていただきます。
437:デフォルトの名無しさん
18/01/28 15:25:45.79 C2Jb//yt.net
>>415
> 2時間くらいかけて文法のさわりを勉強してPowerShellを使ってみたら超楽ちん!
2時間とか超優秀な部類じゃね?
> 初心者にわかりづらい挙動の多さという意味では
> PowerShellが一番難しいです。
まあこれはあるわな
便利さとのトレードオフもあるけど配列回りはちょっとやり過ぎな気もする
・-eq とかがフィルター演算子になる
・switch に配列渡すと自動的に全要素を処理する
等々...
438:デフォルトの名無しさん
18/01/28 15:27:16.79 zxtgYYNU.net
>>417
なんか利用されるのに適したcmdletあったら便利という気がするもので
いまC#で関数(dll)にして、ちまちまと自分ツールにしてます。
dllにすれば、そのまま.netクラスになるので、C#でもPowerShellでも
(使ってないけどvbでも)共用できるんで。
あと、海外のサイトにはいろいろ転がってるみたいなもので。
439:デフォルトの名無しさん
18/01/28 19:58:23.05 bTKnHnST.net
>>399
なるほど。最近勉強を始めて歴史を知らないからすげーと思ったわけか。
パクり屋のジョブスを革新、すげーと思う若者みたいなものだな。
UNIXではオブジェクト間通信の普及に失敗したけど、Windowsでは20年前に成功しているんですよ。
もう一度なぜオブジェクト思考が必要になったか歴史を勉強してくださいな。これは歴史の逆行ですよ。
440:デフォルトの名無しさん
18/01/28 20:37:11.09 C2Jb//yt.net
>>420
> Windowsでは20年前に成功しているんですよ。
おそらくDDE辺りの話を知ったかしてるんだろうけど全く違う話だから w
441:デフォルトの名無しさん
18/01/28 20:46:58.89 aNbuPTeM.net
「ファイルサイズ1MB以上のファイルをTEMPフォルダに移動する」
という処理をそのまま書き下せるのがシェルでオブジェクトを扱える利点
凄い事ではなくて、単にやりたいことをより自然に書けるようになるってだけ
下らないテキストの加工やマジックナンバーが減って読みやすくなる
442:デフォルトの名無しさん
18/01/28 20:48:14.20 OJ4BeXJh.net
>>415
> そして文法はなんだか覚えづらい。
> ここ何か月か新規スクリプトを作る機会がなかっただけでだいぶ忘れてしまいました。
文法覚えづらいか?統一されてるからちょっと覚えるだけだと思うが。
補完も使ってないとかいうオチでは
443:デフォルトの名無しさん
18/01/28 20:52:05.30 C2Jb//yt.net
その程度なら unix の find コマンドでできる
逆に言うとオブジェクトを渡せなかったから find コマンドが色々なフィルター機能を持つ必要があったと言うことでもある
444:デフォルトの名無しさん
18/01/28 21:00:28.05 bTKnHnST.net
>>421
20年前はIE4アップデートの話だよ。Windowsが一気にCOM化したんだよw
なんでDDEが出てくるんだよw これだからUNIX屋は今でも20年遅れてる。
ストリームにオブジェクト流すなんて昔から普通に行われているのに、
シェルでオブジェクト流せるパイプライン!! 最新の技術!!! 老害は便利さを理解できない!!! だもんなぁ。
445:デフォルトの名無しさん
18/01/28 21:07:16.09 C2Jb//yt.net
>>425
20年前の話を後生大事を覚えてる老害乙 w
COMの話がどう関係するのか知らんけどストリームにオブジェクトを流せるとかはもう少し具体的に書いてもらえるかな
446:デフォルトの名無しさん
18/01/28 21:28:00.62 4reZ7e7j.net
ストリームにオブジェクト流すなんて昔から普通に行われている(笑)
そのわりにはあんたの大好きなWSHにはTextStreamはあるけどObjectStreamなんてものは見当たらないよね
447:デフォルトの名無しさん
18/01/28 21:30:48.62 7YQDaT33.net
同じような話をぼんやりした理解のまま混ぜ
448:てやってるから 誰が何を応援してるのかさっぱり分からん
449:デフォルトの名無しさん
18/01/28 21:31:00.82 cl7B8Mzd.net
>>405
今でもっていうがもうずっと前から同じヤツが言ってるだろ
5人はいないと思う
450:デフォルトの名無しさん
18/01/28 21:31:06.24 7kR+joeD.net
その人ジョブズがーゲイツがーとか意味不明な話ばっかで
突っ込まれることにびびって具体的なこと何も言えない人だから
構ってもしょうがないよ
XP最高秀丸最高とか言ってる老害と同類じゃないかな
451:デフォルトの名無しさん
18/01/28 22:17:45.22 bTKnHnST.net
> COMの話がどう関係するのか知らんけどストリームにオブジェクトを流せるとかはもう少し具体的に
ここまでド素人丸出しの質問されてもね。
C++でもCOMでもMFCでもC#でも.netでもオブジェクト思考に関連する技術書なら書いてるでしょってレベル。
それが自称デシタルネイティブで老害連呼だからね。
安っぽいブログ風の記事ばかり読んでないでMSの公式解説書を全部読めよ。知識薄すぎなんだよ、小便垂れ。
452:デフォルトの名無しさん
18/01/28 22:20:25.43 E2yhzBE8.net
ストリームてPSのコマンド群は単なるクラスライブラリなんだが…
453:デフォルトの名無しさん
18/01/28 22:22:11.60 C2Jb//yt.net
>>431
具体的に書けないなら黙ってろよ w
454:デフォルトの名無しさん
18/01/28 22:29:49.73 bTKnHnST.net
>>433
MSの基幹技術のCOMすら理解してなかったのになんでおまえはそんなに偉そうなの?
若さゆえの過ちというものを認めたくないのは分かるが背伸びし過ぎではないか。
455:デフォルトの名無しさん
18/01/28 23:01:58.57 pCbikq+O.net
シェルスクリプトでは、複雑なプログラミングは無理だから、PowerShell になる。
それよりもさらに複雑になると、Ruby になる
だから、Vagrant, Chef, Homebrew などの環境構築ツールは皆、Ruby で作られている
456:デフォルトの名無しさん
18/01/28 23:24:29.92 aNbuPTeM.net
一つのコマンドが肥大化してカオスになったのがこれまでのシェルだから、それに慣れてしまってる人は良さが分かりにくいだろうね
コマンドに引数渡す時に頭につけるのは / なのか - なのか -- なのか、順番はあるのかないのか
そういうところを初めに統一しておいたのが地味にPSのいいところだと思う
457:デフォルトの名無しさん
18/01/29 05:04:35.04 LFybAfxw.net
>>434
オブジェクトをパイプに流す話とCOMなんて関係ないだろ w
そんなのはどうでもいいからお前は
> ストリームにオブジェクト流すなんて昔から普通に行われている
の具体例書けよ
458:デフォルトの名無しさん
18/01/29 05:26:47.04 NLT8o8lu.net
ああ静かだと思ったら寝てたのね
459:デフォルトの名無しさん
18/01/29 06:55:48.03 rL5UybAs.net
>>436
> コマンドに引数渡す時に頭につけるのは / なのか - なのか -- なのか、順番はあるのかないのか
> そういうところを初めに統一しておいたのが地味にPSのいいところだと思う
それには同意、ヘルプも充実してるし
あと引数の型チェックとかヘルプをスクリプト内に書ける機能とか良くできてると思う
460:デフォルトの名無しさん
18/01/29 10:31:25.70 lrRcQbVC.net
コマンドレットのネーミングルールもあるのでそのあたりは楽だな。
考えてみれば旧来のshell言語は、覚えちゃったから使えるという
ところだもんな。
461:デフォルトの名無しさん
18/01/29 10:33:16.34 6aL5W79g.net
コマンドオプションはヘルプしっかりしてるし扱いもParamだけで楽チンでいいけど、演算子とメンバ関数が混在してくると何かもにょる
配列とか文字列の演算子多いし余計な変換するし
462:デフォルトの名無しさん
18/01/29 15:58:03.39 6RiX0lFa.net
>>435
LinuxではPythonじゃね?
463:デフォルトの名無しさん
18/01/29 16:35:46.17 6RiX0lFa.net
URLリンク(www.atmarkit.co.jp)
> OLE1.0の時代は、DDE(Dynamic Data Exchange)をベースアーキテクチャとしていました。
> OLE2.0(現在)では、COM(Component Object Model)をベースアーキテクチャとしています。
> そのCOMは、プロセス間通信に RPC(Remot
464:e Procedure Call)を利用しています。 https://msdn.microsoft.com/ja-jp/library/ms538074(v=vs.85).aspx > Text Services Framework を使用することにより、アプリケーションのテキスト ストリームにオブジェクトを埋め込むことができます。 https://docs.oracle.com/javase/jp/7/platform/serialization/spec/output.html#933 > クラス ObjectOutputStream は、オブジェクト直列化を実装します。 この直列化は20年ほど前からあるっぽい。 https://ja.wikipedia.org/wiki/Java#実行環境の構成 > シリアライズ(serialization、オブジェクト直列化): オブジェクトの参照をたどって関連するオブジェクトをまとめてバイトストリームにすることができる。 そのストリームをファイルに書き込めば、オブジェクトの状態をそのまま保存(永続化)できる。 でっていう。
465:デフォルトの名無しさん
18/01/29 22:51:09.85 wqG3dXej.net
プロセス間でオブジェクトを受け渡すのは前からあったけど、シェルでサポートしてめっちゃ簡単に扱えるようになったのが利点じゃないの?
466:デフォルトの名無しさん
18/01/30 08:14:39.85 GJ8uq/eW.net
PowerShellのコマンドってオブジェクトをパイプに流すときにいちいちシリアライズとかしてるのか?
つーか
467:デフォルトの名無しさん
18/01/30 08:40:22.15 gBU+LQhN.net
>>445
知りたきゃソース見ればいいかと
468:デフォルトの名無しさん
18/01/30 11:33:08.90 V86e/eZu.net
>>445
してないと言うかPSのコマンドはいちいちプロセス作ったりしない
469:デフォルトの名無しさん
18/01/30 15:53:11.19 LMuo1Zyp.net
>>445
そんなことせずに、直接やり取りできるところが
いいところだもんね。
470:デフォルトの名無しさん
18/01/30 16:33:15.23 3+EGv0E9.net
失礼、噛みマミった。
>>443 の下半分は、Java言語の話です。
MS以外は昔からあるというので検索してみました。
.net は Java をパクって作っているけど
MSがJavaを使えなくなったのは、
開発スピードがMSのが早くて仕様を勝手に作ってしまうので
かじ取りをSUNがするために裁判を起こして差し止めたからなので
Javaが最初の実装なら、MSもほぼ同時期に同様の実装をしていることになる。
471:デフォルトの名無しさん
18/01/30 16:43:32.50 3+EGv0E9.net
そうやってせっかくJavaの仕様を統一したのに
GoogleがAndroidに組み込んだのはJavaもどき。
おかげでCPUのJava命令を使えず、ソフトウェアエミュレーションしてて無駄にCPU食って遅いとか。
.net が ARM の Java 命令で実行できるようになったらすごいけど・・・
472:デフォルトの名無しさん
18/01/30 19:45:29.59 m1sp0N+k.net
>>447
どこからプロセスが出てきたんだ?
473:デフォルトの名無しさん
18/01/30 20:56:43.36 N5bBVQCj.net
android登場時からjazilleで動いてるi-appliなんかより断然早かったと思うけど
474:デフォルトの名無しさん
18/01/30 21:56:58.31 XEZ388GX.net
>>451
>>443がプロセス間通信云々言ってるからじゃね?
PowereShellのコマンドレットをパイプでつなげるときは
powershell.exeのプロセスだけで完結しててプロセス間通信しないから
シリアライズの必要もない
475:デフォルトの名無しさん
18/01/31 21:07:01.54 dWxBIZCx.net
ETH-w
476:デフォルトの名無しさん
18/02/03 13:46:03.51 Rohe4eLB.net
ipmo ちんこ
でちんこをパイプカットできるのは評価したい
477:デフォルトの名無しさん
18/02/12 22:00:10.19 spwyngle.net
使用頻度高いのに[pscustomobject]っていちいち全部手打ちしないといけないのがまどろっこしい
タブ補完か[pco]とかに省略できるかどっちかやってほしい
478:デフォルトの名無しさん
18/02/14 07:28:57.51 xNlz1dTb.net
外部プログラムのウインドウサイズを
479:変更するのは、.Net Frameworkの機能だけでは無理なんですかね。
480:デフォルトの名無しさん
18/02/14 22:12:05.64 NrdtujHN.net
>>457
その質問自体がちょっとおかしいので
もう少し具体的に話してみて。
481:デフォルトの名無しさん
18/02/15 11:16:12.91 bNKwK/bs.net
Invoke-Sqlcmdコマンドを使って、データベースにINSERTやDELETEの結果を取得できる方法をどなたか教えて頂けませんでしょうか?
コマンドプロンプトでsqlcmdを使うと「(1 行処理されました)」等が表示されます。これを取得したいです。
482:デフォルトの名無しさん
18/02/15 13:05:03.45 4lKXUWzM.net
>>457
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--begin-maximized')
driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "~URI~"
driver.manage.window.maximize # 画面最大
Windows10, Ruby, Selenium::WebDriver::Chrome で、
ブラウザの自動操作を実行してるけど、画面を最大にできる
もちろん、画面サイズも変更できる
483:デフォルトの名無しさん
18/02/15 15:41:36.95 sVUOkVXF.net
Selenium使っているなら、PowerShellからSeleniunつかう
のじゃまずいのかな。
484:デフォルトの名無しさん
18/02/15 17:01:21.28 4lKXUWzM.net
シェルスクリプトよりは、PowerShell が良いけど、
これより複雑なものは、Ruby が良い
サクサク、プログラミングできて、バグが少ないのは、Rubyが断トツ!
Enumerable のメソッドが充実してる
485:デフォルトの名無しさん
18/02/15 17:07:26.96 4lKXUWzM.net
Selenium WebDriver は、PowerShell では出来ない
使えるプログラム言語は、Java/C#/Ruby/Python/Javascript
486:デフォルトの名無しさん
18/02/15 18:02:19.40 ZXhM7ba9.net
出来ますよ
487:デフォルトの名無しさん
18/02/15 18:18:56.65 ZXhM7ba9.net
>>463
それ、C#と書いてあるけど
.NETと解釈したらいいんですよ
それだけ。
それが.NETの良いところ
488:デフォルトの名無しさん
18/02/16 07:20:11.08 shLmPi2M.net
Win7 SP1 PowerShell 2.0の環境に隔離されたんだけどPSでGUIやるとしたら.NET 4.0のWinFormsが妥当?
セルフホストのHttpServerがあるならばブラウザアプリにするんだけどPS 2.0 .NET 4.0だとまだないよね
489:デフォルトの名無しさん
18/02/16 15:20:24.69 nkfY21W7.net
Windows7 SP1なら URLリンク(github.com) から
2018/01/25公開のPowerShell Core 6.0.1を入手し、今の内に慣れておくほうがいいのでは?
490:デフォルトの名無しさん
18/02/16 16:51:14.69 jq0LJPC+.net
>>467
『隔離された』と書いてあるんで
そうしなくてもできないという話じゃないの?
491:デフォルトの名無しさん
18/02/16 19:11:11.01 pw8u3FlN.net
そうです
ネットは監視されてます
インストールも自由にできません
492:デフォルトの名無しさん
18/02/16 19:31:53.38 jq0LJPC+.net
しかし、今後のネットなどを考えると
新たな発想の仕組みが出現してこないと
不自由でしかたないね。
いたちごっこの繰り返しだもんね。
493:デフォルトの名無しさん
18/02/16 22:10:13.50 pdOGHn5a.net
リモートで別のPCを操作したいという要求がある限り穴は無くならないのでは?
494:デフォルトの名無しさん
18/02/16 22:42:52.85 vp1KbUn5.net
今のところ、ネットがある限り穴はあるというところ。
でも今後ないと困るわけだからね~。
それに対応する暗号利用技術は考えられているんだが
まだ実用化されないし。
といっても暗号化も対処技術に他ならないしね~~
495:デフォルトの名無しさん
18/02/16 22:57:24.63 TT/12OsV.net
>>448
してる決まってるだろ。いくらなんでも素人杉。
496:デフォルトの名無しさん
18/02/17 01:10:35.41 YxQ+FKPw.net
わたし448じゃないけど、基本してないでしょ。
497:デフォルトの名無しさん
18/02/17 09:26:10.93 RP1Lckbc.net
GUIだんだんわかってきた
WPFが動くからFormsよりWPF使うほうが簡単だった
別ファイルにXAMLとViewMode(C#)を書いてXamlReaderでパース、Add-Type
しかし今のところPowerShellスクリプトの出番がほとんどない
PSCustomObjectをバインドできれば使えるのかな
498:デフォルトの名無しさん
18/02/17 09:31:46.64 AgYT9x+M.net
>>475
私は、WPF利用して逆にPowerShellの出番がガンガン増えてるよ~。
499:デフォルトの名無しさん
18/02/17 14:55:08.94 O2aJXn1j.net
.NET Coreには、WPF無いけどPowerShell CoreからWPF使えるのかな?
500:デフォルトの名無しさん
18/02/17 15:32:09.98 tJC3jvlA.net
んなわけない
501:デフォルトの名無しさん
18/02/17 16:33:07.35 /8k93ROr.net
>>475
簡単なGUIならXAMLもPowerShellに書いちゃえばいいじゃん?
502:デフォルトの名無しさん
18/02/18 00:25:57.67 mfQi5O1f.net
Visual StudioでWPF設計して
そのxamlをそのまま読みこんでPowerShellの表示に使えるように
PowerShell関数作ってます。
結構簡単に出来るよ
503:デフォルトの名無しさん
18/02/18 07:28:07.73 Stb7rhur.net
>>480
エライエライ
504:デフォルトの名無しさん
18/02/18 21:06:46.31 HOomNEjj.net
PowerShellで作る時に、使う最強のエディタは?
505:デフォルトの名無しさん
18/02/18 22:10:00.84 JlUJeRgg.net
VSCode
506:デフォルトの名無しさん
18/02/19 00:49:35.13 PsquRqu/.net
edlin
507:デフォルトの名無しさん
18/02/19 05:38:51.91 p/IhV2LV.net
>>482
VSCodeが決定版
やっぱ同じMS製だし
他言語でも使える
508:デフォルトの名無しさん
18/02/21 21:50:44.89 sytXW6IH.net
excelの選択範囲をpowershellに渡す方法教えて
ファイルに出力→powershellサブプロセス
はダサいから無しで
509:デフォルトの名無しさん
18/02/22 03:26:54.69 hk+HnqcW.net
$excel=New-Object -ComObject Excel.Application
$excel.Visible=$true
$wokbook=$excel.workbooks.open("なんとか.xlsx")
$woksheet=$wokbook.ActiveSheet
$actCells=$excel.Selection
510:デフォルトの名無しさん
18/02/22 03:28:18.65 hk+HnqcW.net
要は、最後の1行
$actCells=$excel.Selection
511:デフォルトの名無しさん
18/02/24 01:27:05.92 u/AYofsf.net
そういうのでよく使うのはGetObjectの方だと思う
512:デフォルトの名無しさん
18/02/24 02:25:42.58 EfAIzsYg.net
エクセルついでに、
csvをエクセルで開いて配列に一気に取り込んで、それをxlsx形式で新規保存する方法教えて。
513:デフォルトの名無しさん
18/02/24 05:43:27.81 4C8nRMYU.net
$excel=New-Object -ComObject Excel.Application
$excel.DisplayAlerts=$false
$workbook=$excel.workbooks.open(”入力path\なんとか.csv")
$workbook.SaveAs("保存path\かんとか.xlsx",51)
$workbook.Close()
$excel.Quit()
514:デフォルトの名無しさん
18/02/24 09:43:41.67 tzORDq38.net
ありがとう。
エクセルで開くときはcsv importみたいなコマンドレットは必要ないのね。その辺が調べてもよく分からなかった。
なお、配列にはデータ取り込んでる?
@()に入れる方法がよく分からん。
vbsだとarray=sheet.usedrange でできるけど。
515:デフォルトの名無しさん
18/02/24 10:16:12.10 4C8nRMYU.net
>>492
ごめん、いま明日の引っ越し準備で
対応できない。
516:デフォルトの名無しさん
18/02/24 12:22:39.31 NyTmnWgI.net
$array = $sheet.UsedRange.Value2
で良いんじゃね
517:デフォルトの名無しさん
18/02/24 15:03:06.06 EfAIzsYg.net
なるほど。
powershell だからパイプライン使うイメージだったけど、エクセル操作ではあまり使えない感じなんだね。
518:デフォルトの名無しさん
18/02/24 15:07:47.88 9oN2QzaC.net
20年近く前にvbscriptで散々やったものを今必死にPowerShellで再現してる最中なのか。
519:デフォルトの名無しさん
18/02/24 22:59:13.75 EfAIzsYg.net
ほんとそんな感じ。
サーバー管理するわけでもないなら、powershell そんなに覚える必要ないかな。ただパイプラインは面白いと思う
520:デフォルトの名無しさん
18/02/25 00:32:11.83 01COGLgI.net
ファイル操作には便利だよ
単機能のツール探すよりPSで書いた方が早いこと多い
521:デフォルトの名無しさん
18/02/25 01:39:02.81 pcyqC+jB.net
PowerShell より複雑なものは、Ruby を使え
Rubyから、Excel を扱うライブラリも、色々あるみたい
522:デフォルトの名無しさん
18/02/25 01:40:14.58 bSC8YYTG.net
>>499
Excelならc#で十分だわ
523:デフォルトの名無しさん
18/02/25 01:46:43.42 xNv2PYt4.net
pythonスレやpowershellスレでひたすらrubyすすめてくるキチガイはなんなんだw
524:デフォルトの名無しさん
18/02/25 03:34:56.38 X5QEzlQF.net
>>499
COM経由で一緒
525:デフォルトの名無しさん
18/02/25 04:58:27.12 5ohi2TD0.net
なんかrubyはずっといる
526:デフォルトの名無しさん
18/02/25 04:58:51.59 5ohi2TD0.net
>>500
VBAだろ
527:デフォルトの名無しさん
18/02/25 06:53:28.67 579ZQdUK.net
>>500
System.Runtime.InteropServices.Marshal.ReleaseComObject( ) 地獄に落ちてもいいならな
MSもMicrosoft.Office.Interop.Excelはアンマネージドなリソース使うんだからDisposeを真面目に実装しとけよ
528:デフォルトの名無しさん
18/02/25 07:36:24.71 xNv2PYt4.net
そうじゃなくて今はClosedXMLとかを使うんじゃないの
529:デフォルトの名無しさん
18/02/25 07:44:46.15 bSC8YYTG.net
>>505
いつの時代の話だよ
530:デフォルトの名無しさん
18/02/25 08:14:51.73 /V/K592r.net
客先で他になんにもないときにめちゃ助かる
VBAも悪くないけど基本ライブラリしょぼいし別プロセス連携とかオブジェクト指向やりにくいから
>>505
Book.CloseとかApp.Quitとか要点さえ守ればCOMラッパーが参照カウントを処理してくれるからReleaseComObjectは不要
531:デフォルトの名無しさん
18/02/25 08:39:48.35 RKRNLmY8.net
ただ本音を言うとCOMはもう直接触りたくない
裏方に徹してくれる分にはいいんだけど
そもそもOfficeが.NETのプラットフォームから逸脱してるのが面倒の素
532:デフォルトの名無しさん
18/02/25 09:25:49.90 Ydc/tL+D.net
データ取り込み->OleDb
帳票出力->サードパーティのマネージドライブラリ
操作性拡張->VBA
.NET相互運用は需要がない
533:デフォルトの名無しさん
18/02/25 16:14:29.85 4dYhkUpy.net
>>507-508
> Book.CloseとかApp.Quitとか要点さえ守ればCOMラッパーが参照カウントを処理してくれるからReleaseComObjectは不要
マジで言ってるの?
それとも最近便利な(まともな)ラッパーでもできたの?
534:デフォルトの名無しさん
18/02/25 16:45:57.41 f0GbsyKa.net
ラッパーなんてあるの?
webに転がってるpowershellの糞コードはまともに開放してないし
powershellで気を付けるレベルじゃどうやっても開放漏れは起こる
潔癖ならCOMと親和性の高いwshで処理したらいいし
大抵の人はEXCEL.EXEが残らなければOKって考えでしょ
535:デフォルトの名無しさん
18/02/25 19:36:34.84 Ydc/tL+D.net
逆に聞きたいんだが適切にCloseやQuitしててもリソースリークするエビデンスってある?
536:デフォルトの名無しさん
18/02/25 19:37:48.11 riORzo3z.net
>>511
NPOIとかClosedXMLすら使ったことないん?
537:デフォルトの名無しさん
18/02/25 20:06:18.82 Ydc/tL+D.net
そもそもエクセルプロセスが生きてる以外にリーク判定ってどうやってんだ?
538:デフォルトの名無しさん
18/02/25 23:21:13.29 97AlcoLv.net
質問です。EXCELファイル内のマクロコードをGREP検索したいのですが
powershellからそのようなことは出来るのでしょうか?
(powershell以外の方法でも構いません)
539:デフォルトの名無しさん
18/02/26 08:48:04.46 0MjsGOBH.net
>>513
C# の話な
> 逆に聞きたいんだが適切にCloseやQuitしててもリソースリークするエビデンスってある?
適切の意味にもよるけどシートを参照したままApplication.Quit() してもリソースリークするって言うのはググれば出てくる
(これはV
540:B.NETの例だけど) https://social.msdn.microsoft.com/Forums/ja-JP/3a296f83-4a49-4561-a735-570aa7430874/ecxel?forum=vbgeneralja >>514 COMの話であることも理解できないアホは絡んでくるなよ
541:デフォルトの名無しさん
18/02/26 08:55:33.76 qQ1Da7Hp.net
>>517
どうも日本語が不自由なようだ
542:デフォルトの名無しさん
18/02/26 09:29:44.47 0MjsGOBH.net
>>518
お前が誰か知らんけどそんなレスしかできないなら黙ってなよ w
543:デフォルトの名無しさん
18/02/26 09:57:08.97 MMVJYAud.net
>>519
涙拭けよw
544:デフォルトの名無しさん
18/02/26 10:12:54.85 0MjsGOBH.net
なんだ、無能の煽りかよ
545:デフォルトの名無しさん
18/02/26 12:17:43.07 7zf74qFu.net
>>521
顔真っ赤にしてどうした?w
546:デフォルトの名無しさん
18/02/26 12:21:47.40 aBQXIVru.net
ゆとりはCOMやオブジェクト思考を理解できない。
547:デフォルトの名無しさん
18/02/26 12:29:53.91 LisqF3+Y.net
いまどきCOMとかwww
548:デフォルトの名無しさん
18/02/26 12:32:03.28 aBQXIVru.net
このとおり。COMが何かすら理解してない様子。
549:デフォルトの名無しさん
18/02/26 12:49:39.49 K3pn9bD4.net
今は2018年だった気がするが
550:デフォルトの名無しさん
18/02/26 13:03:41.88 byvTlEgJ.net
>>517
エビデンスって言うには弱いな
コードの断片だけ見せて開放されないんですって言ってる人が居たってだけで
それにこれたぶんGC回ったら回収されるパターンでしょ
551:デフォルトの名無しさん
18/02/26 13:18:51.36 aBQXIVru.net
MSのメモリリークのバグなんて昔から何度もあったのに。MSも随分と信用を得たものだ。
552:デフォルトの名無しさん
18/02/26 13:26:17.87 zI4VKzz4.net
まあ今時COMって言うのは間違ってはないとは思うがCOMの話してるのにNPOIとかClosedXMLととか言い出す>>514が頓珍漢であることは変わらない
553:デフォルトの名無しさん
18/02/26 13:33:29.92 aBQXIVru.net
VS2017にATLついてる。なぜならMSが必要だから。COMなしではWindowsは動かない基盤技術。
おまえらの2chブラウザも動かなくなる。
554:デフォルトの名無しさん
18/02/26 15:06:05.67 tmFMcABi.net
流れを見ると>>500のレスを>>505が勝手にCOMの話と勘違いしたからそもそも話しがおかしくなってるんだと思うけど
どっちにしろたいした話もできてないからもう終わりでよくね
555:デフォルトの名無しさん
18/02/26 15:21:15.75 9PwnP/L5.net
ClosedXMLはExcelを操作するんじゃなくてExcelファイルを操作するライブラリだしww
てかいつまで粘着するの?
556:デフォルトの名無しさん
18/02/26 17:32:43.42 JDadgspp.net
COMの話題でどっと混む
557:デフォルトの名無しさん
18/02/26 18:04:10.90 XspdtcWH.net
エクセルでcsvを開いて、名前変えてエクセルファイルとして保存したいんだけど、
c:/test.csv
から
c:/test_add.xlsx
って感じに。
このとき、split-path $_ -parent + "/" + $.basename + "_add.xlsx"
みたいな書き方してるんだけど、もっとカッコいい良い書き方ある?
558:デフォルトの名無しさん
18/02/26 20:02:07.45 tmFMcABi.net
>>534
かっこいいかは分からんけどjoin-path使ったり
Join-Path $_.Directory ($_.BaseName + "_add.xlsx")
置換したり
$_.FullName -replace "\.csv$", "_add.xlsx"
単に文字列内で展開してもいいだろうし
"$($_.Directory)\$($_.BaseName)_add.xlsx"
559:デフォルトの名無しさん
18/02/26 23:11:59.96 6edExPT+.net
>>535
ありがとうございます。
さらっと3通り出るのすごい。
joinがpowershell 使ってる感あって好き、けど文字列内の$$もいいな
560:デフォルトの名無しさん
18/02/26 23:14:27.61 cmg78qzM.net
PowerShellで画面の文字拡大率を変更する事は可能?
ノートPC使っていると、150%とか100%を変えたい時があるが
いちいちGUIで変更するのが大変
561:デフォルトの名無しさん
2018/02/27
562:(火) 10:39:21.42 ID:OXeiIV2T.net
563:デフォルトの名無しさん
18/02/27 14:22:33.25 CzY5WQW+.net
顔を画面に近づけるだけだろ。どんだけデブなんだよ。
564:デフォルトの名無しさん
18/02/28 14:27:13.44 wxg4ntZg.net
文字の大きさなんて超基本なのに
その煽りはないわ
565:デフォルトの名無しさん
18/02/28 21:26:18.73 XB4appM3.net
好きに変更すりゃいいじゃねーか。GUIで変更は嫌だとか、キーに割り当てるのも嫌だとか、
顔近づけるのも嫌だとか、ほんとデブは馬鹿で横着だからヤダね。
メイドでも雇って変更してもらえや。
566:デフォルトの名無しさん
18/02/28 21:35:16.05 Gdb2LJhC.net
この句読点は無視でいいよ
567:デフォルトの名無しさん
18/02/28 21:39:00.90 XB4appM3.net
句読点の打ち方が分からない低学歴アピール乙。
568:デフォルトの名無しさん
18/02/28 22:44:45.43 updNaSP6.net
>>537 で言っているのは、何の画面のこと?
powershell.exeのコマンド画面も
powershell_iseのエディターも既定値設定できるんで
なんの話か理解できなくて。
569:544
18/02/28 22:53:58.42 updNaSP6.net
自分の文章理解力がなかった
Windowsの画面そのもののフォントサイズを
変更したいという話だったのね。
570:デフォルトの名無しさん
18/02/28 23:12:12.84 XB4appM3.net
GUIで設定するのも面倒、句読点を打つのも面倒。脳に障害があるレベルだな。
だが安心してください。Windowsには障碍者モードが実装されてます。
571:デフォルトの名無しさん
18/03/01 01:21:24.03 nHL6zjeN.net
まあ、PowerShellというよりもWindowsコンソールが機能不足かつ分かりづらいのは確か
ただ、フォントサイズくらいは変えられる
572:デフォルトの名無しさん
18/03/01 01:23:11.44 0hekOGPH.net
PPMとか生成したバイナリデータをリダイレクトで保存するのは難しいのかな
cmdはできるのに
573:デフォルトの名無しさん
18/03/01 10:56:37.02 tP9VZ2s0.net
句読点の付け方は別に間違っちゃいないけど、2chでそこまでしっかり打つのは少数派だから
ちょっと異様に見えるよ
574:デフォルトの名無しさん
18/03/01 11:57:54.51 lQ3pJcx7.net
単純に低学歴、低知能は句読点を打たない。
文章や論文を書く習慣がないし本も全く読まないから句読点がないことに違和感がない。つまり馬鹿。
ひろゆきすら打つ。くだらない知ったかして2ch素人にもほどがあるな。
しかも句読点があると異様だとかもはや脳みそに蛆でも沸いてるレベル。もはや日本人じゃないな。
1 名前:ひろゆき@どうやら管理人 ★[] 投稿日:2014/04/09(水) 14:47:55.24 ID:???
なんらかの不具合を見つけたら、
報告するスレッド。
118 名前:ひろゆき@どうやら管理人 ★[] 投稿日:2014/04/12(土) 02:48:58.08 ID:???
>>25
どうぞ、どうぞ。
575:デフォルトの名無しさん
18/03/01 12:37:08.99 tP9VZ2s0.net
ひろゆきも打つからなんだっつーの
本と2ch(というかメールやブログのコメントもだけど)は大きく違う
ソフトによって画面端での自動の改行がさされたりされなかったりするから、長い行はあまり書かない
「。」の代わりに改行で済ますように変化してる
行末に「。」を付けるのはかなり少数派だよ
576:デフォルトの名無しさん
18/03/01 13:38:12.57 Bn8v5XdY.net
>>550
そういう見方もあるだろうが
昔に戻ると、句読点は必須ではなく
文章に不慣れな人達のために使われるようになったそうで、
いまでいう高学歴というような人に対しては使わないもの
だったそうだ。
そのために、今でも表彰状などには句読点は一
577:切使われない。 ちなみに、句読点が一般的に使われるようになったのは、 明治半ば以降だそうだ。 、
578:デフォルトの名無しさん
18/03/01 15:34:24.24 mJRDcTgH.net
読みづらくなきゃなんでもいいと思うよ
クッソ読みづらくても句読点のあるなしにしか拘らん方が問題ある
読みやすい文の組み立てを心がければいいでしょう
579:デフォルトの名無しさん
18/03/01 15:34:48.45 Bn8v5XdY.net
感謝状、招待状等あえて句読点をつけない文章の共通点とは?
URLリンク(woman.mynavi.jp)
かつて、句読点を付けるのは『相手を見下す』
要は、句読点がないと文章も読めないだろうと相手を見なすことに
なることだったようだ。
ま、当時は漢字の利用頻度も高く、漢字ひらがな混じりでも
読みやすかったのでしょう。今はひらがななどの割合が高いので
やはり適切に句読点を使う必要あるんでしょうね。
580:デフォルトの名無しさん
18/03/01 15:40:17.42 mJRDcTgH.net
長文でひらがな比率高いと文の区切りが分からなくなりますからね。
581:デフォルトの名無しさん
18/03/01 19:01:36.71 5P8YUW6k.net
>>550
句読点の、打ち方が下手な香具師もよく、見かける
582:デフォルトの名無しさん
18/03/01 19:41:09.89 Bj3H1eP5.net
単に句読点はこのスレで低レベルな煽りを繰り返してるキチガイの特徴ってことだろ
IDかわってもすぐわかる
583:デフォルトの名無しさん
18/03/01 19:50:29.18 dLJOyeYF.net
句読点を適切に付与するスクリプト書いてよ
584:デフォルトの名無しさん
18/03/01 20:40:16.88 yqOkTTLk.net
powershellだけでプロジェクト組むとしたらどういうフォルダ構造にする?
585:デフォルトの名無しさん
18/03/01 21:33:08.36 cFY6likq.net
中東あたりだと母音を省略してしまうんだよね?
586:デフォルトの名無しさん
18/03/02 12:53:13.17 Bue9fMqJ.net
煽りうざいから話題換えよう
>>559
良い質問な気がする
ただオレ自身は単ファイルで済むバッチ
みたいなのを書くのがほとんどだから
もし本格的なプロジェクトのフォルダ構成を組むなら
JavaとかRubyとか他言語の構成をマネするかな
587:デフォルトの名無しさん
18/03/03 09:41:45.03 7F+xAEZY.net
PSCustomObjectで特定のinterfaceを実装したいんだがやりかたわからん
public interface IFoo {
int Bar(int x);
}
public static class Hoge {
public static void Fuga(IFoo foo) {
Console.WriteLine(foo.Bar(100));
}
$foo = new-object pscustomobject |
add-member -passthru -membertype scriptmethod -name Bar -value { param($p)
return 200 }
[Hoge]::Fuga($foo)
こういうことしたい
588:デフォルトの名無しさん
18/03/03 22:48:42.40 ApJ804E1.net
GoやTypeScriptじゃないんだからメソッドを持ってるからってinterfaceを実装してることにはならんよ
素直にIFooを実装するclassを定義すれば?
589:デフォルトの名無しさん
18/03/04 08:59:59.87 DH1b2y4q.net
>>563
そのやり方を知りたい
590:デフォルトの名無しさん
18/03/04 09:31:45.51 6fb5BRTO.net
>>564
実装されたインターフェイスの宣言
URLリンク(docs.microsoft.com)
591:デフォルトの名無しさん
18/03/04 09:49:31.76 DH1b2y4q.net
>>565
2.0でもできる方法教えてください
592:デフォルトの名無しさん
18/03/04 10:53:23.51 8KjE9Kl8.net
条件後出しというやつか
593:デフォルトの名無しさん
18/03/04 11:29:41.66 xMU3H7cs.net
>>566
むしろ今の内に5.1以降(できれば最新の6.0.1)に慣れておくほうが良いと思うけどな
594:デフォルトの名無しさん
18/03/04 12:58:31.78 D98mTqXy.net
業務で使うマシンはOSが最新�
595:ニは限らない PSもほとんどアップデートされてない だから低いバージョンでも使えるように訓練したほうがいい 最新版は追いかけるメリットがない
596:デフォルトの名無しさん
18/03/04 13:10:20.82 7vnf9POv.net
企業ならクライアントもWindows 7とか珍しくないから配布するようなスクリプトだと2.0前提
597:デフォルトの名無しさん
18/03/04 13:58:40.18 9+M4xykP.net
>>566
add-typeあるんだから普通にC#で書けば良くね
URLリンク(pastebin.com)
PSCustomObjectに実装しないといけないなら知らんけど
598:デフォルトの名無しさん
18/03/04 15:05:09.28 IHwduGqd.net
Windows PowerShell 2.0 Deprecation
URLリンク(blogs.msdn.microsoft.com)
599:デフォルトの名無しさん
18/03/04 17:24:27.69 D98mTqXy.net
>>571
それじゃpowershellコマンド使えないじゃん
600:デフォルトの名無しさん
18/03/04 21:56:10.13 hNuDXfDM.net
句読点を多用するのは下手な日本語で嫌われる。
もともとどこが句切りかわからないひと向けの記号だから、句読点の使用は馬鹿にされることもある。
601:デフォルトの名無しさん
18/03/04 22:04:18.45 E9oZl2pC.net
pushd/popd 便利やなあ
わしゃずっとcd使っとったぞい
602:デフォルトの名無しさん
18/03/05 05:26:47.07 ZV3N5zu0.net
>>575
わたしゃ多用してますわ
push-location
pop-location
と省略せずにつかっておりますです
603:デフォルトの名無しさん
18/03/06 18:11:54.95 QwFmEXbL.net
c# scriptingのほうが楽とちゃうか?
ネイティヴコマンド連携だけは若干ps有利かなといった印象
604:デフォルトの名無しさん
18/03/06 20:17:46.87 Xwb93uOm.net
その時々で都合の良いほうを使えばいいよ
同じ.NETなんだから否定する理由も無い
605:デフォルトの名無しさん
18/03/07 07:41:36.43 E7Qx2uww.net
>>578
あ、議論から逃げたw
606:デフォルトの名無しさん
18/03/07 07:47:27.99 Bp6mjckS.net
>>577
C# scriptingその後の話題が無いところをみると
どうも今一つなんかな
607:デフォルトの名無しさん
18/03/07 21:20:29.09 6bAELGui.net
>>577
シェルのlsやらcatやらみたいなのもc# scriptingのほうが楽なの?
608:デフォルトの名無しさん
18/03/08 00:59:56.29 D0NacyLc.net
bashとかが駄目な理由に、bashで書きづらくても、そこからpythonとか他の言語にするなら全部書き直しになる
609:デフォルトの名無しさん
18/03/08 01:13:22.32 uJW9EWjF.net
CLIが嬉しいと言いたいのかな。ちょっと論旨が理解できないが。
610:デフォルトの名無しさん
18/03/08 04:26:04.35 OsiEjbqp.net
script vs shell scriptとか何十年前の話題だよ
進歩のない連中だ
611:デフォルトの名無しさん
18/03/15 06:42:05.85 D4RVJiAa.net
OSのシェルとプログラミング言語の区別がない人間ばかりだから仕方ない。
612:デフォルトの名無しさん
18/03/15 12:26:16.83 Vp0MsA86.net
シェルスクリプトをどちらかに分類したがるのは無理なのでは。
613:デフォルトの名無しさん
18/03/15 15:36:12.78 BVhm+pK4.net
basicはどっちなん?
614:デフォルトの名無しさん
18/03/15 16:51:24.16 2jkAdz6t.net
単に、UNIXなどで単機能インタープリターをシェルと
呼び始めたんで、シェルは別物と思う人たちが出てきて
しまっただけ。
615:デフォルトの名無しさん
18/03/15 22:19:45.69 NI14hTsx.net
OSのシステムコールとプログラミング言語の区別がない人間も多い
616:デフォルトの名無しさん
18/03/16 08:54:28.41 T21mXgK0.net
システムコールとライブラリ関数
http://
617:jibun.atmarkit.co.jp/lskill01/rensai/fulinux/02/01.html システムコールとライブラリ関数の区別は曖昧で、 昔はシステムコールだった手続きも今はライブラリ関数として実装されていることがありますし、その逆もあります。 そういった意味では、システムコールとライブラリ関数の違いを本気で意識しなければならないのは カーネルや基幹ライブラリを書くプログラマくらいと言えるかもしれません。 システムコールとライブラリ関数の違いが実際に役に立つのは、manページを参照するときです。 例えば「printf」にはコマンドのprintfとライブラリ関数のprintfがあるので、 ライブラリ関数のprintfの解説が見たければ「man 3 printf」と入力しないといけません。 「write」にはコマンドのwriteとシステムコールのwriteがあるので、 システムコールのほうが読みたければ「man 2 write」と入力しないといけません。
618:デフォルトの名無しさん
18/03/17 11:59:28.36 4+yOSMEm.net
>>586
おまえはシェルがシェルスクリプトだと思っているのか?
619:デフォルトの名無しさん
18/03/17 12:01:46.42 4+yOSMEm.net
シェル用のスクリプトだからシェルスクリプトなのに。
620:デフォルトの名無しさん
18/03/17 16:54:33.86 gmKtMsY0.net
史上嘗て無い頭の悪そうな突っ込み
621:デフォルトの名無しさん
18/03/21 11:12:47.74 yOhpRYak.net
ps coreイイね
622:デフォルトの名無しさん
18/03/21 12:31:30.05 U1NUu6zm.net
>>594
そっすか
623:デフォルトの名無しさん
18/03/21 12:38:11.67 sjE01Nui.net
powershell_ise coreとかあったら良いのに
と思ったけど流石に需要ないか
624:デフォルトの名無しさん
18/03/21 12:51:05.01 kSqnsZIp.net
>>596
俺も欲しい
vscodeでも出来るけど、捨てコード書くには面倒なんだよね
625:デフォルトの名無しさん
18/03/22 00:18:59.44 tdHViWJs.net
VSCode の、Code Runner
ソースコードの範囲を選択して、実行できる
これは、便利なプラグイン!
626:デフォルトの名無しさん
18/03/22 00:26:12.80 2RoYBMkH.net
>>598
それ入れてないけど、範囲選択+F8で部分実行できたぞ
多分バージョンアップで不要になったプラグインだね
627:デフォルトの名無しさん
18/03/22 01:00:47.33 arhMS6Ve.net
部分実行できる言語もあるしできない言語もある
対象言語にも触れず「これは便利!」っつってる>>598もアホだし、対象言語もわかってないのに「バージョンアップで不要になったプラグイン」っつってる>>599もアホ
628:デフォルトの名無しさん
18/03/22 01:18:02.22 2RoYBMkH.net
スレタイも読んでない600が一番アホでは?
629:598
18/03/22 04:55:52.14 tdHViWJs.net
VSCode の、Code Runner
ソースコードの範囲を選択して、右クリックメニューから実行できる
便利なプラグイン!
PowerShell にも対応している
630:デフォルトの名無しさん
18/03/22 06:41:35.55 G0SZ4nh0.net
宣伝
631:デフォルトの名無しさん
18/03/24 09:35:21.60 9NxgdLlD.net
powershell coreでNuGetパッケージを使いたい場合ってどうすればいいの
Dapperを使う時にC#だったらdotnet add package Dapper; dotnet restoreだけどpowershellプロジェクトだとどうするのかな
632:デフォルトの名無しさん
18/03/25 17:30:21.30 rN4AhykW.net
dotnet add package Dapper
dotnet restore --packages ./packages
Add-Type $source -ReferencedAssemblies netstandard, ./packages/.../Dapper.dll
これでできたわ
お前らまじで使えねえなー
633:デフォルトの名無しさん
18/03/26 07:20:39.22 90OCo3hj.net
すみません。。
634:デフォルトの名無しさん
18/03/28 21:08:11.49 rexEOFUm.net
とあるフォルダ配下にあるテキストファイルだけ抽出して配列に格納
別のフォルダ配下にあるテキストファイルだけ抽出して配列に格納し配列同士を比較して同じファイルのみを抜き出してCompare-Objectで比較したいんですけどどうやったらできますか?
635:デフォルトの名無しさん
18/03/28 22:43:30.34 WBaBvJPO.net
>>607
$a = ls "フォルダ1" *.txt
$b = ls "フォルダ2" *.txt
$a + $b | group name | where count -eq 2 | foreach { $_.name; compare (gc $_.group[0] .fullname) (gc $_.group[1].fullname) | ft }
636:デフォルトの名無しさん
18/03/29 01:53:06.95 0KWZ/AkQ.net
>>608
>gc $_.group[0] .fullname
.fullname の前に、半角空白が入っているから、エラーになる
637:デフォルトの名無しさん
18/03/29 04:02:59.38 63+/4se6.net
>>608
似たようなことよくやるが、やっぱ癖が出るね
自分なら最初こうやるかな
@(
Get-ChildItem "フォルダ1" *.txt
Get-ChildItem "フォルダ2" *.txt
)|
変数あまり使いたくないし、lsは動作がUNIXとは違うから紛らわしくて
638:デフォルトの名無しさん
18/03/29 07:16:54.73 V1TivHhi.net
>>609
ありゃconemuだと折返し部分に勝手にスペース入っちゃうんだな
>>610
そのへんは好みだとしてもそれ見て気づいたけどファイルが一つしかなくて$aが配列じゃない場合 $a + $b だとエラーになるね
@($a; $b) とすべきだったか
639:デフォルトの名無しさん
18/03/29 07:57:32.30 0KWZ/AkQ.net
1つか複数かで、オブジェクトの型が違うのか
ややこしい言語やな
640:デフォルトの名無しさん
18/03/29 12:10:52.44 ZJ5ir4HC.net
そういう細かい変な挙動がめんどくさいからC#で書いてAdd-Typeしてるわ
Linqあれば大抵の処理はPowerShellより書きやすいし読みやすい
641:デフォルトの名無しさん
18/03/29 21:42:00.78 QJhSKNI2.net
>>608
ありがとうございます
これやったんですけどcountのところで型エラーになっちゃいました
>>610>>611でもダメみたいです
642:デフォルトの名無しさん
18/03/29 22:03:31.09 AdhamQsX.net
& {
ls foo
ls bar
}
643:デフォルトの名無しさん
18/03/29 22:51:24.43 V1TivHhi.net
>>614
powershellのバージョンは?
古いのはよくわからんけど Group-Object -Property Name とかしたらできるんかね
644:デフォルトの名無しさん
18/03/29 22:57:06.82 V1TivHhi.net
もしpowershell2ならこれなら動くんじゃないかな、試してないけど
@($a; $b) | Group-Object -Property Name | Where-Object { $_.Count -eq 2 } | Foreach-Object { $_.Name; Compare-Object -ReferenceObject $(Get-Content $_.Group[0].Fullname) -DifferenceObject $(Get-Content $_.Group[1].Fullname) | Format-Table }
645:デフォルトの名無しさん
18/03/29 23:14:54.79 cCEUqbyZ.net
>>616
バージョンこんな感じです
> $PSVersionTable
Name Value
---- -----
CLRVersion 2.0.50727.8762
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
646:デフォルトの名無しさん
18/03/29 23:18:05.53 cCEUqbyZ.net
>>617
やると↓
$a=Get-ChildItem "D:\test\*.*" -include *.txt,*.dat
$b=Get-ChildItem "G:\test\*.*" -include *.txt,*.dat
@($a; $b) | Group-Object -Property Name | Where-Object { $_.Count -eq 2 } | Foreach-Object { $_.Name;
ompare-Object -ReferenceObject $(Get-Content $_.Group[0].Fullname) -DifferenceObject $(Get-Content $_.Group[1].Fullname
| Format-Table }
b.txt
Compare-Object : 引数が null であるため、パラメーター 'ReferenceObject' にバインドできません。
発生場所 行:1 文字:134
+ @($a; $b) | Group-Object -Property Name | Where-Object { $_.Count -eq 2 } | Foreach-Object { $_.Name; Compare-Object
-ReferenceObject <<<< $(Get-Content $_.Group[0].Fullname) -DifferenceObject $(Get-Content $_.Group[1].Fullname) | Form
at-Table }
+ CategoryInfo : InvalidData: (:) [Compare-Object]、ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObje
ctCommand
647:デフォルトの名無しさん
18/03/29 23:45:57.68 V1TivHhi.net
それ単に空ファイルだからでしょ
648:デフォルトの名無しさん
18/03/29 23:54:26.21 cCEUqbyZ.net
>>620
空ファイルとの差分も比較したいっす
649:デフォルトの名無しさん
18/03/30 00:15:02.11 8/UdoTgk.net
-ReferenceObject $(if ($_.Group[0].Length -eq 0) {"空ファイル"} else {Get-Content $_.Group[0].Fullname})
とかすればいい-DifferenceObjectも同様に
650:デフォルトの名無しさん
18/03/30 00:55:45.74 1oIUHR4g.net
>>622
おお!なんか求めてるものができました
ありがとうございます
651:デフォルトの名無しさん
18/03/30 12:24:41.58 87KFZNYL.net
PSVersion 2.0 って、古いな
漏れは、Windows10 で、5.1
652:デフォルトの名無しさん
18/03/30 12:46:33.65 MnRWcQoL.net
>>624
> PSVersion 2.0 って、古いな
Windows 7 の標準装備だから会社によっては今でもその縛りがあるところは珍しくない
653:デフォルトの名無しさん
18/03/30 13:31:52.36 CA1T1+Qn.net
むしろwin10なのに5.1は古い
6.01入れちまえ
654:デフォルトの名無しさん
18/03/30 15:57:34.95 BIk3pBCX.net
標準で入ってるから使うんであって
わざわざ入れるなんて許されない
それがPowershellの掟
655:デフォルトの名無しさん
18/03/30 16:03:03.73 GA8gSqY/.net
常時最新版は入れるけど開発は2.0で
656:デフォルトの名無しさん
18/03/30 23:23:41.80 v3STFQKk.net
個人で使う分にはいいんだろうけどね
657:デフォルトの名無しさん
18/03/31 09:12:34.80 9aphfiP0.net
2.0でも問題ないように勉強しつつ、案件が始まったら最新版のインストールを駄目元でお願いする感じ
658:デフォルトの名無しさん
18/03/31 09:41:50.71 PackIPAm.net
いつの間にか6.0.2がリリースされてた
URLリンク(github.com)
659:デフォルトの名無しさん
18/03/31 20:24:07.76 xiXxh7KM.net
ファイルの最後の文字のみ読み込んで
例えば最後の文字が
〇〇てすと
だったら
てすと
に置換して元から"てすと"だったそのままにしたいんだけどどうすればできますか?
ただし最終行が"てすと"じゃなかった場合は"てすと"を追記したいです
個人的にはループ処理で最終行から読み込んで意図した文字列なら置換って事がやれればいいと思ってます
※バージョンは2.0でお願いします!
660:デフォルトの名無しさん
18/03/31 23:42:23.39 ZBdPbw02.net
Ruby で作った
text = File.read ARGV[0] # 引数はファイル名
ary = []
# 文字列を1行ずつ、配列に入れる
text.each_line{ |line| ary << line }
p ary
# 戻り値は、置換が行われたときはレシーバ自身、置換されなかったときはnil
if ary[-1].sub!(/〇〇てすと$/, 'てすと')
# 処理なし。レシーバ自身を変更する
elsif /てすと$/ !~ ary[-1] # てすと で終わらない
ary[-1] += 'てすと'
else
return
end
p ary[-1]
File.write(ARGV[0], ary.join)
661:デフォルトの名無しさん
18/03/31 23:55:40.86 jgzyYqDp.net
>>633
ここPowershellスレなんだが…
662:デフォルトの名無しさん
18/04/01 00:05:46.07 QUrQa6Zt.net
>632をなんとなく作ってみたんですけど、
最後に出力された文字列だけを置換しての部分がうまくいかない
置換自体は出来るんだけどその部分だけ文字列に書き込む方法が分からん。。。
(Get-Content D:\test\a.txt)[(Get-Content D:\test\a.txt).length..0] | Foreach-Object {
if( $_.length ){
if(!($_ -like "*てすと*")){
Add-Content -Path D:\test\a.txt -Value "てすと"
break
}
$_ -replace ".*てすと.*", "てすと"
break}
}
663:633
18/04/01 00:36:26.53 ECJY99tL.net
>その部分だけ、文字列に書き込む方法が分からん
Ruby でも、ファイルを読み書き両用で開くと、
現在のシーク位置を、あれこれ移動しないといけないから、非常にややこしい。
シーク位置を変数に入れておいて、あれこれ考えるのは、ややこしい
だから、テキスト全体を改行区切りの配列に入れて、最後の行だけを変更してから、
全部を書き込む方が簡単
633 では、そうしている
664:デフォルトの名無しさん
18/04/01 01:17:13.74 XTr+hbom.net
趣旨に合っているかな?
$list=Get-Content sample.txt
$text="てすと"
foreach($line in $list){
if([string]::IsNullOrEmpty($line)){$line=$text}
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
else{ $newline=$line }
$newline
}
665:637
18/04/01 01:18:30.22 XTr+hbom.net
最後の行についてわすれてた
666:637
18/04/01 01:28:26.15 XTr+hbom.net
再度
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
if([string]::IsNullOrEmpty($line)){$line=$text}
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
else{ $newline=$line }
$newline
}
if($str -ne $text){$text}
667:デフォルトの名無しさん
18/04/01 01:34:17.86 VsRAmkXY.net
ぱわーしぇる風にパイプかつメモリ最小で作ってほしーなんつって
668:デフォルトの名無しさん
18/04/01 01:37:20.38 VsRAmkXY.net
つーかバッチファイルスレで似たような質問してたアホだなこいつ
669:637
18/04/01 02:13:27.25 XTr+hbom.net
パイプよりこのほうがずっと高速なもんで
670:デフォルトの名無しさん
18/04/01 02:32:32.46 QUrQa6Zt.net
>>639
いいんだけどこれだと空白行全部"てすと"になっちゃてね?
671:639
18/04/01 02:44:04.47 XTr+hbom.net
そうしてる。
空白行は空白のままでよかったんだ
じゃIFのところだけ書き換え
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
if(-NOT [string]::IsNullOrEmpty($line)){
$str=$line.Substring($line.length-3)}
if($str -eq $text){ $newline=$str}
else{ $newline=$line }
$newline
}
if($str -ne $text){$text}
672:デフォルトの名無しさん
18/04/01 02:46:44.02 XTr+hbom.net
考えたらこれだと文字数が3文字未満だとエラーになるな
ねむいが・・書き換えてみるかな
673:639
18/04/01 02:54:07.64 XTr+hbom.net
今度はどうだろう
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
$newline=$line
if($line.length -gt 2){
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
}
$newline
}
if($str -ne $text){$text}
674:デフォルトの名無しさん
18/04/01 03:12:47.24 QUrQa6Zt.net
>>646
最終行だけてすとじゃなくてその上にてすとの文字列が有るとそのあと全部てすとになっちゃうね
675:デフォルトの名無しさん
18/04/01 03:38:49.54 IR/E13YL.net
こんなもんかね
psv2.0に配列のcountあったっけか
$file = "test.txt"
$text = "てすと"
,@(Get-Content $file)|%{
foreach($i in 0..($_.count-1)){
if($i -eq ($_.count-1)){
if($_[$i] -like "*$text"){
$text
}else{
$_[$i];$text
}
}else{
$_[$i]
}
}
}|Out-File $file
676:デフォルトの名無しさん
18/04/01 07:43:52.97 dufOVYHg.net
>>641
あっちは、「最終行」じゃなくて「空行を除く最終行」だったからちょっと面倒だ
677:639
18/04/01 07:45:20.17 UUJ9t7Bj.net
>>647
なんと、寝ぼけてやってちゃだめだな。
あとで見直すわ
678:デフォルトの名無しさん
18/04/01 08:53:40.41 P1fWuhY2.net
PowerShellコード可読性低すぎワロタwww時代はC#ですわ
Add-Type -TypeDefinition @"
using System.IO;
using System.Text.RegularExpressions;
public class Hoge {
private static readonly Regex r = new Regex(@"[^\n]*てすと$", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.CultureInvariant);
public static void ReplaceLastTest(FileInfo file) {
string s = File.ReadAllText(file.FullName);
s = r.Replace(s.TrimEnd(), string.Empty) + "てすと";
File.WriteAllText(file.FullName, s);
}
}
"@
[Hoge]::ReplaceLastTest((Get-ChildItem ./test.txt))
679:デフォルトの名無しさん
18/04/01 10:49:38.76 IR/E13YL.net
>>651
PSなら書く必要もないもの多過ぎ
ついでに普通の環境じゃ編集の補助まったくないだろ
680:デフォルトの名無しさん
18/04/01 11:08:43.29 P1fWuhY2.net
>>648や>>646のほうがよっぽど無駄なコード書いてるじゃんwww
ループインデックスとか久々に見たわwwwwベタループも条件分岐もくっそ読みにくいしwww
編集の補助ってインテリセンスの事ならこの程度のコードに必要ないだろw
つかpowershellerならVSCodeとっくに入っとるやろwww
C#もサポートされとるやんけwwww
681:デフォルトの名無しさん
18/04/01 11:37:50.84 QUrQa6Zt.net
>>648
これだと"てすと"の後に無駄な空行があるとその無駄な空行の後に"てすと"�
682:チて出力されちゃうね
683:デフォルトの名無しさん
18/04/01 11:44:34.33 XEaAmQBZ.net
エディタすら選べない様な残念な環境で頑張るのがPSですから
ってのは置いといてadd-typeで強引に解決するのは割と好き
684:デフォルトの名無しさん
18/04/01 11:56:29.10 IR/E13YL.net
>>654
最初の条件では空行を無視するとか書いてないけど
685:デフォルトの名無しさん
18/04/01 12:07:38.92 IR/E13YL.net
>>653
C#の別ファイル書いてadd-typeの中にコピペすんの?
それメンテナンス性最悪だよな
686:デフォルトの名無しさん
18/04/01 12:23:46.08 P1fWuhY2.net
つうかこれでええやんwwww
誰だよC#とか言ったアホwwwww
function Update-LastTest ([IO.FileInfo]$file) {
$s = Get-Content $file | Out-String
$s = ($s.TrimEnd() -replace '[^\n]*てすと$', '') + 'てすと'
$s | Out-File $file
}
Update-LastTest (Get-ChildItem ./test.txt)
687:639
18/04/01 12:23:50.08 y3W5ZkrO.net
何言われようと、めげずに
どうでしゃろ
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
$newline=$line
if($line.length -gt 2){
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
else{$newline=$line}
}
$newline
}
if($str -ne $text){$text}
688:639
18/04/01 12:29:46.66 y3W5ZkrO.net
>>658
てすとしてないけど、すばらしそう
689:639
18/04/01 12:38:23.68 y3W5ZkrO.net
>>658
あれ?
要求されてる仕様の理解が私とちがうな
どっちだろう?
690:639
18/04/01 12:42:58.03 y3W5ZkrO.net
ABCDてすと => てすと
XYX123 => XYX123
てすとのてすと => てすと
てすとのabc => てすとのabc
みたいな要望じゃないかな?
691:デフォルトの名無しさん
18/04/01 12:54:30.97 GlQ4Mmqm.net
2回実行したら全部の行がてすとになって区別付かなくなるけどそれでいい?
692:デフォルトの名無しさん
18/04/01 12:56:34.68 QUrQa6Zt.net
>>662
>>632の質問投げた本人ですけど最後はてすとでいいです
つまり
ABCDてすと => てすと
XYX123 => XYX123
てすとのてすと => てすと
てすとのabc => てすと
空行 => なにもしない
693:デフォルトの名無しさん
18/04/01 12:59:57.46 QUrQa6Zt.net
>>664に追記すると最後"だけ"を置換したいんです
途中に"〇〇てすと〇〇"
みたいな感じでてすとってワードが含まれていてもそれは無視したいんです
694:639
18/04/01 13:00:29.09 y3W5ZkrO.net
確認ですが
てすとのabc => てすと
これあってます?
これだと単に文字列 "てすと" が含まれていたら "てすと" と
出力するように思うんですが。
695:デフォルトの名無しさん
18/04/01 13:02:37.55 QUrQa6Zt.net
>>666
はいそれで良いです
696:デフォルトの名無しさん
18/04/01 13:03:50.82 XEaAmQBZ.net
ごめん分かんなくなってきた
697:デフォルトの名無しさん
18/04/01 13:13:00.52 QUrQa6Zt.net
>>632
ごめんこれ質問が悪かったです
最終行が"てすと"ならじゃなくて最後の空行じゃ無い文字列に"てすと"が含まれていなかったら"てすと"を追記したい
が正しい
698:デフォルトの名無しさん
18/04/01 13:15:43.22 GlQ4Mmqm.net
だめだこりゃ
699:639
18/04/01 13:29:09.09 y3W5ZkrO.net
これはどうでしょう。
行に"てすと"という文字列が含まれていたら"てすと"だけを出力
含まれていなければ、そのまま出力
最後の行に"てすと"が含まれていなければ、その行はその出力し
つぎの行に"てすと"を追加
結果は$newlistに出力
function newfile{
param($text="てすと")
process{
if($_.ToString().Contains($text)){$newline=$text}
else{$newline=$_}
$newline
}
end{ if( -NOT $newline.Contains($text)){$text} }
}
$list=Get-Content ファイル指定
$newlist=$list|newfile
700:639
18/04/01 13:30:56.72 y3W5ZkrO.net
さいごに空の行もあり得るわけだ。<=これは入れていない
とするとそのはんていを1行追加するようだな。
701:デフォルトの名無しさん
18/04/01 13:54:17.68 Huwl0iS3.net
これだから日本語の仕様書は役に立たないって言われるんだな
テストケースを10個ぐらい書いてくれないと伝わらないパターンだ
コーディングはそれから始めても遅くない
702:639
18/04/01 14:11:02.57 y3W5ZkrO.net
最後の空白行orNull行の判定もいれてみたんだけど
function newfile{
param($text="てすと")
process{
if($_.ToString().Contains($text)){$newline=$text}
else{$newline=$_}
$newline
}
#end{ if( -NOT $newline.Contains($text)){$text} }
end{ if(-NOT($newline.Contains($text) -or [string]::IsNullOrWhiteSpace($newline)) ){$text}}
}
$list=Get-Content 入力ファイル
$newlist=$list|newfile
703:639
18/04/01 14:12:35.94 y3W5ZkrO.net
あってるかな?
あとは >>658 の方が綺麗なのを書いてくれることを期待。
704:デフォルトの名無しさん
18/04/01 14:20:36.23
705: ID:IR/E13YL.net
706:639
18/04/01 14:51:08.96 y3W5ZkrO.net
>>676
"てすと"という文字列を含む行は、"てすと"という文字列に置き換える
そうですよ。
707:デフォルトの名無しさん
18/04/01 15:08:33.93 IR/E13YL.net
>>677
>>665と矛盾してると思うが
"最後だけを置き換えたい" で行の最後か文章の最後か分からんが、
てすとのabc => てすと
がOKなら行の最後じゃない、なら文章の最後だけって事じゃね?
なんか論理パズルやってる気になってきたなw
708:デフォルトの名無しさん
18/04/01 15:17:38.93 D0kqpvo1.net
>>676
最後に出てくる"てすと"以外は"てすと"があっても置き変えたくないです
あくまで最後だけ置き換えてください
>>677
置き換えないでそのままでいいです
709:デフォルトの名無しさん
18/04/01 15:19:24.07 D0kqpvo1.net
>>677
あー間違えた最後に出てくる"てすと"以外は"そのまま"でいいです
710:デフォルトの名無しさん
18/04/01 15:23:08.10 IR/E13YL.net
>>679
あ、来た
それと最後の空行はどうなの?
@"
aaa
bbbてすと
"@
が元ソースだとして
@"
aaa
てすと
"@
@"
aaa
bbbてすと
てすと
"@
@"
aaa
てすと
"@
の3パターンあるが、どれ?
711:デフォルトの名無しさん
18/04/01 15:31:18.80 D0kqpvo1.net
>>681
一番最初がいいですね
↓
@"
aaa
てすと
"@
712:デフォルトの名無しさん
18/04/01 15:39:31.01 IR/E13YL.net
>>682
OK,やっと仕様が決まったね
めでたい
713:639
18/04/01 15:39:47.10 y3W5ZkrO.net
>>679
最後に出てくる"てすと"という意味ですが、したのようなとき
"てすと"を含む最後の行は5行目という意味ですか?
1行目 abmてすとxyz
2行目 1239xxxx
3行目 yyyyyてすと
4行目 xxxxyyてすとyy
5行目 てすとuuuu <== "てすと"を含む最後の行
6行目 zzyyvv
7行目 練習123