前スレ
PowerShell -Part 3
https://mevius.5ch.net/test/read.cgi/tech/1539074808/
次スレは>>980が立ててね!!
探検
PowerShell -Part 4
■ このスレッドは過去ログ倉庫に格納されています
2020/01/01(水) 16:08:31.66ID:4oQ1Kxot
122デフォルトの名無しさん
2020/03/06(金) 17:17:48.60ID:mKExt1TS >>121
Windows が関係するインフラ系の管理ではデファクトだと思ってたけど違うんかい?
自分はインフラ系の仕事が多いんだけど、MS 製品は言うに及ばず、
VMware、AWS、HPE の設定とか構築で使うためのモジュールが用意されてるんで、
そっち系の人は全員使ってるのかと思ってた。
今関わってる案件だと客先で用意された作業用 PC でも PowerCLI は
入れさせてもらえるんで、VMware の構築&設定が超絶はかどってすごく助かってる。
Windows が関係するインフラ系の管理ではデファクトだと思ってたけど違うんかい?
自分はインフラ系の仕事が多いんだけど、MS 製品は言うに及ばず、
VMware、AWS、HPE の設定とか構築で使うためのモジュールが用意されてるんで、
そっち系の人は全員使ってるのかと思ってた。
今関わってる案件だと客先で用意された作業用 PC でも PowerCLI は
入れさせてもらえるんで、VMware の構築&設定が超絶はかどってすごく助かってる。
123デフォルトの名無しさん
2020/03/06(金) 19:23:36.96ID:EUcOgnT/ >>122
IT系ですらない製造業の人間なので、インフラとかよく知らんです
CSVファイルとか扱う定型業務でVBAの代わりに流行らないかなーと思ってる
会社PCに標準で入ってるのが何よりありがたい
たまたまC#の経験あるからPowerShellが使いやすく感じるだけなのかもしれんけど
VBAは古すぎるし、文化が違いすぎて好きになれない…
IT系ですらない製造業の人間なので、インフラとかよく知らんです
CSVファイルとか扱う定型業務でVBAの代わりに流行らないかなーと思ってる
会社PCに標準で入ってるのが何よりありがたい
たまたまC#の経験あるからPowerShellが使いやすく感じるだけなのかもしれんけど
VBAは古すぎるし、文化が違いすぎて好きになれない…
124デフォルトの名無しさん
2020/03/06(金) 22:15:50.08ID:mKExt1TS >>123
確かに、RPA 的な用途にも使えるわね。
そう言われてみれば、IT プロ向けの PowerShell の資料は山ほどあるけど、
エンドユーザの業務効率化に的を絞った資料ってあまり聞かないね。
エンドユーザが手作業でやってる定型業務を PowerShell +αで
自動化/半自動化する事例を紹介する資料を作れば需要ありそう。
確かに、RPA 的な用途にも使えるわね。
そう言われてみれば、IT プロ向けの PowerShell の資料は山ほどあるけど、
エンドユーザの業務効率化に的を絞った資料ってあまり聞かないね。
エンドユーザが手作業でやってる定型業務を PowerShell +αで
自動化/半自動化する事例を紹介する資料を作れば需要ありそう。
125デフォルトの名無しさん
2020/03/07(土) 20:55:12.96ID:yZMlhieX Windows以外でもGridViewが使える
A new kind of GridView right in your console: Introducing the early preview of ConsoleGuiTools
https://devblogs.microsoft.com/powershell/introducing-consoleguitools-preview/
A new kind of GridView right in your console: Introducing the early preview of ConsoleGuiTools
https://devblogs.microsoft.com/powershell/introducing-consoleguitools-preview/
126デフォルトの名無しさん
2020/03/09(月) 17:26:48.99ID:BZZ4ItAR パワーシェルでテキストファイルを一行ずつ読み取って環境変数化するのはどうやるんでしょうか?
バッチファイルだと簡単にできるのにパワーシェルだと難しい
イメージ的にはこんなことをパワーシェルでやりたいです
for /f %%a “usebackq” in (./testfile.txt) do (
set testenv=%%a
echo !testenv!
)
バッチファイルだと簡単にできるのにパワーシェルだと難しい
イメージ的にはこんなことをパワーシェルでやりたいです
for /f %%a “usebackq” in (./testfile.txt) do (
set testenv=%%a
echo !testenv!
)
127デフォルトの名無しさん
2020/03/10(火) 14:15:31.74ID:qUF7p1Fi こーゆー感じのことやりたいのか?
cat .\testfile.txt | %{ $env:testenv = $_; $env:testenv }
cat .\testfile.txt | %{ $env:testenv = $_; $env:testenv }
128デフォルトの名無しさん
2020/03/10(火) 14:32:38.22ID:j2kTK4tI >>126
Get-Content -Path .\TextFile.txt | ForEach-Object -Process { $env:TestVar = $_ }
もしくは
$ContentData = Get-Content -Path .\TextFile.txt
foreach ($LineData in $ContentData) {
$env:TestVar = $LineData
}
こんな感じじゃないかな
知らんけど
グローバルな環境変数への代入はどうするのかな?
Get-Content -Path .\TextFile.txt | ForEach-Object -Process { $env:TestVar = $_ }
もしくは
$ContentData = Get-Content -Path .\TextFile.txt
foreach ($LineData in $ContentData) {
$env:TestVar = $LineData
}
こんな感じじゃないかな
知らんけど
グローバルな環境変数への代入はどうするのかな?
129デフォルトの名無しさん
2020/03/11(水) 20:45:46.50ID:lIDu6EwW130デフォルトの名無しさん
2020/03/11(水) 20:47:48.33ID:lIDu6EwW あ、システム環境変数のことですか
シェルスクリプト内の一時環境変数?で良いのです
シェルスクリプト内の一時環境変数?で良いのです
131デフォルトの名無しさん
2020/03/13(金) 14:02:44.23ID:MwEg+WGB javawみたいな感じで、スクリプト実行時にコマンドプロンプトを出さない方法はありませんか?1ファイルで。
ショートカットやvbs等の2ファイル使う方法なら解ってます。
ショートカットやvbs等の2ファイル使う方法なら解ってます。
132デフォルトの名無しさん
2020/03/13(金) 15:02:17.45ID:VpgJT114 まだ開発中
WIP: Add pwshw for console-less PowerShell on Windows
https://github.com/PowerShell/PowerShell/pull/10962
WIP: Add pwshw for console-less PowerShell on Windows
https://github.com/PowerShell/PowerShell/pull/10962
133デフォルトの名無しさん
2020/03/13(金) 15:27:21.47ID:e1b5/B0w ↑そのpwshwが取り込まれるまでは、↓を自前でビルドして自作pwshwなり、powershellwなりを作ることもできるよ
https://github.com/SeidChr/RunHiddenConsole
ビルドしてできたhiddenw.exeをリネームして使うだけ
https://github.com/SeidChr/RunHiddenConsole
ビルドしてできたhiddenw.exeをリネームして使うだけ
134デフォルトの名無しさん
2020/03/13(金) 19:15:38.63ID:cafRoH7X >>131
1,まず、.ps1 で動作するスクリプトを作る
2,1を BASE64 でエンコード
3,powershell.exe にオプション -EncodedCommand と 2をつないで実行
4,3を .cmd (.bat) に書く
詳細は「powershell EncodedCommand」みたいな感じでググればいいでしょう。
1,まず、.ps1 で動作するスクリプトを作る
2,1を BASE64 でエンコード
3,powershell.exe にオプション -EncodedCommand と 2をつないで実行
4,3を .cmd (.bat) に書く
詳細は「powershell EncodedCommand」みたいな感じでググればいいでしょう。
136デフォルトの名無しさん
2020/03/14(土) 10:34:16.74ID:3Jd+nG/t exe化するやつにそんなオプションがあったと思う
137デフォルトの名無しさん
2020/03/15(日) 16:23:53.40ID:ake3THHi Windows PowerShell in Action、900ページあるけど面白かった
次はPowerShell fo Sysadmins読もうかな
次はPowerShell fo Sysadmins読もうかな
138デフォルトの名無しさん
2020/03/15(日) 23:09:18.13ID:b9Qsc7j/ python.exe / pythonw.exe や ruby.exe / rubyw.exe の違いでよく悩むのでまとめておく
https://blog.shibayan.jp/entry/20141221/1419171414
https://blog.shibayan.jp/entry/20141221/1419171414
139デフォルトの名無しさん
2020/03/16(月) 21:24:16.40ID:vD0R4SAm >>133
さいこー。ありがとう
さいこー。ありがとう
140デフォルトの名無しさん
2020/03/20(金) 21:08:31.06ID:hI9v4wSz win10 バージョン5.1
Invoke-RestMethodの"-body"にjsonを入れる方法を教えてほしい
google photos apiで日付を指定して一覧を取得したい
ubuntu + curlで
curl -s -X POST -H "Authorization: Bearer " -H "Content-type: application/json"
-d '{"filters":{"dateFilter": {"dates":[{"year":2019,"month":11,"day":15}]}}}'
https://photoslibrary.googleapis.com/v1/mediaItems:search
これだと取得出来るんだけど
powershellで
$header = @{"Authorization" = "Bearer "};
$body = '{"filters":{"dateFilter": {"dates":[{"year":2019,"month":11,"day":15}]}}}';
Invoke-RestMethod -Uri https://photoslibrary.googleapis.com/v1/mediaItems:search
-Method Post -Headers $header -Body $body ;
(400) 要求が不適切ですでエラーになる
たぶんbodyの入れ方が悪いだと思うんだけど
アルバムIDの絞り込みだったら
$body=@{
"albumId"="id"
}
で取得出来た
Invoke-RestMethodの"-body"にjsonを入れる方法を教えてほしい
google photos apiで日付を指定して一覧を取得したい
ubuntu + curlで
curl -s -X POST -H "Authorization: Bearer " -H "Content-type: application/json"
-d '{"filters":{"dateFilter": {"dates":[{"year":2019,"month":11,"day":15}]}}}'
https://photoslibrary.googleapis.com/v1/mediaItems:search
これだと取得出来るんだけど
powershellで
$header = @{"Authorization" = "Bearer "};
$body = '{"filters":{"dateFilter": {"dates":[{"year":2019,"month":11,"day":15}]}}}';
Invoke-RestMethod -Uri https://photoslibrary.googleapis.com/v1/mediaItems:search
-Method Post -Headers $header -Body $body ;
(400) 要求が不適切ですでエラーになる
たぶんbodyの入れ方が悪いだと思うんだけど
アルバムIDの絞り込みだったら
$body=@{
"albumId"="id"
}
で取得出来た
141デフォルトの名無しさん
2020/03/20(金) 23:34:49.75ID:fNo2jQuJ -ContentType "application/json" を付けるか
もしくは全部ヘッダに入れる
$accessToken = "your access token"
$uri = "https://photoslibrary.googleapis.com/v1/mediaItems:search"
$response = Invoke-RestMethod $uri -Method Post -Headers @{
Authorization = "Bearer $accessToken"
Filters = @{
DateFilter = @{
Dates = @{ Year = 2016; Month = 3; Day = 1 }
}
}
}
もしくは全部ヘッダに入れる
$accessToken = "your access token"
$uri = "https://photoslibrary.googleapis.com/v1/mediaItems:search"
$response = Invoke-RestMethod $uri -Method Post -Headers @{
Authorization = "Bearer $accessToken"
Filters = @{
DateFilter = @{
Dates = @{ Year = 2016; Month = 3; Day = 1 }
}
}
}
142デフォルトの名無しさん
2020/03/21(土) 00:10:00.03ID:AKmTgF3+ ごめんやっぱBodyに入れないといけない
$body = @{
filters = @{
dateFilter = @{
dates = @(@{ year = 2019; month = 11; day = 15 })
}
}
} | ConvertTo-Json -Depth 100
$param = @{
Uri = $uri
Method = "Post"
Headers = @{ Authorization = "Bearer $accessToken" }
Body = $body
ContentType = "application/json"
}
$response = Invoke-RestMethod @param
$body = @{
filters = @{
dateFilter = @{
dates = @(@{ year = 2019; month = 11; day = 15 })
}
}
} | ConvertTo-Json -Depth 100
$param = @{
Uri = $uri
Method = "Post"
Headers = @{ Authorization = "Bearer $accessToken" }
Body = $body
ContentType = "application/json"
}
$response = Invoke-RestMethod @param
143デフォルトの名無しさん
2020/03/21(土) 00:24:48.78ID:WepcD5N+144デフォルトの名無しさん
2020/03/21(土) 09:18:44.54ID:AEZYARkU145デフォルトの名無しさん
2020/03/21(土) 09:34:19.00ID:Nklv0DXu VSCode の拡張機能、REST Client が簡単!
POST http://localhost:8888/abc HTTP/1.1
content-type: application/json
{
"name": "abc",
"time": "時刻"
}
POST http://localhost:8888/abc HTTP/1.1
content-type: application/json
{
"name": "abc",
"time": "時刻"
}
146デフォルトの名無しさん
2020/03/21(土) 10:02:37.23ID:+Hs4SQrc147デフォルトの名無しさん
2020/03/21(土) 17:39:49.06ID:vJ0Lurek Windows PowerShell in Actionの改3版、日本語訳してくれないかなぁ…
148デフォルトの名無しさん
2020/03/23(月) 10:55:55.25ID:wpOCnP6k パイプラインを繋げる先を条件で分岐って可能ですか?
イメージとしては
Get-Nantoka |
Switch ($_.Name)
Case ('A') | Get-NantokaA
Case ('B') | Get-NantokaB
Case ('C') | Get-NantokaC
な感じです
イメージとしては
Get-Nantoka |
Switch ($_.Name)
Case ('A') | Get-NantokaA
Case ('B') | Get-NantokaB
Case ('C') | Get-NantokaC
な感じです
149デフォルトの名無しさん
2020/03/23(月) 22:15:40.05ID:nB8lN/u6 さすがにそんなシンタックスはないが同じような動作はできる
$continuation = @{
A = { select Name,Age | Write-Host -f Cyan }.GetSteppablePipeline()
B = { select Name,Gender | Write-Host -f Magenta }.GetSteppablePipeline()
C = { select Name | Write-Host -f Yellow }.GetSteppablePipeline()
}
$continuation.Values.ForEach("Begin", $true)
@"
Name,Age,Gender
A,12,Male
C,93,Female
B,32,Male
A,52,Female
C,73,Female
"@ | ConvertFrom-Csv | foreach { $continuation[$_.Name].Process($_) }
$continuation.Values.ForEach("End")
$continuation = @{
A = { select Name,Age | Write-Host -f Cyan }.GetSteppablePipeline()
B = { select Name,Gender | Write-Host -f Magenta }.GetSteppablePipeline()
C = { select Name | Write-Host -f Yellow }.GetSteppablePipeline()
}
$continuation.Values.ForEach("Begin", $true)
@"
Name,Age,Gender
A,12,Male
C,93,Female
B,32,Male
A,52,Female
C,73,Female
"@ | ConvertFrom-Csv | foreach { $continuation[$_.Name].Process($_) }
$continuation.Values.ForEach("End")
150デフォルトの名無しさん
2020/03/24(火) 02:11:10.59ID:1omVAMXs 結局処理を別々に書かなきゃいけないなら書いてる通りswitch文でいいんじゃねって気はする
151デフォルトの名無しさん
2020/03/24(火) 12:26:04.21ID:/23EZweg switch文だと毎回新規にGetNantokaAとかが呼ばれてしまうため例えばGetNantokaAがMeasure-Objectだと意味がなくなる
152デフォルトの名無しさん
2020/03/24(火) 13:30:06.69ID:n2AHJDo3153デフォルトの名無しさん
2020/03/24(火) 16:14:53.92ID:/23EZweg >>152
> いま、もしかして上にある「パイプラインの並列化」って分岐の事じゃね?と思ったのだが違うのかな
同じルーチンが複数同時に走るってことだとと思う
排他制御とか順序の保証とかがどうなってるのかが気になる
> いま、もしかして上にある「パイプラインの並列化」って分岐の事じゃね?と思ったのだが違うのかな
同じルーチンが複数同時に走るってことだとと思う
排他制御とか順序の保証とかがどうなってるのかが気になる
154デフォルトの名無しさん
2020/03/24(火) 19:15:33.49ID:n2AHJDo3155デフォルトの名無しさん
2020/03/24(火) 19:46:16.61ID:1omVAMXs >>151
あーそれでわざわざGetSteppablePipeline使ってるのね
あーそれでわざわざGetSteppablePipeline使ってるのね
156デフォルトの名無しさん
2020/03/24(火) 21:24:12.31ID:LC2xv/4E >>149が何やってるのかサッパリ
GetSteppablePipelineでぐぐっても日本人はほとんど存在士らないのかなって具合
GetSteppablePipelineでぐぐっても日本人はほとんど存在士らないのかなって具合
157デフォルトの名無しさん
2020/03/24(火) 22:44:37.71ID:VBWCR/ci ScriptBlock.GetSteppablePipeline Method
https://docs.microsoft.com/en-us/dotnet/api/system.management.automation.scriptblock.getsteppablepipeline
https://docs.microsoft.com/en-us/dotnet/api/system.management.automation.scriptblock.getsteppablepipeline
158デフォルトの名無しさん
2020/03/24(火) 23:52:12.51ID:LC2xv/4E >>149の最初の連想配列作ってるとこは判る
問題は次
>$continuation.Values.ForEach("Begin", $true)
これ何してるの?
Values.ForEachて。
こんな書き方でSteppablePipelineのBeginメソッドが呼べるの?
C言語の配列で"A"[0]みたいなトリッキーさを連想させるのだが
問題は次
>$continuation.Values.ForEach("Begin", $true)
これ何してるの?
Values.ForEachて。
こんな書き方でSteppablePipelineのBeginメソッドが呼べるの?
C言語の配列で"A"[0]みたいなトリッキーさを連想させるのだが
159デフォルトの名無しさん
2020/03/25(水) 03:41:09.46ID:IDfpoHeN .ForEachはメソッド形式のForeach-Objectで、要するにC#のLINQをPowerShell風にアレンジした何か
どっちかというと.ForEach({ ..... }) みたいにスクリプトブロックを渡す使い方が主流だと思うけど、メソッド名を文字列で渡してオブジェクトのメソッドを呼び出すこともできる
ステッパブルパイプラインは任意のパイプライン(文)をメソッド形式で呼び出せるようにするための何か
渡された引数を先頭のコマンドにパイプして実行させることができる
どっちかというと.ForEach({ ..... }) みたいにスクリプトブロックを渡す使い方が主流だと思うけど、メソッド名を文字列で渡してオブジェクトのメソッドを呼び出すこともできる
ステッパブルパイプラインは任意のパイプライン(文)をメソッド形式で呼び出せるようにするための何か
渡された引数を先頭のコマンドにパイプして実行させることができる
160デフォルトの名無しさん
2020/03/25(水) 18:56:02.32ID:8IWtSBvh powershellで2つのファイルの差分のみを抜き出して追加や削除されたものは別ファイルに出力したいです
例えば
fileA.txt
aaa
uuu
iii
fileB.txt
iii
uuu
eee
とあった場合にfileBをマスタとしてaaaの文字列をdelete.txtにeeeの文字列をadd.txt出力したいです。
やり方教えてください!
例えば
fileA.txt
aaa
uuu
iii
fileB.txt
iii
uuu
eee
とあった場合にfileBをマスタとしてaaaの文字列をdelete.txtにeeeの文字列をadd.txt出力したいです。
やり方教えてください!
161デフォルトの名無しさん
2020/03/25(水) 19:05:36.15ID:D/1vKEW+ 素人ですまんけど、
$test0 = "a", "b", "c"
$test1 = $test0[1]
こういった時に、$test0のbを同時に削除する書き方はありますか?別途処理を書く必要あり?
$test0 = "a", "b", "c"
$test1 = $test0[1]
こういった時に、$test0のbを同時に削除する書き方はありますか?別途処理を書く必要あり?
162デフォルトの名無しさん
2020/03/26(木) 00:05:42.98ID:fIJkkKI3 >>160
function Marge([object[]]$Adds,[object[]]$Deletes){
$Adds|Where-Object{$_ -notin $Deletes}
}
Marge $(Get-Content fileB.txt) $(Get-Content fileA.txt) > add.txt
Marge $(Get-Content fileA.txt) $(Get-Content fileB.txt) > delete.txt
function Marge([object[]]$Adds,[object[]]$Deletes){
$Adds|Where-Object{$_ -notin $Deletes}
}
Marge $(Get-Content fileB.txt) $(Get-Content fileA.txt) > add.txt
Marge $(Get-Content fileA.txt) $(Get-Content fileB.txt) > delete.txt
163デフォルトの名無しさん
2020/03/26(木) 00:09:27.46ID:fIJkkKI3164デフォルトの名無しさん
2020/03/26(木) 00:14:14.98ID:fIJkkKI3 -ne演算子の場合は大小比較をしないので注意
もし比較する場合は>>162のように-notin演算子とWhere関数でフィルタする
もし比較する場合は>>162のように-notin演算子とWhere関数でフィルタする
165デフォルトの名無しさん
2020/03/26(木) 08:51:19.38ID:BddTdfqa166デフォルトの名無しさん
2020/03/28(土) 02:03:33.90 scoop の魅力
167デフォルトの名無しさん
2020/03/30(月) 02:08:56.05ID:VM+VSYRD > $a = try{get-content data.txt}catch{@()}
> $a = if(3 -ne 4){11}else{22}
ダメ元で試してみたらこんな書き方出来たのかよ
> $a = if(3 -ne 4){11}else{22}
ダメ元で試してみたらこんな書き方出来たのかよ
168デフォルトの名無しさん
2020/03/30(月) 07:08:11.36ID:PN3/f/57 うん、だから三項演算子入れないでほしかった
なんでわざわざ評判微妙な記法を取り入れたんだろ
なんでわざわざ評判微妙な記法を取り入れたんだろ
169デフォルトの名無しさん
2020/03/30(月) 18:31:48.20ID:2xrywwd7 三項演算子は俺の大好物
170デフォルトの名無しさん
2020/03/30(月) 18:44:14.41ID:kxtxXuN0 C#8.0のswitch式見ててあれってなったけど、そういえば右辺に文を持ってこれるのってPowerShellくらいなんだっけ
171デフォルトの名無しさん
2020/03/30(月) 22:05:50.57ID:bK3E1kug goto を禁止して
今度は if then else を禁止しようってか?
今度は if then else を禁止しようってか?
172デフォルトの名無しさん
2020/03/31(火) 09:18:05.97ID:hmCJ2D6X # RSSの内容を取得
$url="https://rss.itmedia.co.jp/rss/2.0/ait.xml"
$webclient = new-object System.Net.WebClient
$webclient.Encoding = [System.Text.Encoding]::UTF8
$rss = [xml]$webclient.downloadstring($url)
とやった場合に$rssの内容を手早く調べるにはどうやればいいですか?
$rss | ConvertTo-Json -Depth 100
$rss | Out-GridView
なんかは表示が貧弱すぎてわかりません
多少長くてもいいので正確に(できればJSONで)階層化する方法が知りたいです
$rssはあくまで一例で類似の複雑なオブジェクト全般について知りたいです
$url="https://rss.itmedia.co.jp/rss/2.0/ait.xml"
$webclient = new-object System.Net.WebClient
$webclient.Encoding = [System.Text.Encoding]::UTF8
$rss = [xml]$webclient.downloadstring($url)
とやった場合に$rssの内容を手早く調べるにはどうやればいいですか?
$rss | ConvertTo-Json -Depth 100
$rss | Out-GridView
なんかは表示が貧弱すぎてわかりません
多少長くてもいいので正確に(できればJSONで)階層化する方法が知りたいです
$rssはあくまで一例で類似の複雑なオブジェクト全般について知りたいです
173デフォルトの名無しさん
2020/03/31(火) 12:14:42.73ID:b44czDa9 >>172
$rss.rss.channel.item で一覧表示される(もちろんGridViewで見てもよい)けど、そういうことではなくて?
$rss.rss.channel.item で一覧表示される(もちろんGridViewで見てもよい)けど、そういうことではなくて?
174デフォルトの名無しさん
2020/03/31(火) 13:02:27.84ID:UGGIMXD4 >>172
JSONとXMLじゃ表現できる範囲が違うから「正確に」と言うなら$rss.OuterXmlとかで見るしかないと思うよ
インデントとか付けて見易くしたいならXmlWriter使って整形すればいい
https://imihito.hatenablog.jp/entry/2018/01/20/225513
JSONとXMLじゃ表現できる範囲が違うから「正確に」と言うなら$rss.OuterXmlとかで見るしかないと思うよ
インデントとか付けて見易くしたいならXmlWriter使って整形すればいい
https://imihito.hatenablog.jp/entry/2018/01/20/225513
175172
2020/03/31(火) 15:56:05.63ID:hmCJ2D6X ISEからVSCodeに変えてデバッグ&インスペクトしたら大体望み通りの表示が得られました
https://i.imgur.com/HRVgQP3.png
[xml]な$rssも細部まで階層表示が出来ました
余計なプロパティがあまりにもごちゃごちゃしていて目視で$rssの把握は無理気味でしたが…
ありがとうございました
https://i.imgur.com/HRVgQP3.png
[xml]な$rssも細部まで階層表示が出来ました
余計なプロパティがあまりにもごちゃごちゃしていて目視で$rssの把握は無理気味でしたが…
ありがとうございました
176デフォルトの名無しさん
2020/04/01(水) 05:14:26.18ID:T/a2Vy7O VSCode に、XML のお勧め拡張機能はないの?
177デフォルトの名無しさん
2020/04/01(水) 08:11:20.55ID:VNCwfYlv >>176
スレタイ1024回読み直せ
スレタイ1024回読み直せ
178デフォルトの名無しさん
2020/04/01(水) 20:40:01.19ID:wuY/0uuQ classとclassを使うスクリプトの場所を分けたい場合
例えば
c:\workフォルダに
main.ps1
c:\work\class フォルダに
class1.ps1
class2.ps1
class2.ps1はclass1.ps1を読込ので先頭に
cd $PSScriptRoot
. ".\class1.ps1"
main.ps1はclass2.ps1を読込ので先頭に
cd $PSScriptRoot
. ".\class\class2.ps1"
これでmain.ps1動かすとディレクトリがc:\work\classに変わっちゃうから
class2.ps1を読み込んだ後にもう一度cd $PSScriptRootでディレクトリを移動し直すのが
なんか気持ち悪いんですが、絶対パスでやる以外に方法はあるんでしょうか
例えば
c:\workフォルダに
main.ps1
c:\work\class フォルダに
class1.ps1
class2.ps1
class2.ps1はclass1.ps1を読込ので先頭に
cd $PSScriptRoot
. ".\class1.ps1"
main.ps1はclass2.ps1を読込ので先頭に
cd $PSScriptRoot
. ".\class\class2.ps1"
これでmain.ps1動かすとディレクトリがc:\work\classに変わっちゃうから
class2.ps1を読み込んだ後にもう一度cd $PSScriptRootでディレクトリを移動し直すのが
なんか気持ち悪いんですが、絶対パスでやる以外に方法はあるんでしょうか
179デフォルトの名無しさん
2020/04/02(木) 02:02:55.73ID:sgXKVFsI pushd popd
180デフォルトの名無しさん
2020/04/02(木) 23:47:54.92ID:W0wv5F0P . "$PSScriptRoot\class1.ps1"
と絶対パスでやるのが一般的
カレントディレクトリの移動はやらんほうがいい
と絶対パスでやるのが一般的
カレントディレクトリの移動はやらんほうがいい
181デフォルトの名無しさん
2020/04/03(金) 01:06:03.07ID:BrOkETDP なる程その手があったか
どうもありがとう
どうもありがとう
182デフォルトの名無しさん
2020/04/08(水) 19:04:23.59ID:bFKpwotA 連想配列をカンマ区切りに置換してファイル出力する方法教えてください
配列の場合はわかるんですが連想配列の場合がわかりません
@{id=001;name=hoge}
みたいなやつを↓
001,hoge
みたいな感じにしたいんです
配列の場合はわかるんですが連想配列の場合がわかりません
@{id=001;name=hoge}
みたいなやつを↓
001,hoge
みたいな感じにしたいんです
183デフォルトの名無しさん
2020/04/08(水) 19:27:34.84ID:VOICq9dy @{id="001";name="hoge"}.Values -join ","
184デフォルトの名無しさん
2020/04/08(水) 20:46:56.85ID:u/iW9oDx >>183
なるほど!!
なるほど!!
185デフォルトの名無しさん
2020/04/09(木) 10:17:18.42ID:qPytwYgo powershellのエラー発生時のログ出力って皆さんどうやってますか?
単純にpowershellの画面上に出力されてるエラーをログに吐き出したいだけなのですがイマイチやり方が分かりません!
単純にpowershellの画面上に出力されてるエラーをログに吐き出したいだけなのですがイマイチやり方が分かりません!
186デフォルトの名無しさん
2020/04/09(木) 11:37:10.62ID:ZcR3gUW3 $error
187デフォルトの名無しさん
2020/04/19(日) 17:57:40.84ID:LL/F5W9x シフト右クリックからpowershellウインドウをここで開くでウインドウ立ち上げた時にアクティブな状態で立ち上がらないから一回クリックしたりして選択し直さないかんのが地味にストレス
188デフォルトの名無しさん
2020/04/19(日) 18:12:07.47ID:wL4NwIK0 >>187
おま環
おま環
189デフォルトの名無しさん
2020/04/19(日) 18:14:16.64ID:vjiWfekt シフト右クリックするとメニューが出る
このとき先にシフトを離してから開く操作をするといい
シフトを押した状態でアプリを起動すると非アクティブで開くのはWindowsの昔からの機能
このとき先にシフトを離してから開く操作をするといい
シフトを押した状態でアプリを起動すると非アクティブで開くのはWindowsの昔からの機能
190デフォルトの名無しさん
2020/04/19(日) 18:18:01.41ID:vjiWfekt Windows95の頃からこの機能は変わっていないと思う
191デフォルトの名無しさん
2020/04/19(日) 19:11:09.49ID:jwLUU+vG192デフォルトの名無しさん
2020/04/19(日) 19:35:33.27ID:/0QkS1hn なるほど、勉強になった
ありがとう
ありがとう
193デフォルトの名無しさん
2020/04/21(火) 22:23:31.60ID:8Kh2/Vc8 >>137
結構古い本だけど今でも読み応えある感じですか?
結構古い本だけど今でも読み応えある感じですか?
194デフォルトの名無しさん
2020/04/23(木) 21:26:18.73ID:xCk1mGre 日本語に翻訳された初版じゃなくて第3版でしょ
Windows PowerShell in Action, Third Edition
https://www.manning.com/books/windows-powershell-in-action-third-edition
Windows PowerShell in Action, Third Edition
https://www.manning.com/books/windows-powershell-in-action-third-edition
195デフォルトの名無しさん
2020/04/28(火) 10:53:40.07ID:+ujIhWuh メンバを呼ぶ.(ドット)の演算子を逆参照演算子と呼ぶらしいんだけど、どこら辺が逆なんだろう
196デフォルトの名無しさん
2020/04/28(火) 15:39:52.27ID:nkgQazrR Cとかでは * で値を得ることをdereferenceということがあるよ。
197デフォルトの名無しさん
2020/04/28(火) 19:06:19.94ID:+ujIhWuh 逆参照演算子もdereferenceの直訳っぽいね
参照の反対の行動という意味で逆なのかな
参照の反対の行動という意味で逆なのかな
198デフォルトの名無しさん
2020/04/29(水) 08:59:09.87ID:pj1FfIiR 参照先のオブジェクト実体を見る、参照じゃなくなるからdereference(逆参照)
199デフォルトの名無しさん
2020/04/29(水) 10:32:55.55ID:JJa9UlV/ 普通、参照外しって訳すけどな。「逆」じゃ意味が通じない。
200デフォルトの名無しさん
2020/04/29(水) 11:22:32.85ID:HjIuTJYT Powershellに逆参照演算子なんてないでしょ
ドットはMember access operatorとDot sourcing operatorの二種類のはず
ほかの言語との混同があるのでは
C言語の & と * を参照演算子、逆参照演算子と訳すなら分かるし、-> を逆参照演算子と呼ぶのもまあ分かる
ドットはMember access operatorとDot sourcing operatorの二種類のはず
ほかの言語との混同があるのでは
C言語の & と * を参照演算子、逆参照演算子と訳すなら分かるし、-> を逆参照演算子と呼ぶのもまあ分かる
201デフォルトの名無しさん
2020/04/29(水) 12:43:39.55ID:YtBfjahw 日本語版Windows PowerShell in Actionにそう書いてあった気がするんだが、
確かにMSDN見るとMember access operatorだ
確かにMSDN見るとMember access operatorだ
202デフォルトの名無しさん
2020/04/29(水) 12:50:10.22ID:YtBfjahw vscode上だと高度な関数のbeginブロックで定義した変数が、
processブロック中で使ってるにも関わらず未参照の警告が出るんだけど良い解決方法ないでしょうか
未参照確認自体は便利なので黙らせたくはないです
processブロック中で使ってるにも関わらず未参照の警告が出るんだけど良い解決方法ないでしょうか
未参照確認自体は便利なので黙らせたくはないです
203デフォルトの名無しさん
2020/04/29(水) 21:28:33.91ID:kj6lHAl7 >>199
逆参照と訳す人が現実にいるんだから仕方がない
https://www.google.com/search?q=dereference+%E9%80%86%E5%8F%82%E7%85%A7
逆参照と訳す人が現実にいるんだから仕方がない
https://www.google.com/search?q=dereference+%E9%80%86%E5%8F%82%E7%85%A7
204デフォルトの名無しさん
2020/04/30(木) 09:42:14.57ID:Lei4veWw >>200-201
古い about_Operators には property dereferences operator とあるので、改名されたのかも。
https://docs.microsoft.com/en-us/previous-versions/powershell/module/microsoft.powershell.core/about/about_operators
古い about_Operators には property dereferences operator とあるので、改名されたのかも。
https://docs.microsoft.com/en-us/previous-versions/powershell/module/microsoft.powershell.core/about/about_operators
205デフォルトの名無しさん
2020/04/30(木) 14:51:17.97ID:qeUJHkfv https://docs.microsoft.com/ja-jp/previous-versions/windows/powershell-scripting/hh847732(v=wps.640)
. プロパティ逆参照演算子
オブジェクトのプロパティとメソッドにアクセスします。
$myProcess.peakWorkingSet
(get-process PowerShell).kill()
. プロパティ逆参照演算子
オブジェクトのプロパティとメソッドにアクセスします。
$myProcess.peakWorkingSet
(get-process PowerShell).kill()
206デフォルトの名無しさん
2020/05/01(金) 00:27:41.37ID:iyqswZZm 一般的には
参照 アドレスを取り出す
逆参照 アドレスに入っている値を取り出す
だけど値を取り出すことを「逆」と訳した経緯がわからん
参照 アドレスを取り出す
逆参照 アドレスに入っている値を取り出す
だけど値を取り出すことを「逆」と訳した経緯がわからん
207デフォルトの名無しさん
2020/05/01(金) 05:46:31.59ID:XmUvZ7vC 変な翻訳だな
値参照でいい
値参照でいい
208デフォルトの名無しさん
2020/05/01(金) 12:57:54.38ID:578ddPng dereferenceはやっぱ参照外しかな
referenceってポインタ(または名前)が主語で、実体に向かって矢印が向いている、ポイントしている状態
逆参照というとこの矢印を逆に辿る、変数からポインタを探すになっちゃう
接頭辞de-を「離れる」と理解せずに、かなり派生的な「逆」と訳して定着した誤訳に近い語だと思う
referenceってポインタ(または名前)が主語で、実体に向かって矢印が向いている、ポイントしている状態
逆参照というとこの矢印を逆に辿る、変数からポインタを探すになっちゃう
接頭辞de-を「離れる」と理解せずに、かなり派生的な「逆」と訳して定着した誤訳に近い語だと思う
209デフォルトの名無しさん
2020/05/01(金) 12:58:58.53ID:578ddPng いずれにしてもPowershellでdereferenceなんて概念を持ち込む必要がないからメンバアクセス演算子って名前に改善されたんでしょう
210デフォルトの名無しさん
2020/05/01(金) 16:33:54.54ID:5CcYXcTT C系は逆参照じゃないの
むしろ参照外しのほうがわからんかったが
むしろ参照外しのほうがわからんかったが
211デフォルトの名無しさん
2020/05/01(金) 17:34:48.85ID:578ddPng どっちがデファクトスタンダードかって話とどっちが正しいかって話は別だから
確信犯とか姑息みたいに誤用の方が普及して定義が揺らいでる言葉はいろいろあるけどどう使うかは話者次第
確信犯とか姑息みたいに誤用の方が普及して定義が揺らいでる言葉はいろいろあるけどどう使うかは話者次第
212デフォルトの名無しさん
2020/05/04(月) 01:09:24.67ID:hArtKUaR 初心者です
move-item等でファイル名に[]があるとエラーがある事を知りました
ようやく -LiteralPath つければ良いと分かりましたが、
デフォルトの仕様がワイルドカード受け付けるのって初心者殺しというか…
なれてる人はこっちの方が便利なんでしょうか
move-item等でファイル名に[]があるとエラーがある事を知りました
ようやく -LiteralPath つければ良いと分かりましたが、
デフォルトの仕様がワイルドカード受け付けるのって初心者殺しというか…
なれてる人はこっちの方が便利なんでしょうか
213デフォルトの名無しさん
2020/05/04(月) 03:59:19.96ID:eeiLu4M/ Powershell好きだけどファイル名の [ ] の扱いは失策だと思う
214デフォルトの名無しさん
2020/05/04(月) 08:21:59.04ID:ayLem+RW ?や*すらファイル名に使えるUNIXの世界へようこそ!
215デフォルトの名無しさん
2020/05/04(月) 09:28:04.92ID:hArtKUaR >>213
やっぱりそうですよね・・・
比較演算子も、-matchで[ ]があるとエラーになって困りました
これもいろいろ調べてようやく-match [regex]::escape() にすれば良いと分かりましたが・・・
PowerShellって参考書もあまりなくて古いし、ネットの情報もあまりなくてなかなか学習が進みません・・・
そもそもPowerShell ISEのヘルプで -pathは「ワイルドカード文字を許可する false」って嘘書いてあるのが・・・
やっぱりそうですよね・・・
比較演算子も、-matchで[ ]があるとエラーになって困りました
これもいろいろ調べてようやく-match [regex]::escape() にすれば良いと分かりましたが・・・
PowerShellって参考書もあまりなくて古いし、ネットの情報もあまりなくてなかなか学習が進みません・・・
そもそもPowerShell ISEのヘルプで -pathは「ワイルドカード文字を許可する false」って嘘書いてあるのが・・・
216デフォルトの名無しさん
2020/05/04(月) 11:59:27.10ID:dnvbBZmT ファイル名はともかくmatch が正規表現で比較ってのは割と知られているような気もするけど
217デフォルトの名無しさん
2020/05/04(月) 13:19:22.94ID:XmeTIU4M 対になるlike演算子があるからなんとなくわかる
ところでreplaceの正規表現じゃない版が欲しい・・・
ところでreplaceの正規表現じゃない版が欲しい・・・
218デフォルトの名無しさん
2020/05/04(月) 13:22:34.10ID:eeiLu4M/ たしかに-matchの話に限っては単なる勘違いだな
match(一致)と言われて部分一致だと思うかといえば、普通はpattern matchでしょう
参考にしたサイトが悪かったのかもしれない
正規表現を使わないなら "a[b]c".Contains("[b]") でいい
match(一致)と言われて部分一致だと思うかといえば、普通はpattern matchでしょう
参考にしたサイトが悪かったのかもしれない
正規表現を使わないなら "a[b]c".Contains("[b]") でいい
219デフォルトの名無しさん
2020/05/04(月) 13:25:02.05ID:eeiLu4M/220デフォルトの名無しさん
2020/05/04(月) 13:42:36.44ID:XmeTIU4M なるほどね
そういや -replace [regex]::escape()でもOKか
そういや -replace [regex]::escape()でもOKか
221デフォルトの名無しさん
2020/05/04(月) 16:06:32.60ID:hArtKUaR >>216 >>218
教えていただいてありがとうございます。
自分がやりたかったのは、例えば hoge[hoge] というファイル名で拡張子の違う
複数のファイルの移動だったんですが、最初は
$hoge = "hoge[hoge]"
Move-Item "C:\test\$hoge.*" "C:\test2"
これは失敗しました([ ]があるファイルを処理していて気がつきました)
いろいろ調べて
Get-ChildItem "C:\test\*.*"|Where-Object{$_.basename -match [regex]::escape("$hoge")}|Move-Item -Destination "C:\test2"
してみて成功しました
今回教えてもらって
Get-ChildItem "C:\test\*.*"|Where-Object{$_.basename.contains("$hoge")}|Move-Item -Destination "C:\test2"
これでOKみたいです。まだ冗長な気もしますが・・・
教えていただいてありがとうございます。
自分がやりたかったのは、例えば hoge[hoge] というファイル名で拡張子の違う
複数のファイルの移動だったんですが、最初は
$hoge = "hoge[hoge]"
Move-Item "C:\test\$hoge.*" "C:\test2"
これは失敗しました([ ]があるファイルを処理していて気がつきました)
いろいろ調べて
Get-ChildItem "C:\test\*.*"|Where-Object{$_.basename -match [regex]::escape("$hoge")}|Move-Item -Destination "C:\test2"
してみて成功しました
今回教えてもらって
Get-ChildItem "C:\test\*.*"|Where-Object{$_.basename.contains("$hoge")}|Move-Item -Destination "C:\test2"
これでOKみたいです。まだ冗長な気もしますが・・・
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- 【悲報】ゼレンスキー「高市早苗は生命を守り、国際的なルールに基づく秩序を擁護し、国家間の相互尊重を促している」 [616817505]
- 青椒肉絲、牛肉ではなく豚肉を使うのが本物だった
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- んなっしょい🍬禁止🈲のお🏡
