- 1 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 18:36:12.07 ID:LaQ04ZoE.net]
- 前スレ
PowerShell -Part 5 https://mevius.5ch.net/test/read.cgi/tech/1615994992/ 次スレは>>980が立ててね!!
- 231 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 20:50:36 ID:6g+y36jy.net]
- JScript.NETも入っているぞー
- 232 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 21:04:54.33 ID:k1oDZsjR.net]
- プログラミングにおける認知度の低さは調べにくいし致命的
- 233 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 23:12:56 ID:41Kz9otF.net]
- プログラミング言語の人気ランキング、順位変動は縮小傾向にある――RedMonkが調査
https://atmarkit.itmedia.co.jp/ait/articles/2204/13/news040.html このランキングだとPowerShellは17位だぞ Rustに勝ってる!
- 234 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 23:31:17.12 ID:3ZMsARLO.net]
- PowerShellはランキングとか関係ないでしょ
PS5止まりで.NET4.8と心中する運命しかない、完全に袋小路の言語だよ
- 235 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 00:54:32.11 ID:Zcudz7ky.net]
- Windowsと共に来たりWindowsと共に滅ぶ
- 236 名前:べし []
- [ここ壊れてます]
- 237 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 12:02:03 ID:nVJ4wCm0.net]
- >>232
おれがこれまで作ったソフトのほとんどが共に滅ぶな かなりの割合の開発者が一緒に滅ぶんじゃないだろうか
- 238 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 12:30:34.16 ID:4vTOoh05.net]
- >>231
それってよく聞くけどなんの問題があるの? Powershellなんてそもそもbetter MS-DOSであり better WSHでしかないんだからなんの問題もないでしょ なんか過剰な期待をしてた人がいるの?
- 239 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 12:58:53.88 ID:NFUA2B25.net]
- そもそもすでにオープンソースなんだし衰退することはあるだろうけど袋小路とか意味わからん
- 240 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 15:51:46.54 ID:9cJTCJfn.net]
- Powershellはオープンソースとして元気にやってるよ
7.3でコミュニティ主体の機能改善になりそうなのはこの辺とか? scriptblockの引数の数でオーバーロード解決できるようにしたいというもの https://github.com/PowerShell/PowerShell/issues/16940
- 241 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 15:57:59.43 ID:9cJTCJfn.net]
- あとはc言語とかrustのようなネイティブアプリからPowershellをホスト出来るようになっていたりする
https://github.com/awakecoding/pwsh-native-host
- 242 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 16:17:49.58 ID:GtnKHoFP.net]
- 元気もなにも開発してるのMSの社員だし、6以降は事実上Azure専用だよ
- 243 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 16:24:09 ID:nVJ4wCm0.net]
- >>237
コードちら見したけど普通にPSプロセス呼んでプロセス間通信した方がよくないってなった
- 244 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 18:36:59.47 ID:9cJTCJfn.net]
- >>239
新たにプロセスを立ち上げることでコマンドライン等が生成されるのを回避したいらしい
- 245 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:00:35.45 ID:9X1k5UGW.net]
- Powershell使えたら小5と付き合えますか?
- 246 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:43:18.15 ID:KtzHzoax.net]
- きみが小5か小6なら付き合えるかもしれないね!
- 247 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 02:16:18 ID:/A3pqg11.net]
- 20年位前の30代前半の頃、小6と付き合ってた
powershellのお陰だと思うよたぶん
- 248 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 03:15:46 ID:+OyHOy+D.net]
- >>243
そのころpowershellは未だ無いだろ おれの場合は30年位前に小6と付き合っていると噂されたが事実はそのようなことはなく 当時powershellがあれば付き合えたのは確実だったと思う
- 249 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 15:56:01.36 ID:6s2N7jdI.net]
- ワイも小学生低学年のころ、かけっこで1位だった
PowerShellのおかげだろうなあ
- 250 名前:デフォルトの名無しさん [2022/04/29(金) 11:16:42.60 ID:8kZAWy9o.net]
- htmlの特定のID(例:<div id="XXX">)の中身を取得するにはどうすればいいでしょうか?
htmlのソース自体は$sourceに格納しています。
- 251 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:18:43.54 ID:RNDpr+pH.net]
- 文字コードを文字に変換するコマンドはありますでしょうか。
PS > change-moji -code SJIS 0x41 A PS > こういうコマンドです。
- 252 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:25:23.63 ID:X7f5QGPR.net]
- [char]0x41
- 253 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 18:39:45.29 ID:RNDpr+pH.net]
- >>248
ありがとうございます。
- 254 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:23:53.91 ID:X7f5QGPR.net]
- >>246
$html = New-Object -ComObject "HTMLFile" $html.IHTMLDocument2_write($source) $html.getElementsByTagName("div") | ?{ $_.ID -like "特定のID" } みたいにCOM使ってDOMで操作するか、正規表現で自力で解析するかしか思いつかない powershellの定番の処理方法があるなら俺が聞きたい
- 255 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:08:01.29 ID:TTQ8Rhtz.net]
- Ruby なら、Nokogiri, CSS Selector で、
require 'nokogiri' doc = Nokogiri::HTML(<<EOT) <div>あ</div> <div id="xyz">い</div> EOT element = doc.at_css( '#xyz' ) puts element.content #=> い
- 256 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:45:41 ID:PTNoCeDZ.net]
- getElementsByTagName 使うなら getElementById でいいんじゃない
- 257 名前:デフォルトの名無しさん [2022/04/30(土) 13:04:46.37 ID:9f5J4pIa.net]
- Windows11は、結構Powershellが主役の位置に躍り出てきて、コマンドプロンプトの影が薄くなってる。
- 258 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 15:40:15.85 ID:6Xk9b1VA.net]
- >>252
DOM操作にお詳しいなら補足してやって 俺は普段webページ解析なんてしないから適当に書いただけなので
- 259 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 23:17:02.29 ID:/67qPyiA.net]
- xml形式ならselect-xmlというコマンドレットがあるんだけどね
- 260 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 07:07:03 ID:Rd1MW222.net]
- Invoke-WebRequest でパースできるんだから Web からだけじゃなく html を格納した変数とかもソースにできればいいのにね
- 261 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 22:31:03.32 ID:bsI6eYYg.net]
- COMのやつってIEのパーサなんだよね
くやしいけどこの辺を高度にやりたいならスクレイピングに定評のあるスクリプトでやった方がいいと思う
- 262 名前:デフォルトの名無しさん [2022/05/02(月) 03:17:08 ID:GCJ++Ydj.net]
- >>250
ありがとうございます! できました。
- 263 名前:デフォルトの名無しさん [2022/05/07(土) 22:39:06.01 ID:A4G1I3Hd.net]
- $idContents = $html.getElementById($idName).innerHTML
でinnerHTMLを取得して、$idContentsに格納してある「src」の値(src="https://〜〜.jpg)はどうやって取得するのでしょうか?
- 264 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 23:18:18.03 ID:aihC1Ap7.net]
- innerHTMLは使わない
getAttribute("src")を使う
- 265 名前:デフォルトの名無しさん [2022/05/08(日) 11:03:41.82 ID:KUDJnBX7.net]
- $idContents = $html.getElementById($idName).getAttribute("src")
で試したのですが、$idContentsの中身は何もない状態です。 試しに、$idContents = $html.getElementById($idName)だけで実行すると、 $idContentsの中身に innerHTML : <IMG id=img src="https://〜〜jpg/keystamp=〜〜;></A> はあります。
- 266 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 12:11:23.98 ID:q3KU1av3.net]
- $idNameは'img'なのか?
- 267 名前:デフォルトの名無しさん [2022/05/08(日) 12:17:10.62 ID:KUDJnBX7.net]
- $idNameは'img'ではなく、'kr3'になります。
- 268 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 12:25:56.66 ID:q3KU1av3.net]
- だから取得したいのは、id=imgのIMGタグにあるsrc属性値じゃないのか?
$idNameを'img'にしろよ
- 269 名前:デフォルトの名無しさん [2022/05/08(日) 12:30:38.21 ID:vSiZdN2k.net]
- ID:KUDJnBX7はバカなんだろうね
- 270 名前:デフォルトの名無しさん [2022/05/08(日) 12:47:35.64 ID:KUDJnBX7.net]
- >>264
なるほどです。ありがとうございました。
- 271 名前:デフォルトの名無しさん [2022/05/09(月) 13:37:41.35 ID:Plp0Diry.net]
- 特定のフォルダの中にファイルが10個以上あったらタイムスタンプが一番古いファイルを削除する処理をPowerShellでどう書くかどなたか教えろください。。
スクリプトはタスクスケジューラで日次で走らせるイメージです。
- 272 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 13:54:29.50 ID:7AqNU3U0.net]
- 一番古い一個だけを削除?それとも9個残して削除?
- 273 名前:デフォルトの名無しさん [2022/05/09(月) 14:11:58 ID:I+mG682T.net]
- https://teratail.com/questions/23031
- 274 名前:デフォルトの名無しさん [2022/05/09(月) 16:57:08.12 ID:Plp0Diry.net]
- >>268
一番古い一個だけを削除か、最新の9個を残してそれ以外を削除、の簡単な方でお願いしたいです。
- 275 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 17:37:09.13 ID:7AqNU3U0.net]
- >>270
269の30を9に変更するのが簡単だと思います 一番古い一個だけを消すのは Select-Object -Skip 9 | Select-Object -Last と二回もSelect-Object するのでとても難易度が高いです
- 276 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 22:37:25.90 ID:lywqA2G/.net]
- その質問バッチファイルスレで見たぞ
powershellの回答も貼ってある
- 277 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 00:05:58.23 ID:aI8FHZ+3.net]
- 【.cmd】 バッチファイルスクリプト %14 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1597442426/757-764 漏れが763 に、Ruby で書いた。 これをPower Shell(PS)用に書き直せばよい 764には誰かが、PSで書いている
- 278 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 01:07:57.29 ID:0qiVBd6f.net]
- Multicsだったのか
- 279 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:04:11 ID:gcxSlYEt.net]
- フリーランスエンジニアになってからの年収推移を公開【現在年収1000万】
【実体験】仕事ができない新卒エンジニアでも月収70万フリーランスになれる理由 フリーランスエンジニアは年収900万円までは余裕!現役フリーランスエンジニアが徹底解説 フリーエンジニアの平均年収!未経験が年収1000万円を超える方法とは? 月額150万円以上も可能?ITフリーランスで高単価を獲得できる理由 在宅で年収1000万稼ぐフリーランスエンジニアの稼ぎ方【再現できる】 フリーランスのエンジニアやるなら45歳までに貯金5000万円作れないと死ぬ説
- 280 名前:デフォルトの名無しさん [2022/05/12(木) 17:12:26 ID:QXSbgRzq.net]
- フォルダA内にファイルを1つずつ個別に圧縮した上でフォルダBにそれぞれ出力するPowerShellってどう書けば良きでしょうか。
以下スクリプトを書いてみましたが、これだと1つずつの圧縮はできないようで。。。 //フォルダA内のファイル名(拡張子なし)を取得 $src = Get-ChildItem -Name C:\folderA $file = [System.IO.Path]::GetFileNameWithoutExtension("$src") //ファイル圧縮とフォルダ移動 Compress-Archive -Path C:\folderA\*.* -DestinationPath C:\folderB\$file
- 281 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:00:29.84 ID:J4rOXsT5.net]
- if やらforやらはBASICからやり直せ
- 282 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:08:53.97 ID:3e5cbbRq.net]
- >>276
以下のサンプルみたいにForeach-objectとか使ってCompress-Archiveをファイル毎に実行すればいい $SrcPath = "C:\folderA\*.*" $DstPath = "C:\folderB\" Get-ChildItem $SrcPath| ForEach-Object {$DstFile = Join-Path $DstPath ($_.Name -replace '^(.+)\..+$','$1');$_}| ForEach-Object {Compress-Archive -LiteralPath $_.FullName -DestinationPath $DstFile}
- 283 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:27:26.96 ID:ZUpAZ75N.net]
- PowerShellで複数アイテムに同じ処理をする場合は、アイテムをリストアップした出力をパイプでForEach-Objectに渡して
ForEach-Object の中で、一個ずつ($_ という変数で参照できる)処理するのが定番と思うの。 get-childitem | foreach-object { write-output $_.fullname $_.name } とりあえず、これをやってみると感じが分かると思うの。
- 284 名前:デフォルトの名無しさん [2022/05/12(木) 20:27:03 ID:QXSbgRzq.net]
- >>278
ありがとうございます。 ただ、フォルダAにファイル2つ置いて試してみたのですが、いずれも圧縮・移動されませんでした。。。 再度ご確認いただけますでしょか??
- 285 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 22:15:13.98 ID:3P57KS6y.net]
- 何だその言い方
お前周りから嫌われてると思うぞ
- 286 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 23:17:43.20 ID:TAn4nFm7.net]
- ここは労働の場じゃないからな
金のやり取りを伴ってる仕事とは違うのになんでお客様気分丸出しでいられるんだよ
- 287 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 23:26:53.76 ID:C4APGYH2.net]
- 誰かが持ち上げてくれるからじゃないの
- 288 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 23:56:30.38 ID:z9H8Cfuc.net]
- >>280
Compress-Archive の使い方(パラメーターの指定方法)は分かってますか? ファイル一個だけで試してみましたか? それを調べてから Get-ChildItem -path "C:\folderA" -File | ForEach-Object { Compress-Archive -LiteralPath $_.FullName -DestinationPath ("C:\folderB\" + $_.Name + ".zip") } これの意味を考えてみてください。
- 289 名前:276 [2022/05/13(金) 00:26:01.86 ID:/s7ZcOSV.net]
- 解決しました!ありがとうございます!
- 290 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 03:41:22.40 ID:tKRLPzFb.net]
- Ruby で、7-zip なら、
a フォルダ以下を再帰的に圧縮して、a.zip アーカイブにする 圧縮 7z a (アーカイブ名) (圧縮したいフォルダ) 7z a sample.zip aaa_folder archive = "C:/Users/Owner/Documents/test/a.zip" src_dir = "C:/Users/Owner/Documents/test/a" # Program Files には半角空白があるので、"〜" で囲む puts %x("C:/Program Files/7-Zip/7z.exe" a #{ archive } #{ src_dir }) # 圧縮
- 291 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 15:56:54.19 ID:LpRC3aDE.net]
- gciとかの-forceパラメータって必須だろうに
デフォでオフなのがなんだかな
- 292 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 19:23:39.98 ID:Sc/EfT9l.net]
- わざわざ隠し属性で隠してるのにディフォで表示しろとか頭おかしい
- 293 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 22:56:09.66 ID:uctr9r2r.net]
- foreach中に最後の要素でないって判定どこかでできないですか
これができなくてforに書き直すはめになること何回もあるんですけど… Foreach-Objectの場合もあったらお願いします
- 294 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 23:28:29.60 ID:dqCr6D+p.net]
- 原理的に無理だろ...
- 295 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 00:16:48.73 ID:5a0Y4MKv.net]
- 最後の要素でないってどういう目的で知りたいの?
本当に知りたいときもあるけど慣れてない人が書きがちなコードでもあるので気になった カンマ区切りにするために最後ならカンマを付けない分岐を書くとかそういうの
- 296 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 00:17:48.74 ID:hb3+ANgg.net]
- カウンタを用意してforeach対象のコンテナのlengthと都度比較する
これがモダンプログラミング()
- 297 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 00:27:25.14 ID:hb3+ANgg.net]
- >>291
次の処理の前準備を現在の要素も使ってやってて最後だけ不要なとき $i = 0 foreach ($item in $list) { # $itemの処理 # if (++$i -lt $list.length) { # 前準備 } } これなら普通にforのが見やすい
- 298 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 05:45:14.69 ID:NJOQ17Ts.net]
- そういう最後だけ処理が違うってのは同じように処理しといて後から取り除く方が良くね?
二度手間で美しく無いように思えるけれどそれよりも 一々「最後かどうか」の判別に毎回if挿む方がバカらしく感じる
- 299 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 05:57:00.05 ID:0bRjAEIy.net]
- 前準備ってなにさ
- 300 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 06:07:55.24 ID:Wt4JCGPH.net]
- >>291
> カンマ区切りにするために最後ならカンマを付けない分岐を書くとかそういうの そう言うのは最初以外はカンマを頭に付けるようにしたほうがいいかと
- 301 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 08:23:02.72 ID:m7B1u9M5.net]
- カンマ区切りしたいだけなら $list -join ',' で十分だな
- 302 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 09:47:46.73 ID:R8RMhLQi.net]
- そう、joinで済むんだよね
慣れてない人はフラグや分岐で処理しがち だからまずは具体的にどんな処理をしようとしてるのか聞きたかったんだ
- 303 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 10:32:45.51 ID:kcOGS6gO.net]
- カンマの話は>>291が勝手に言ってるだけなのにjoinですむとかあたおかかよw
- 304 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:19:53.60 ID:0bRjAEIy.net]
- いや分からないから聞いてるのよ
- 305 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:23:04.66 ID:etUAy71A.net]
- ID変わってるけど291=298な
判定する必要のない例としてカンマ区切りを挙げて、だから具体的な例を教えてくれと書いたのに、カンマ区切りのうまいやり方をレクチャーしてくれる人が出てきたから説明しただけよ
- 306 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 12:41:49.36 ID:HwJxcgzF.net]
- >>294
後から取り消せないこともあるだろう 例えばライトワンスメディアに書くとか
- 307 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 13:05:47 ID:Ws3jUYfQ.net]
- 具体的な処理が分からんとどうしようもないだろ
準備じゃなくて、準備のための情報の保存にすることならできるんじゃないか #itemの準備 #itemの処理 #次のitemの準備のための設定 として実際の準備は次のループの先頭で行うようにする
- 308 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 13:37:46 ID:hb3+ANgg.net]
- はあ…やっぱり論点ズラしで無いことを正当化する流れになったかw
無いなら無いでいいよ
- 309 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 13:39:58 ID:HwJxcgzF.net]
- >>289
最初、最後、何番目などには別処理をする場合は、foreachは向いてないというか もともと for があって、何番目かを気にせず全部の要素に同じ処理をすることが多いので、そういう場合用に foreach があると思ってます
- 310 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 14:20:17 ID:lDPvxjtF.net]
- >>304
無いことを正当化してる書き込みは見当たらないけどどのレスのこと?
- 311 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 15:09:44.46 ID:Y4vxLItZ.net]
- だからforeachでは原理的に無理
foreach($item in $items){ ... } はざっくり $e = $items.GetEnumerator(); while ($e.MoveNext()) { $item = $e.Current; ... } みたいなコードになるから$e.MoveNext()を呼ぶまで最後かどうかはわからない 極端な話、乱数で最後にするかを決めるような実装されたらどうしようもない
- 312 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 16:18:41 ID:YaxyXfsS.net]
- 最後の要素って$list[-1]でいいんじゃないの?
if($item -ne $list[-1]){前処理}でいけると思うけど
- 313 名前:デフォルトの名無しさん [2022/05/14(土) 18:19:29.97 ID:POYL5zWo.net]
- <section id="image-test">
<a href="https://www~BBB.jpg"> <img src = "https://www~AAA.jpg"> </a> </section> があって、AAAとBBBのURLをそれぞれ変数にかくのうしたいのですが、これであってます? $AAA = $web_source_code.getElementById("image-test").getAttribute("src") $BBB = $web_source_code.getElementById("image-test").getAttribute("href")
- 314 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 18:55:56.30 ID:QtW6yb+i.net]
- 合ってないよ
section要素にはsrcもhrefもないんだから取れない 子や孫の要素からイイ感じで取ってきてくれるような期待をしてるんだろうけど、内側がどんな構造でいくつのimg要素とかがあるのかわかんないんだから、そんなのでイイ感じに取られる曖昧な挙動は逆に困る 要素をid指定で取ったあと.ChildNodesで自分で辿ったりする必要がある querySelectorが使えれば楽なんだけどね 何度も似たような質問を繰り返すよりもまずHTML DOMの基礎を多少でも勉強しないとずっとハマるだけだし応用もできないよ
- 315 名前:デフォルトの名無しさん [2022/05/14(土) 19:43:46.46 ID:POYL5zWo.net]
- ありがとうございます。HTML DOMを勉強してみます。
- 316 名前:デフォルトの名無しさん [2022/05/17(火) 11:55:50.17 ID:w1KKtOUX.net]
- PowerShellである処理について、変数の値だけ変えてそれぞれに同じ処理を実行したい場合、以下のように変数の値の数だけ実処理を複数段書けば実行できました。
ただ、これだとスマートではないと思いますので、ループ処理?のような形で最初に全変数を定義する等して、実際の処理自体は1か所だけにしたいのですが、どなたか書き方教えろください。。 ------------ $変数a1 = 1-a $変数b1 = 1-
- 317 名前:b
~~処理~~ ------------ $変数a2 = 2-a $変数b2 = 2-b ~~処理~~ ------------ $変数a3 = 3-a $変数b3 = 3-b ~~処理~~ ------------ [] - [ここ壊れてます]
- 318 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 15:36:54.01 ID:VMMgADOG.net]
- コンテナでググれ
- 319 名前:デフォルトの名無しさん [2022/05/17(火) 19:17:50 ID:ZA1GChKV.net]
- ググれとか言う奴はスレから出ていけ
- 320 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 20:03:10 ID:xbjGOtM1.net]
- 配列でループ処理するといいぞなもし
https://docs.microsoft.com/ja-jp/powershell/scripting/learn/deep-dives/everything-about-arrays?view=powershell-7.2
- 321 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 03:24:17.13 ID:CLYU5EG2.net]
- こんな初歩の初心者にpowershellの配列は難しい気がする
別の規格がちゃんとしてる言語を1つでも履修して出直してもらいたいな プロの俺でもフィルタ関連とか関数から返した場合とかでしょっちゅう間違えるんで…
- 322 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 09:11:28.21 ID:b9KxG2vQ.net]
- ベテランでも諳んじて一発正解するのは難しいかったりするけど、シェルなんだから試行錯誤で構造化プログラミングの感覚を摑めばいいと思うよ
固定長配列でハコとして使う分には落とし穴もそうないのでは パイプは使うかもしれないし使わないかもしれない せっかくの気付きなんだから試してみるチャンス
- 323 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 10:26:21.69 ID:Q05gEBgM.net]
- まずforeach文で作ってみればいい、そんな難しくはない
foreach-objectとかのコマンドレットにしたい、てのは次の段階にしてみよう
- 324 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 01:52:14.72 ID:r92G1leA.net]
- .NETのジェネリックなコレクションを使う癖を付ければpsの変な仕様に振り回されないで済むかも
- 325 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 10:22:09.77 ID:hhrIPFsF.net]
- そもそも配列やコレクションをループで回したりするのはPowerShell的な発想ではない
積極的にパイプを使うんだよ それに馴染めないならもうインラインでC#書いたほうがいい
- 326 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 11:54:46.82 ID:AWcD8iuw.net]
- 初学者がパイプの意味を理解するのはハードル高いと思う
コードが長くてもいいから自分のやりたいことをロジックにして組み立てる それも出来ないうちからパイプでかくなんてさらに混乱するだけ コマンドレットを見てすぐ処理を想像できるような慣れてる人ならいいと思うけどね
- 327 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 12:11:52.45 ID:vDWzHeJO.net]
- >>320
ドトネトのコレクションはそのままパイプに突っ込めるでしょ powershellのビルトイン配列(System.Array)をMS公開文書通りに使ってるとハマりやすいという話
- 328 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 12:19:41.05 ID:HGJ493WX.net]
- 初心者ですでにスクリプトも書いていてリファクタの相談なのに、パイプ使わないならC#でって…
原理主義なのか話を聞かない人なのか柔軟性が動脈硬化起こしてる人なのか
- 329 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 14:36:52.46 ID:mIjloFOo.net]
- パイプに拒絶反応してる奴らがわらわらとw
- 330 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 15:37:07.78 ID:i7u7qPJB.net]
- PowerShellのパイプはクセあるからなあ
- 331 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 15:57:51.90 ID:K1O9Nfx2.net]
- だが、そこが良い
|

|