前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/
次スレは>>980が立ててね!!
PowerShell -Part 5
■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
2021/03/18(木) 01:54:43.20ID:KHyuuwNF
echo 保守しとくけど多分朝には落ちてる
2021/03/18(木) 02:11:36.48ID:LDDTgdRP
>>1
おつ
おつ
2021/03/18(木) 02:41:58.78ID:k7pgRAR8
パワー
2021/03/18(木) 12:05:10.24ID:t06qOp3P
パイプやリダイレクトが微妙
結局 cmd /C を使うはめに
結局 cmd /C を使うはめに
2021/03/18(木) 14:38:25.42ID:CPg6C46D
Call native operator #13068
https://github.com/PowerShell/PowerShell/issues/13068
https://github.com/PowerShell/PowerShell/issues/13068
2021/03/18(木) 15:14:55.38ID:6Ys2lBRM
未経験新卒で入社してからLinux関連の開発しかしてこなかった俺がふとpowershellの勉強始めてるんだが、なかなか慣れんわ
まあ出来ることから地道に使い込んでいくしかないか…
まあ出来ることから地道に使い込んでいくしかないか…
2021/03/18(木) 16:29:17.47ID:7c+GTWi3
あるオブジェクトのプロパティ(数や名前は不明)を全て取得して
別に新規作成するPScustomObjectのプロパティとして設定したいのですか
どのようにすれば実現出来ますでしょうか?
別に新規作成するPScustomObjectのプロパティとして設定したいのですか
どのようにすれば実現出来ますでしょうか?
2021/03/18(木) 16:30:46.69ID:7c+GTWi3
補足です。
あるオブジェクトのプロパティの値は必要ありません。
新しいPScustomObjectのプロパティの値は別のものをセットします。
あるオブジェクトのプロパティの値は必要ありません。
新しいPScustomObjectのプロパティの値は別のものをセットします。
2021/03/18(木) 17:04:09.34ID:5geAwNmp
get-memberでプロパティでフィルタしてadd-memberかな?
2021/03/18(木) 17:40:50.17ID:Zj9YO3RT
アナル。
後からオブジェクト追加ですね。
初心者なのでPScustomObject作成時にプロパティ指定しか頭になかったです。
サンクソ。
後からオブジェクト追加ですね。
初心者なのでPScustomObject作成時にプロパティ指定しか頭になかったです。
サンクソ。
2021/03/19(金) 04:00:45.99ID:RMQx/osX
>>7
linuxだけど俺も周りもPowerShellしか使ってねえわ
linuxだけど俺も周りもPowerShellしか使ってねえわ
2021/03/19(金) 04:02:37.40ID:RMQx/osX
まあ部署で統一図ったってだけだけどな
linuxのログインシェルにPowerShellはまだまだマイノリティ
linuxのログインシェルにPowerShellはまだまだマイノリティ
2021/03/19(金) 09:44:27.09ID:ubz8QMhD
Select-Objectでプロパティを取り出す際に@{name=〜;expession={〜}}
って指定方法があると思いますが、
@data=@{"key1"=@(1,2);"key2"=@(3,4)}
という配列を値に持つハッシュ@dataから
1,3;2,4
と言う風にデータを取り出したいのですが
(各配列の要素0から順番に)
@data|Select-Object @{name="out";expession={ ($_.key1 + "," + $_.key2) -join ";"}}
だと
1;2;,;3;4
になってしまいます。
1,3;2,4
と取り出すにはどうすれば良いでしょうか?
って指定方法があると思いますが、
@data=@{"key1"=@(1,2);"key2"=@(3,4)}
という配列を値に持つハッシュ@dataから
1,3;2,4
と言う風にデータを取り出したいのですが
(各配列の要素0から順番に)
@data|Select-Object @{name="out";expession={ ($_.key1 + "," + $_.key2) -join ";"}}
だと
1;2;,;3;4
になってしまいます。
1,3;2,4
と取り出すにはどうすれば良いでしょうか?
2021/03/19(金) 09:45:14.92ID:ubz8QMhD
訂正
@data は $data の間違いです。
@data は $data の間違いです。
2021/03/19(金) 14:52:27.90ID:z8FPp2cZ
$data|Select-Object @{name="out";expression={ ($_.key1 -join ",") + ";" + ($_.key2 -join ",") }}
配列の加算
https://docs.microsoft.com/ja-jp/powershell/scripting/learn/deep-dives/everything-about-arrays#array-addition
配列の加算
https://docs.microsoft.com/ja-jp/powershell/scripting/learn/deep-dives/everything-about-arrays#array-addition
2021/03/19(金) 17:10:06.64ID:Lmt+5Mde
>>16
う〜ん。これだと
1,2;3,4
と出力されてしまいます。
説明が悪かったです。
配列毎に順番に出力ではなく、
全配列の若い要素から順番に出力です。
配列Aの要素0,配列Bの要素0;
配列Aの要素1,配列Bの要素1;
配列Aの要素2,配列Bの要素2;
・
・
と言うふうに、
$dataの場合は
1,3;2,4
と出力したいのです。
う〜ん。これだと
1,2;3,4
と出力されてしまいます。
説明が悪かったです。
配列毎に順番に出力ではなく、
全配列の若い要素から順番に出力です。
配列Aの要素0,配列Bの要素0;
配列Aの要素1,配列Bの要素1;
配列Aの要素2,配列Bの要素2;
・
・
と言うふうに、
$dataの場合は
1,3;2,4
と出力したいのです。
2021/03/19(金) 17:23:02.60ID:e41Lj/Gw
スクリプト内の、Start-Processで起動したプロセスが、「別の」プロセスを起動します。
この「別の」プロセスのPIDを取るに、確実性のある方法ってありますでしょうか。
具体的に申し上げますと、TeratTermマクロの実行ファイル(以下、ttpmacro.exe)を、Start-Processで呼び出すと
ttpmacro.exeが、Teraterm本体を呼び出します。
以下の、@でttpmacro.exeのPIDは取れるのですが、ttpmacro.exeが呼び出した
Teraterm本体のPIDは取れません。
現状Aの方法、ttpmacro.exeをStart-Processで起動→3秒待ち(起動待ち)→Get-Processで最新のTeraterm本体のPIDを取る
で間に合ってはいるのですが、不確実性があります。
これの対処に、確実性のある方法があったら教えてください。
Get-ProcessのStart-Timeが〇秒以内の場合〜というのも考えたんですが、
やっぱり不確実があるのでまだ導入はしてません。
よろしくお願いいたします。
以下ソースコード一部抜粋しました。ご参照ください。
$ttl_macro=Teratemマクロのファイルパス
$ttpm_bin="C:\Program Files (x86)\teraterm\ttpmacro.exe"
@$ttl_pid=(Start-Process -PassThru -FilePath $ttpm_bin -ArgumentList "/V $ttl_macro $log_full_path")
sleep 3 #Teraterm本体の起動待ち用。
A$ttp_pid=((Get-Process -name "ttermpro") | Select-Object id,StartTime,name | Sort-Object -Property Starttime | Select-Object -Last 1)
この「別の」プロセスのPIDを取るに、確実性のある方法ってありますでしょうか。
具体的に申し上げますと、TeratTermマクロの実行ファイル(以下、ttpmacro.exe)を、Start-Processで呼び出すと
ttpmacro.exeが、Teraterm本体を呼び出します。
以下の、@でttpmacro.exeのPIDは取れるのですが、ttpmacro.exeが呼び出した
Teraterm本体のPIDは取れません。
現状Aの方法、ttpmacro.exeをStart-Processで起動→3秒待ち(起動待ち)→Get-Processで最新のTeraterm本体のPIDを取る
で間に合ってはいるのですが、不確実性があります。
これの対処に、確実性のある方法があったら教えてください。
Get-ProcessのStart-Timeが〇秒以内の場合〜というのも考えたんですが、
やっぱり不確実があるのでまだ導入はしてません。
よろしくお願いいたします。
以下ソースコード一部抜粋しました。ご参照ください。
$ttl_macro=Teratemマクロのファイルパス
$ttpm_bin="C:\Program Files (x86)\teraterm\ttpmacro.exe"
@$ttl_pid=(Start-Process -PassThru -FilePath $ttpm_bin -ArgumentList "/V $ttl_macro $log_full_path")
sleep 3 #Teraterm本体の起動待ち用。
A$ttp_pid=((Get-Process -name "ttermpro") | Select-Object id,StartTime,name | Sort-Object -Property Starttime | Select-Object -Last 1)
2021/03/19(金) 17:37:54.61ID:jH8qf1vo
>>17
Keyは固定でいいのね
なら
($data.Key1.GetLowerBound(0) .. $data.Key1.GetUpperBound(0) | %{ $data.Key1[$_], $data.Key2[$_] -join ',' }) -join ';'
でいいかと
Keyは固定でいいのね
なら
($data.Key1.GetLowerBound(0) .. $data.Key1.GetUpperBound(0) | %{ $data.Key1[$_], $data.Key2[$_] -join ',' }) -join ';'
でいいかと
2021/03/19(金) 17:48:29.69ID:eKviOhZZ
2021/03/19(金) 18:11:41.22ID:jH8qf1vo
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★4 [樽悶★]
- 「“なり得る”って言っただけだから…」高市早苗“存立危機”答弁後に漏らした本音 ★3 [Hitzeschleier★]
- 歩道で93歳男性が女子大学生の自転車にはねられ意識不明 坂を下った先「気付いたときには目の前に」 [七波羅探題★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★4 [お断り★]
- 【速報】 米大使声明 「日本を支えていく」「中国が威圧的手段に訴えるのは断ち難い悪癖」 [お断り★]
- 中国が水産物の輸入停止、首相答弁撤回を要求…中国共産党機関紙「輸入停止は一つのシグナルにすぎない」 [ぐれ★]
- 高市有事、今度はパンダに飛び火wwwwwwwwwwwwwww [834922174]
- テレビ局各社が高市首相を一切批判せず中国批判を展開 安倍時代の報道完全復活 [633746646]
- 🍣にゃっはろ🌸~スシろ~🏡
- 国策芸人やすこさん、TBSサンデージャポンで高市首相を絶賛 [633746646]
- 海外大手メディア、高市が中国に宣戦布告したと次々報道し始める。どんどん外堀が埋められる [931948549]
- この国の動物園、終わる… ゴリラ、キリン、ゾウ、人気動物が続々と消える… どこかに大きくてかっこいい大型獣いませんか? [452836546]
