前スレ
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
2021/03/19(金) 18:53:58.30ID:qinkf1Gp
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【結婚の壁】結婚どころか今まで恋愛経験は一切ない人も…「年収500万の壁」を突破できない中間層の苦しい現実 [ぐれ★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★2 [蚤の市★]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
- 【動画】ママチャリまんさん「わたし女ですけど!」シャコシャコシャコシャコ 🚴‍♀❗🚛 [329329848]
- さて1月1日の能登震災から1年経とうとしているわけだが
- 声優・矢尾一樹の妻「治療の影響で思う様に話せない彼に、近くで仕事をしてきた人が、かっこ悪い!もう辞めなよと言った。私は許さない」 [594040874]
- おまえらスキンケアしてる?
- 【画像】TOKIO山口達也に「いいべ」された当時のJK、性加害の反動であたしこグラドルにwww [779857986]
