前スレ
PowerShell -Part 3
https://mevius.5ch.net/test/read.cgi/tech/1539074808/
次スレは>>980が立ててね!!
探検
PowerShell -Part 4
■ このスレッドは過去ログ倉庫に格納されています
2020/01/01(水) 16:08:31.66ID:4oQ1Kxot
2020/01/12(日) 04:03:14.54ID:Wu3j+6b0
?
70デフォルトの名無しさん
2020/01/12(日) 04:22:58.37ID:Uj5X0q1W 設定ファイルがスクリプトということに何も疑問を持たなかったんだろかと思うことはある。
2020/01/12(日) 05:11:45.93ID:Hfpc94Xd
72デフォルトの名無しさん
2020/01/12(日) 09:20:24.49ID:Uj5X0q1W Linux板は荒らししかいないし、末期のウェブ板やPHP板みたいになってる。
まともな住人はここに移住してきても良いよね?
ウェブ板やPHP板も移住してるんだし。
まともな住人はここに移住してきても良いよね?
ウェブ板やPHP板も移住してるんだし。
73デフォルトの名無しさん
2020/01/12(日) 09:21:14.45ID:Uj5X0q1W Linux板は志賀何とかさんのことを語る板になってしまった。
2020/01/12(日) 10:59:33.84ID:FbSdnFnB
まさかとは思うがツールというのはGUIのことだろうか
PowerShellスレでCUIよりもGUIが無条件に優れているという話をしているのだろうか
スレチを自己正当化する理由が、然るべきスレが機能不全を起こしてるから行きたくないと?
しつこいスレチがここに機能不全を招くとは思わないのだろうか
前スレに続いての「WSLでよくね」なんて明らかに反応を楽しむ愉快犯なのに、まんまとLinuxのほうが残念だもん!って
いいかげん落ち着いてくれよ
PowerShellスレでCUIよりもGUIが無条件に優れているという話をしているのだろうか
スレチを自己正当化する理由が、然るべきスレが機能不全を起こしてるから行きたくないと?
しつこいスレチがここに機能不全を招くとは思わないのだろうか
前スレに続いての「WSLでよくね」なんて明らかに反応を楽しむ愉快犯なのに、まんまとLinuxのほうが残念だもん!って
いいかげん落ち着いてくれよ
2020/01/12(日) 18:25:07.68ID:6gxIPrAU
>>72
お前はスレタイを100回読み直せ
お前はスレタイを100回読み直せ
76デフォルトの名無しさん
2020/01/12(日) 19:02:16.18ID:Uj5X0q1W bash最高って書いてあるけど。
77デフォルトの名無しさん
2020/01/12(日) 21:27:38.66ID:gh55rPFY >>74
>まさかとは思うがツールというのはGUIのことだろうか
なわけないよ。
要は今は良くなってきているが
シェル言語なないと処理できないようなのがUnix系の世界
だったということ
ほかにろくなものないから
>まさかとは思うがツールというのはGUIのことだろうか
なわけないよ。
要は今は良くなってきているが
シェル言語なないと処理できないようなのがUnix系の世界
だったということ
ほかにろくなものないから
78デフォルトの名無しさん
2020/01/12(日) 22:41:27.46ID:gh55rPFY ま、そりゃいいか。
PowerShellを語る板だから
ごめん。
PowerShellの話に戻します。
PowerShellを語る板だから
ごめん。
PowerShellの話に戻します。
2020/01/13(月) 13:13:43.40ID:GhUCXbF0
意味不明。結局、CUIでない、GUIでもない"ツール"とはいったい何だったのか
2020/01/16(木) 08:46:49.48ID:wD5IBL5x
81デフォルトの名無しさん
2020/01/28(火) 00:59:10.36ID:b7mfcqCA 刻々と変化する変数をフォームに表示させたいんだけど
当然この例だと実行した時点での変数しか表示されません。
フォームのラベルの変数を動的に表示し続ける方法を教えてください(この例だと時計のように動かしたい)
$time = Get-Date
Add-Type -AssemblyName System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$label = New-Object System.Windows.Forms.Label
$label.Text = $time
$form.Controls.Add($label)
$form.ShowDialog()
当然この例だと実行した時点での変数しか表示されません。
フォームのラベルの変数を動的に表示し続ける方法を教えてください(この例だと時計のように動かしたい)
$time = Get-Date
Add-Type -AssemblyName System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$label = New-Object System.Windows.Forms.Label
$label.Text = $time
$form.Controls.Add($label)
$form.ShowDialog()
2020/01/28(火) 02:09:43.73ID:Vj4Y99PX
タイマーイベントとかあるじゃろ
C#タイマーあたりでぐぐれ
C#タイマーあたりでぐぐれ
2020/01/28(火) 05:27:11.17ID:gua2EZr0
正確な時間じゃなくても良いなら、Ruby なら、sleep で簡単にできる。
ただし、OS がバッファリングしてると、最後にまとめて出力されてしまう!
STDOUT.sync = true # バッファリングしない
3.times do
puts Time.now
sleep 3
end
ただし、OS がバッファリングしてると、最後にまとめて出力されてしまう!
STDOUT.sync = true # バッファリングしない
3.times do
puts Time.now
sleep 3
end
2020/01/28(火) 08:59:06.21ID:CfcUNbbY
フォーム要素はどこに行った
2020/01/28(火) 19:45:19.95ID:xyAuIeAM
>>81
別スレッドで非同期にフォームを起動すればいい
using namespace System.Windows.Forms
using assembly System.Windows.Forms
$label = [Label]@{ Dock = "Fill"; Font = "Meiryo,20" }
$form = [Form]@{ Size = "350,100" }
$form.Controls.Add($label)
$runspace = [RunspaceFactory]::CreateRunspace()
$runspace.Open()
$pipeline = $runspace.CreatePipeline()
$pipeline.Commands.AddScript({ param ($form) $form.ShowDialog() })
$pipeline.Commands[0].Parameters.Add("form", $form)
$pipeline.InvokeAsync()
foreach ($p in 1..10) {
if ($Runspace.RunspaceAvailability -ne "Busy") { break }
$time = [datetime]::Now
$label.Text = $time
sleep 1
}
if ($Runspace.RunspaceAvailability -eq "Busy") { $form.Close() }
$runspace.Dispose()
別スレッドで非同期にフォームを起動すればいい
using namespace System.Windows.Forms
using assembly System.Windows.Forms
$label = [Label]@{ Dock = "Fill"; Font = "Meiryo,20" }
$form = [Form]@{ Size = "350,100" }
$form.Controls.Add($label)
$runspace = [RunspaceFactory]::CreateRunspace()
$runspace.Open()
$pipeline = $runspace.CreatePipeline()
$pipeline.Commands.AddScript({ param ($form) $form.ShowDialog() })
$pipeline.Commands[0].Parameters.Add("form", $form)
$pipeline.InvokeAsync()
foreach ($p in 1..10) {
if ($Runspace.RunspaceAvailability -ne "Busy") { break }
$time = [datetime]::Now
$label.Text = $time
sleep 1
}
if ($Runspace.RunspaceAvailability -eq "Busy") { $form.Close() }
$runspace.Dispose()
2020/01/30(木) 19:49:29.15ID:dJd/g4Kb
2020/02/01(土) 09:36:54.77ID:tNoLSDZ1
2020/02/01(土) 10:30:55.09ID:escHc8OK
PowerShel で凝ったことやろうとすると、どうしても C# の知識が必要になるよな。
おかげで、C# を勉強する良いきっかけになったわ。スキルの幅が広がるのは嬉しい。
おかげで、C# を勉強する良いきっかけになったわ。スキルの幅が広がるのは嬉しい。
2020/02/01(土) 11:42:52.32ID:S54SgdVf
C#スキル?
.net frameworkの知識じゃなくて?
.net frameworkの知識じゃなくて?
2020/02/01(土) 21:57:28.51ID:KsqMKxaU
C#全く使えん奴は凝ったことすら思いつかないのでは
2020/02/01(土) 22:22:36.87ID:QN2fVxGF
$label = [Label]@{ Dock = "Fill"; Font = "Meiryo,20" }
という式を初めて見て驚いてるんだけど、これについてのドキュメントってどこかにありますか?
という式を初めて見て驚いてるんだけど、これについてのドキュメントってどこかにありますか?
2020/02/01(土) 23:27:18.65ID:1A0Wf54C
>>91
PowerShell 3からの機能
クラスが引数を取らないコンストラクタを持っていて、プロパティがパブリックでset可能なら使える
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_hash_tables?view=powershell-7#creating-objects-from-hash-tables
PowerShell 3からの機能
クラスが引数を取らないコンストラクタを持っていて、プロパティがパブリックでset可能なら使える
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_hash_tables?view=powershell-7#creating-objects-from-hash-tables
2020/02/02(日) 11:46:03.71ID:9GpNdTap
2020/02/04(火) 17:22:37.51ID:Rq+qX9o+
オブジェクト志向ライクでいいんだけど、
powershellへbatやVBSから置き換えようとすると機能によってはバージョンチェックをしないといけないのがもどかしい
.NETにしろそうなんだけどね
powershellへbatやVBSから置き換えようとすると機能によってはバージョンチェックをしないといけないのがもどかしい
.NETにしろそうなんだけどね
2020/02/04(火) 20:42:27.29ID:uL6VAIkG
ご教示ください。
商品の価格を定期的にWebサイトから取得したいのですが、Invoke-WebRequestで取得したHtmlWebResponseObjectから要素の内の文字列を取り出そうとすると「Windows セキュリティの警告」のポップアップが表示されてしまいます。
ポップアップを出さずに要素の内の文字列を取得するにはどうすればよいでしょうか?
$response = Invoke-WebRequest -uri "https://www.yodobashi.com/product/100000001002955686/"
$price = $response.ParsedHtml.getElementById("js_scl_unitPrice").innerText
これを実行すると「この Web サイトから個人用の情報を提供できるように、Cookie と呼ばれる小さなファイルをこのコンピューターに配置できるようにしますか?」と表示されます。
商品の価格を定期的にWebサイトから取得したいのですが、Invoke-WebRequestで取得したHtmlWebResponseObjectから要素の内の文字列を取り出そうとすると「Windows セキュリティの警告」のポップアップが表示されてしまいます。
ポップアップを出さずに要素の内の文字列を取得するにはどうすればよいでしょうか?
$response = Invoke-WebRequest -uri "https://www.yodobashi.com/product/100000001002955686/"
$price = $response.ParsedHtml.getElementById("js_scl_unitPrice").innerText
これを実行すると「この Web サイトから個人用の情報を提供できるように、Cookie と呼ばれる小さなファイルをこのコンピューターに配置できるようにしますか?」と表示されます。
2020/02/04(火) 21:00:56.36ID:sy7Lzsaq
なんでPSで?・・・
2020/02/04(火) 22:40:04.72ID:tW1M7Be/
cookie powershellでぐぐればやり方は出てくる
javascriptとか出てきたら素直にseleniumを使う
seleniumをpowershellで使う方法もある
javascriptとか出てきたら素直にseleniumを使う
seleniumをpowershellで使う方法もある
2020/02/07(金) 03:46:32.51ID:eL08TT0Y
DateTimePickerで翌日の日付をデフォルト選択する方法ありませんか?
2020/02/07(金) 06:17:27.09ID:Ec63bSXx
[DateTimePicker]@{ Value = [datetime]::Now.AddDays(1) }
100デフォルトの名無しさん
2020/02/07(金) 17:42:43.13ID:eL08TT0Y >>99
できましたサンクス!
できましたサンクス!
101デフォルトの名無しさん
2020/02/09(日) 17:36:01.93ID:7dfvQcUC 同スクリプト重複実行抑止する場合
皆さんどうしてますか?
pid書き出し?Mutex?
皆さんどうしてますか?
pid書き出し?Mutex?
102デフォルトの名無しさん
2020/02/09(日) 19:33:00.88ID:9UBXd1bi mutex
103デフォルトの名無しさん
2020/02/10(月) 12:17:46.17ID:f4vRyC3Z コールバック関数ってpowershellで可能ですか?
104デフォルトの名無しさん
2020/02/10(月) 12:24:25.91ID:8uBZGbTk 可能ですよ
105デフォルトの名無しさん
2020/02/10(月) 14:42:20.49ID:OVbm/XKG どうやるのですか?
106デフォルトの名無しさん
2020/02/10(月) 15:13:30.85ID:8uBZGbTk スクリプトブロックを渡すか、関数なら
$function:関数名
で渡す
実行は & でやるのが基本で他にもいろいろ方法がある
$function:関数名
で渡す
実行は & でやるのが基本で他にもいろいろ方法がある
107デフォルトの名無しさん
2020/02/10(月) 18:46:32.72ID:D64OFTKi スクリプトからフォームをshowメソッドで表示すると固まってしまい、
showDialogメソッドで表示すると操作できるようになります。
例えばモーダルフォームを表示した親フォームが固まるのは分かるのですが、
呼び出したモードレスフォームが固まってしまうのは何故なのでしょうか。
showDialogメソッドで表示すると操作できるようになります。
例えばモーダルフォームを表示した親フォームが固まるのは分かるのですが、
呼び出したモードレスフォームが固まってしまうのは何故なのでしょうか。
108デフォルトの名無しさん
2020/02/10(月) 21:56:58.62ID:RZngPC6l 103です。
実はコールバック関数が何かもよく理解してませんが、
以下URL先の
$sslStream = New-Object System.Net.Security.SslStream($stream,$false,({$True} -as [Net.Security.RemoteCertificateValidationCallback]))
の第三引数がコールバック関数でしょうか?
このやり方を理解したくて。
https://stackoverflow.com/questions/19252963/powershell-ssl-socket-client
実はコールバック関数が何かもよく理解してませんが、
以下URL先の
$sslStream = New-Object System.Net.Security.SslStream($stream,$false,({$True} -as [Net.Security.RemoteCertificateValidationCallback]))
の第三引数がコールバック関数でしょうか?
このやり方を理解したくて。
https://stackoverflow.com/questions/19252963/powershell-ssl-socket-client
109デフォルトの名無しさん
2020/02/11(火) 13:53:02.82ID:iYccZVyV コールバックはこの説明が分かりやすい
https://wa3.i-3-i.info/word12295.html
Powershellだと「スクリプトブロック」というコードを { } で括った物がコールバック関数として使える
引数として直接書いてもいいし、一度変数に代入して変数を引数に渡してもいい
{$True} という部分がそれ
でも今回は「スクリプトブロック」じゃなくて「RemoteCertificateValidationCallback」でと指定されている
三つ目のコンストラクタの引数の型に注目
https://docs.microsoft.com/ja-jp/dotnet/api/system.net.security.sslstream?view=netframework-4.8#constructors
なので -as 演算子で型変換をしてる
https://wa3.i-3-i.info/word12295.html
Powershellだと「スクリプトブロック」というコードを { } で括った物がコールバック関数として使える
引数として直接書いてもいいし、一度変数に代入して変数を引数に渡してもいい
{$True} という部分がそれ
でも今回は「スクリプトブロック」じゃなくて「RemoteCertificateValidationCallback」でと指定されている
三つ目のコンストラクタの引数の型に注目
https://docs.microsoft.com/ja-jp/dotnet/api/system.net.security.sslstream?view=netframework-4.8#constructors
なので -as 演算子で型変換をしてる
110デフォルトの名無しさん
2020/02/11(火) 14:24:03.53ID:AAFADizG とりあえず、引数がご飯で戻り値がウンコと言う事だけはわかった。
111デフォルトの名無しさん
2020/02/11(火) 15:25:48.37ID:LmagV5MS >>107
win32APIでウィンドウ作ったりしたことなかったら分からないかもしれないけどざっくり言うと
ウィンドウがOSからのメッセージ(マウスがクリックされたとか、ボタンが押されたとか)
を処理するにはOSからのメッセージをウィンドウに知らせてやる必要がある(メッセージループ)
ShowDialogはその辺をよしなにやってくれる
win32APIでウィンドウ作ったりしたことなかったら分からないかもしれないけどざっくり言うと
ウィンドウがOSからのメッセージ(マウスがクリックされたとか、ボタンが押されたとか)
を処理するにはOSからのメッセージをウィンドウに知らせてやる必要がある(メッセージループ)
ShowDialogはその辺をよしなにやってくれる
112デフォルトの名無しさん
2020/02/15(土) 04:04:02.58ID:Nij30Obe113デフォルトの名無しさん
2020/02/15(土) 08:45:46.45ID:Ba23wrvp >>109
103です。ありがとうございます。なんとなくわかったような気がしますが、自分には.netクラスライブラリのリファレンスマニュアル読めるほどのオブジェクト指向プログラムの知識が足りてないようです。
powershellでちょっと小難しい事しようと思うといつもこの壁にぶち当たります。
103です。ありがとうございます。なんとなくわかったような気がしますが、自分には.netクラスライブラリのリファレンスマニュアル読めるほどのオブジェクト指向プログラムの知識が足りてないようです。
powershellでちょっと小難しい事しようと思うといつもこの壁にぶち当たります。
114デフォルトの名無しさん
2020/02/15(土) 09:54:27.30ID:/QpUFa9s >>112
デバッガで実行ステップを追う感覚で捉えると分かりやすいよ
Powershellのようなコンソールアプリって基本シングルスレッドで、上から下に処理が流れて最後まで行ったら終わりでしょ
Showメソッドは表示するだけ
ShowDialogと違って閉じるのを待たずに呼び出し元に処理を戻すから、メインスレッドはすぐに続きのスクリプト処理を再開してしまう
ウィンドウっていつでもユーザーのマウス操作に反応できて、閉じられるまでは処理が終わらないよね
それは無限ループを回し続けて、マウス操作のような指令が来るまでキューを調べて待つ体制に入ってるから
その仕事を直接的にも間接的にもやってないならウインドウはだんまりになって当然
結論、コンソールアプリから最初に呼び出すウィンドウはモーダル表示にすべし
デバッガで実行ステップを追う感覚で捉えると分かりやすいよ
Powershellのようなコンソールアプリって基本シングルスレッドで、上から下に処理が流れて最後まで行ったら終わりでしょ
Showメソッドは表示するだけ
ShowDialogと違って閉じるのを待たずに呼び出し元に処理を戻すから、メインスレッドはすぐに続きのスクリプト処理を再開してしまう
ウィンドウっていつでもユーザーのマウス操作に反応できて、閉じられるまでは処理が終わらないよね
それは無限ループを回し続けて、マウス操作のような指令が来るまでキューを調べて待つ体制に入ってるから
その仕事を直接的にも間接的にもやってないならウインドウはだんまりになって当然
結論、コンソールアプリから最初に呼び出すウィンドウはモーダル表示にすべし
115デフォルトの名無しさん
2020/02/16(日) 00:31:35.72ID:EHy9IoT2 >>114
ありがとうございます
スッキリしました
よくC#でShowDialogで表示した時はDisposeを呼ばないとダメと言いますが、
これもイベントループを作るのか作らないかの差なのでしょうか
また、PowerShellでもDisposeした方がいいのでしょうか
ありがとうございます
スッキリしました
よくC#でShowDialogで表示した時はDisposeを呼ばないとダメと言いますが、
これもイベントループを作るのか作らないかの差なのでしょうか
また、PowerShellでもDisposeした方がいいのでしょうか
116デフォルトの名無しさん
2020/03/05(木) 08:17:58.34ID:Lxf+ynQs Announcing PowerShell 7.0
https://devblogs.microsoft.com/powershell/announcing-powershell-7-0/
Today, we’re happy to announce the Generally Available (GA) release of PowerShell 7.0!
https://devblogs.microsoft.com/powershell/announcing-powershell-7-0/
Today, we’re happy to announce the Generally Available (GA) release of PowerShell 7.0!
117デフォルトの名無しさん
2020/03/06(金) 04:35:17.20ID:fNVi1eTS インストーラで出てくるスパイダーマンのパチモンみたいなの何なの
118デフォルトの名無しさん
2020/03/06(金) 05:16:26.33ID:hxBXwa2S Overwatchのソンブラにそっくりだけどパクったのか?
119デフォルトの名無しさん
2020/03/06(金) 09:18:25.45ID:jyEHwxlL https://blog.shibata.tech/entry/2017/10/14/153510
このキャラクターはあまり認知度は高くないと思いますがPowerShell公式のキャラクターです。
名前はそのまま PowerShell の様です。(よくある言語の擬人化なのでしょう)
中の人からはPowerShell HeroやPosh-Chan*2と呼ばれている様です。
いまではPowerShell TeamのTwitterアイコンにも採用されています。
このキャラクターはあまり認知度は高くないと思いますがPowerShell公式のキャラクターです。
名前はそのまま PowerShell の様です。(よくある言語の擬人化なのでしょう)
中の人からはPowerShell HeroやPosh-Chan*2と呼ばれている様です。
いまではPowerShell TeamのTwitterアイコンにも採用されています。
120デフォルトの名無しさん
2020/03/06(金) 11:37:23.38ID:B7JE7mx4 >>116
キタ━━━━(゚∀゚)━━━━!!
キタ━━━━(゚∀゚)━━━━!!
121デフォルトの名無しさん
2020/03/06(金) 16:45:05.11ID:EUcOgnT/ PowerShellの本増えないかなー
日本でももう少し流行ってほしい
日本でももう少し流行ってほしい
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 三項演算子は俺の大好物
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【🐼🇨🇳】「高市総理VS中国」で日本からパンダはゼロに? 上野動物園「パンダ返還期限」まであと4カ月…★2 [BFU★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★6 [樽悶★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★5 [樽悶★]
- 【裁判】山上徹也被告の妹「この人は母のふりをした旧統一教会の信者だと思いました」「でも、母の形をしているから突き放せなかった」 [1ゲットロボ★]
- 【速報】 米大使声明 「日本を支えていく」「中国が威圧的手段に訴えるのは断ち難い悪癖」 [お断り★]
- 【7リメイク】『ドラゴンクエストVII Reimagined』では「プレイヤーの時間」を尊重したい…“100時間超”だった原作をテンポ良く現代化 [おっさん友の会★]
- 小野田紀美大臣「悪いことをする外国人は日本にいない状況をつくる」 [856698234]
- 外国人「日本の立ちんぼガールやばすぎるwwwwwwwww [977790669]
- 珍🏡珍
- 高市の台湾有事発言、日中韓の文化交流すら停止させる [931948549]
- 「あれ?円安加速の戦犯って高市じゃなくて岸田と石破じゃね?」という風潮、急速に高まるwww [759043982]
- 自民党 防衛費GDP比2%超へ協議開始 強い!強いぞ! [163661708]
