前スレ
PowerShell -Part 5
https://mevius.5ch.net/test/read.cgi/tech/1615994992/
次スレは>>980が立ててね!!
PowerShell -Part 6
■ このスレッドは過去ログ倉庫に格納されています
2022/02/13(日) 18:36:12.07ID:LaQ04ZoE
135デフォルトの名無しさん
2022/03/09(水) 17:46:07.31ID:KONqX93R それはPSってよりCOMじゃね
136デフォルトの名無しさん
2022/03/09(水) 19:10:34.11ID:g4d6cmq/ めっちゃ前からある機能だしCOMなんて1mmも関係ないぞ
https://codezine.jp/article/detail/5007
https://codezine.jp/article/detail/5007
137デフォルトの名無しさん
2022/03/09(水) 21:24:55.35ID:oTLaCJPf コマンドレットの出力がオブジェクトで目的のプロパティから値が取り出しやすい
Where-object一つ覚えればフィルター出来るからコマンド毎にフィルタの仕様で悩む必要が無い
正規表現がperl拡張表現で標準搭載、コマンドやら環境によって規格が違うとか悩む必要がない
シェルスクリプトとしてそれだけでも全然いいわ
Where-object一つ覚えればフィルター出来るからコマンド毎にフィルタの仕様で悩む必要が無い
正規表現がperl拡張表現で標準搭載、コマンドやら環境によって規格が違うとか悩む必要がない
シェルスクリプトとしてそれだけでも全然いいわ
138デフォルトの名無しさん
2022/03/12(土) 11:12:49.22ID:2x7XRkpq regex沼に入る気はないけど$matches.namedで参照できるだけでもかなり有り難い
pwsh固有の事情としては(?-i)を繁用するな
sls等コマンドレットに-CaseSensitive渡したり-[ci]matchが入り乱れてたのがスッキリした
pwsh固有の事情としては(?-i)を繁用するな
sls等コマンドレットに-CaseSensitive渡したり-[ci]matchが入り乱れてたのがスッキリした
139デフォルトの名無しさん
2022/03/12(土) 11:27:19.44ID:2x7XRkpq あとStringとString[]どっちも渡ってくるから(?m)/(?-m)もpwsh的には重要か
140デフォルトの名無しさん
2022/03/15(火) 01:12:21.45ID:z4wleAC0141デフォルトの名無しさん
2022/03/16(水) 22:20:26.82ID:Rh84s05v 二つの引数をとる関数に引数を二つ渡したら、一個目引数が全部持っていくのはなんで?
コード
function war {
param($putin, $zelenskyy)
Write-Host 'putin has ' $putin
Write-Host 'zelenskyy has ' $zelenskyy
}
war('Russian','Ukraine')
結果
putin has Russian Ukraine
zelenskyy has
コード
function war {
param($putin, $zelenskyy)
Write-Host 'putin has ' $putin
Write-Host 'zelenskyy has ' $zelenskyy
}
war('Russian','Ukraine')
結果
putin has Russian Ukraine
zelenskyy has
142デフォルトの名無しさん
2022/03/16(水) 22:33:14.06ID:ET0x7ZFa143デフォルトの名無しさん
2022/03/16(水) 22:41:56.39ID:Rh84s05v 呼び出すときに恰好つけるとダメなのか
144デフォルトの名無しさん
2022/03/17(木) 00:07:43.00ID:0/d09PRO 格好も括弧も関係ない
シェルなんだから引数の区切りは空白と言うだけの話
シェルなんだから引数の区切りは空白と言うだけの話
145デフォルトの名無しさん
2022/03/17(木) 00:50:39.64ID:DCNM1l/p war Russian Ukraine
にしろっつーことでしょ?
にしろっつーことでしょ?
146デフォルトの名無しさん
2022/03/17(木) 00:52:00.94ID:DCNM1l/p 失礼、こうだね
war ‘Russian’ ‘Ukraine’
war ‘Russian’ ‘Ukraine’
147デフォルトの名無しさん
2022/03/17(木) 08:43:01.98ID:vPjPamJP Set-StrictMode -Version 2.0 おすすめ
https://docs.microsoft.com/ja-jp/previous-versions/dd347614(v=technet.10)#%E4%BE%8B-2
https://docs.microsoft.com/ja-jp/previous-versions/dd347614(v=technet.10)#%E4%BE%8B-2
148デフォルトの名無しさん
2022/03/17(木) 12:57:17.38ID:ENyjKfBg 赤文字で出るエラーメッセージをログに出力して、
エラーログが出てるか適当な箇所で判定して、ログをnotepadで開くってことをやりたいです。
標準エラー出力みたいなのの取得方法を教えて下さい
エラーログが出てるか適当な箇所で判定して、ログをnotepadで開くってことをやりたいです。
標準エラー出力みたいなのの取得方法を教えて下さい
149デフォルトの名無しさん
2022/03/17(木) 15:06:14.72ID:9VjLQzax いくら補完あると言ってもコマンドレットの名前冗長すぎんだよ
150デフォルトの名無しさん
2022/03/17(木) 15:18:43.63ID:zTqRydhk >>149
良く使うやつはaliasあるやん
良く使うやつはaliasあるやん
151デフォルトの名無しさん
2022/03/17(木) 21:22:30.00ID:KFCC0Q8d 長いから分かりやすくていいんだろ
wとか言われてもユーザーを笑いものにするコマンドか?としか思えんし
wとか言われてもユーザーを笑いものにするコマンドか?としか思えんし
152デフォルトの名無しさん
2022/03/19(土) 11:18:52.00ID:7PrXFgOi 構文はtclっぽいねえ
153デフォルトの名無しさん
2022/03/19(土) 12:37:58.38ID:vJYdrJTe 配列の配列について
$array_of_array = @(
@(
'1-1'
'1-2'
'1-3'
),
@(
'2-1'
'2-2'
)
)
$array_of_array | foreach {
Write-Host 'L1' $_
$_ | foreach {
Write-Host ' L2' $_
}
}
結果は期待通り
L1 1-1 1-2 1-3
L2 1-1
L2 1-2
L2 1-3
L1 2-1 2-2
L2 2-1
L2 2-2
$array_of_array = @(
@(
'1-1'
'1-2'
'1-3'
),
@(
'2-1'
'2-2'
)
)
$array_of_array | foreach {
Write-Host 'L1' $_
$_ | foreach {
Write-Host ' L2' $_
}
}
結果は期待通り
L1 1-1 1-2 1-3
L2 1-1
L2 1-2
L2 1-3
L1 2-1 2-2
L2 2-1
L2 2-2
154デフォルトの名無しさん
2022/03/19(土) 12:39:12.90ID:vJYdrJTe だが、カンマを省略すると
$array_of_array = @(
@(
'1-1'
'1-2'
'1-3'
)
@(
'2-1'
'2-2'
)
)
結果は期待と違う。配列の配列じゃなくて、ただの配列になっている?
L1 1-1
L2 1-1
L1 1-2
L2 1-2
L1 1-3
L2 1-3
L1 2-1
L2 2-1
L1 2-2
L2 2-2
$array_of_array = @(
@(
'1-1'
'1-2'
'1-3'
)
@(
'2-1'
'2-2'
)
)
結果は期待と違う。配列の配列じゃなくて、ただの配列になっている?
L1 1-1
L2 1-1
L1 1-2
L2 1-2
L1 1-3
L2 1-3
L1 2-1
L2 2-1
L1 2-2
L2 2-2
155デフォルトの名無しさん
2022/03/19(土) 12:40:41.61ID:vJYdrJTe 改行してカンマをいれると
$array_of_array = @(
@(
'1-1'
'1-2'
'1-3'
)
,
@(
'2-1'
'2-2'
)
)
後半だけ、配列が要素になっている?
L1 1-1
L2 1-1
L1 1-2
L2 1-2
L1 1-3
L2 1-3
L1 2-1 2-2
L2 2-1
L2 2-2
どういうことなのか教えてよ。
$array_of_array = @(
@(
'1-1'
'1-2'
'1-3'
)
,
@(
'2-1'
'2-2'
)
)
後半だけ、配列が要素になっている?
L1 1-1
L2 1-1
L1 1-2
L2 1-2
L1 1-3
L2 1-3
L1 2-1 2-2
L2 2-1
L2 2-2
どういうことなのか教えてよ。
156デフォルトの名無しさん
2022/03/19(土) 14:10:16.88ID:advrh/I1 powershellで配列データ構造を扱ってはいけない
157デフォルトの名無しさん
2022/03/19(土) 16:28:22.32ID:vJYdrJTe https://docs.microsoft.com/ja-jp/powershell/scripting/learn/deep-dives/everything-about-arrays?view=powershell-7.2#nested-arrays
「これらの例では、コンマは非常に重要です。 以前に示した通常の複数行での配列の例では、コンマは省略可能でした。 多次元配列の場合はそうではありません。」
そうではありませんと言われても、エラーになるわけでもなく、どうなるのか誰か教えて
「これらの例では、コンマは非常に重要です。 以前に示した通常の複数行での配列の例では、コンマは省略可能でした。 多次元配列の場合はそうではありません。」
そうではありませんと言われても、エラーになるわけでもなく、どうなるのか誰か教えて
158デフォルトの名無しさん
2022/03/19(土) 23:33:26.82ID:GptrjqcJ159デフォルトの名無しさん
2022/03/19(土) 23:33:48.95ID:GptrjqcJ160デフォルトの名無しさん
2022/03/20(日) 00:30:34.10ID:V8R16naX 追加。
Out-*やWrite-*で出力先が示されていない改行や「;」などは、
暗黙のWrite-Outputが動くと考えるとよいです。
つまり「@(〜);」は「Write-Output @(〜);」となり、この時、配列が1段階分解(要素取出)されます。
ただし「単項 ,」の「,@(〜)」は「Write-Output -NoEnumerate (,@(〜))」となり、分解されません。
イメージ的にはこんな違い。(本当は他にもWrite-Outputが入ります)
>>153
@( (Write-Output @('1-1'; '1-2'; '1-3';), @('2-1'; '2-2';)); )
>>154
@( (Write-Output @('1-1'; '1-2'; '1-3';)); (Write-Output @('2-1'; '2-2';)); )
>>155
@( (Write-Output @('1-1'; '1-2'; '1-3';)); (Write-Output -NoEnumerate (,@('2-1'; '2-2';))); )
Out-*やWrite-*で出力先が示されていない改行や「;」などは、
暗黙のWrite-Outputが動くと考えるとよいです。
つまり「@(〜);」は「Write-Output @(〜);」となり、この時、配列が1段階分解(要素取出)されます。
ただし「単項 ,」の「,@(〜)」は「Write-Output -NoEnumerate (,@(〜))」となり、分解されません。
イメージ的にはこんな違い。(本当は他にもWrite-Outputが入ります)
>>153
@( (Write-Output @('1-1'; '1-2'; '1-3';), @('2-1'; '2-2';)); )
>>154
@( (Write-Output @('1-1'; '1-2'; '1-3';)); (Write-Output @('2-1'; '2-2';)); )
>>155
@( (Write-Output @('1-1'; '1-2'; '1-3';)); (Write-Output -NoEnumerate (,@('2-1'; '2-2';))); )
161デフォルトの名無しさん
2022/03/20(日) 01:20:05.34ID:EnzWedk+ 暗黙のWrite-Output
コマンドレットのような何某かの出力を持つものと、Powershellのスクリプト内で定義された関数や式の評価結果を
うまいこと混ぜることが出来るようにする仕掛けなのでしょうか
完全に理解しては居ませんがが、理解に努めます
文法知識は「Windows PowerShell実践システム管理ガイド 第3版(日経BP)」の第2章を読んだだけなのですが
これだけは全然足りないtのを痛感しました
何かお勧めはありませんか
コマンドレットのような何某かの出力を持つものと、Powershellのスクリプト内で定義された関数や式の評価結果を
うまいこと混ぜることが出来るようにする仕掛けなのでしょうか
完全に理解しては居ませんがが、理解に努めます
文法知識は「Windows PowerShell実践システム管理ガイド 第3版(日経BP)」の第2章を読んだだけなのですが
これだけは全然足りないtのを痛感しました
何かお勧めはありませんか
162デフォルトの名無しさん
2022/03/20(日) 01:39:27.35ID:KeTIMbSf powershellは行志向寄りの言語だから改行はC/C++でいう暗黙の副作用完了点みたいな意味を持っている
何も考えず複数行にまたがる式を書くと思わぬ事故に繋がるから、C/C++の\やVBの_みたいに行継続を示す`を行末に付けるといいよ
$array_of_array = @( @('1-1', '1-2', '1-3') `
, @('2-1', '2-2'))
何も考えず複数行にまたがる式を書くと思わぬ事故に繋がるから、C/C++の\やVBの_みたいに行継続を示す`を行末に付けるといいよ
$array_of_array = @( @('1-1', '1-2', '1-3') `
, @('2-1', '2-2'))
163デフォルトの名無しさん
2022/03/20(日) 14:33:02.79ID:V8R16naX >>161
今回の挙動の予想や理解は、構文のパース(式・文の区切り)、
独特なパイプラインの挙動、分かりづらい「単項 ,」の存在などがあり
わりと難易度の高いものです。
>>156、>>162さんに同意で、配列の配列(ジャグ配列)を避け
行の継続を「`」で明示する事をお勧めします。
書籍では『Windows PowerShell イン アクション』がお勧めです。
ただv1の本なので今となっては内容が古く、紙だと新品の入手が難しいです。
※これのv5以上版が日本語で出て欲しい…。
https://www.sbcr.jp/product/4797337362/
あとは>>157のMSのサイト等。
about_*も有用な事が書かれてますが、日本語訳やサンプルコードの質が酷く、
多くの人がよく使う機能と一部の人が稀に使う機能が同じ扱いの記述なのが難点。
今回の挙動の予想や理解は、構文のパース(式・文の区切り)、
独特なパイプラインの挙動、分かりづらい「単項 ,」の存在などがあり
わりと難易度の高いものです。
>>156、>>162さんに同意で、配列の配列(ジャグ配列)を避け
行の継続を「`」で明示する事をお勧めします。
書籍では『Windows PowerShell イン アクション』がお勧めです。
ただv1の本なので今となっては内容が古く、紙だと新品の入手が難しいです。
※これのv5以上版が日本語で出て欲しい…。
https://www.sbcr.jp/product/4797337362/
あとは>>157のMSのサイト等。
about_*も有用な事が書かれてますが、日本語訳やサンプルコードの質が酷く、
多くの人がよく使う機能と一部の人が稀に使う機能が同じ扱いの記述なのが難点。
164デフォルトの名無しさん
2022/03/20(日) 22:00:12.10ID:L+yKE55O Powershellの洋書翻訳はもっと盛んになってほしい
オライリーのクックブックも原著は改定4版まで出てるのに日本語は初版のままだし
オライリーのクックブックも原著は改定4版まで出てるのに日本語は初版のままだし
165デフォルトの名無しさん
2022/03/21(月) 00:56:42.09ID:OI2SuuED 今時英語できないの日本人だけだからな
土人とか馬鹿にしてる韓国、中国、インド、ベトナム、フィリピンなんてネイティブレベルで英語できるからな
これで日本のレベルは低くないとかそれ以前の問題だよ
土人とか馬鹿にしてる韓国、中国、インド、ベトナム、フィリピンなんてネイティブレベルで英語できるからな
これで日本のレベルは低くないとかそれ以前の問題だよ
166デフォルトの名無しさん
2022/03/21(月) 08:39:53.52ID:2Zu3Swq+ エリート層は英語できるだろうよ
馬鹿は海外だと底辺でも英語ペラペラだと思ってやがるが
馬鹿は海外だと底辺でも英語ペラペラだと思ってやがるが
167デフォルトの名無しさん
2022/03/21(月) 09:24:20.27ID:JwhA0ika 日本ですら母国語での情報の鮮度が落ちるんだから
それらの国のプログラミング学習希望者は
必然的に英語の勉強からしないといけないだけの話じゃないかな?
日本のレベルが低いとか
英語できるのはエリート層だけとか
そういう問題じゃないと思いますよ
アニメ理解したいから日本語勉強しましたと
同じレベルの話な気がする
それらの国のプログラミング学習希望者は
必然的に英語の勉強からしないといけないだけの話じゃないかな?
日本のレベルが低いとか
英語できるのはエリート層だけとか
そういう問題じゃないと思いますよ
アニメ理解したいから日本語勉強しましたと
同じレベルの話な気がする
168デフォルトの名無しさん
2022/03/21(月) 09:42:44.22ID:3OVxtXqz まとめて挙がってるけど国によって差は大きい
インドとフィリピンは英語が公用語で世界でも有数の英語話者が多い国
日本の英語力が低すぎて世界に遅れを取っているというのは同意
学校教育も都度見直されてるしそのうち改善されるんじゃねーの、知らんけど
プログラマーなら英語を読むだけでもできるように少しずつ学ぶ気概は欲しい
ボク英語わからないんですと幼稚な変数名を付け続けるのはよくない
インドとフィリピンは英語が公用語で世界でも有数の英語話者が多い国
日本の英語力が低すぎて世界に遅れを取っているというのは同意
学校教育も都度見直されてるしそのうち改善されるんじゃねーの、知らんけど
プログラマーなら英語を読むだけでもできるように少しずつ学ぶ気概は欲しい
ボク英語わからないんですと幼稚な変数名を付け続けるのはよくない
169デフォルトの名無しさん
2022/03/21(月) 14:48:55.98ID:fHQFhWIP 日本は国内に金と仕事があるせいで海外でなくても稼げるからなあ
英語理解できなくても儲かる職業の筆頭が
マスコミと教育と役人政治家の時点で英語教育が変わるわけ無いじゃん
英語理解できなくても儲かる職業の筆頭が
マスコミと教育と役人政治家の時点で英語教育が変わるわけ無いじゃん
170デフォルトの名無しさん
2022/03/21(月) 16:01:23.66ID:l99FVYBX ITに限定すると英語は必要なんだけど英語に限らず日本のITエンジニアの多くは勉強しない
能力を伸ばしても給料が上がらず残業が増やされるだけと諦めるのが常態化している
能力を伸ばしても給料が上がらず残業が増やされるだけと諦めるのが常態化している
171デフォルトの名無しさん
2022/03/21(月) 16:10:09.00ID:l99FVYBX 国内に金があるというのは微妙な話になってきている
世界ワースト級の低成長による沈下を続けていて、本当に有能なエンジニアは海外に流出して残るのはIT土方ばかり
ノーベル賞受賞者が元日本人ばかりというのと同じような話が起こってる
GAFAのようなIT企業が伸びないから低成長から抜け出さない負のスパイラル
世界ワースト級の低成長による沈下を続けていて、本当に有能なエンジニアは海外に流出して残るのはIT土方ばかり
ノーベル賞受賞者が元日本人ばかりというのと同じような話が起こってる
GAFAのようなIT企業が伸びないから低成長から抜け出さない負のスパイラル
172デフォルトの名無しさん
2022/03/21(月) 21:14:58.00ID:dTmdB0AV 海外ならGAFAみたいな企業がたくさんあるとでも思ってるのかこのゴミは
GAFAは世界中でも1つしか無いんだよ
GAFAは世界中でも1つしか無いんだよ
173デフォルトの名無しさん
2022/03/21(月) 21:25:38.84ID:vIzK+CHc GAFAはひとつとな?
MARCHはひとつみたいな哲学かな?
のようなという日本語の意味はわかるのかな?
MARCHはひとつみたいな哲学かな?
のようなという日本語の意味はわかるのかな?
174デフォルトの名無しさん
2022/03/21(月) 22:11:34.27ID:y82izW1t 脱線しとるな
175デフォルトの名無しさん
2022/03/22(火) 00:10:37.43ID:KVIRUNm3 これ使って出来ることってフォルダ弄りファイル弄り設定弄りだけ?
他に出来ることないの?
他に出来ることないの?
176デフォルトの名無しさん
2022/03/22(火) 00:21:42.31ID:kikOm2qa あとは何かプログラムを走らせたり、せいぜいOSの機能を実行するくらいかな
リモートで出来たりするけど、しょせんはローカルに出来ることがリモートでも出来るってだけだな
まだ勉強をはじめたばっかりだけど、そのマシンで出来ないことは出来ないんだなって分かった
リモートで出来たりするけど、しょせんはローカルに出来ることがリモートでも出来るってだけだな
まだ勉強をはじめたばっかりだけど、そのマシンで出来ないことは出来ないんだなって分かった
177デフォルトの名無しさん
2022/03/22(火) 00:25:39.51ID:gjcW4Tfu >>175
bashなんかのシェルとは違って.NETベースだからC#やVB.NETでできることは一通りできるよbashなんかと違ってね
メンテが楽だからあえてpowershellでGUIを作ったりする場合もある
bashなんかのシェルとは違って.NETベースだからC#やVB.NETでできることは一通りできるよbashなんかと違ってね
メンテが楽だからあえてpowershellでGUIを作ったりする場合もある
178デフォルトの名無しさん
2022/03/22(火) 00:37:38.83ID:aUdC0GfB 正規表現使えるしWindowsだとわざわざPythonセットアップして使うより楽だし利便性高い気がする
179デフォルトの名無しさん
2022/03/23(水) 00:40:52.77ID:G2Twh9Sv180デフォルトの名無しさん
2022/03/23(水) 04:18:15.48ID:IVt1k3VA181デフォルトの名無しさん
2022/03/23(水) 08:31:22.61ID:eqSZnoCQ182デフォルトの名無しさん
2022/03/23(水) 09:01:03.65ID:TpwnHNL9 分かってるくせに…
対面だと「何いってんだコイツ…」とか思いながらも愛想笑いしてそうだな
対面だと「何いってんだコイツ…」とか思いながらも愛想笑いしてそうだな
183デフォルトの名無しさん
2022/03/23(水) 10:01:20.99ID:Jvnypl+E 釣りでしょ
面倒見いい人なら、オマエそれブーメランやんけーて言ってあげたら喜ぶよ
面倒見いい人なら、オマエそれブーメランやんけーて言ってあげたら喜ぶよ
184デフォルトの名無しさん
2022/03/23(水) 10:04:37.18ID:11NHOGIK この煽り合いもPowershellスキルの一部なんですか?
185デフォルトの名無しさん
2022/03/24(木) 03:56:01.53ID:cKyI7Sj4 write-sqltabledateで列名は指定できますか?
計算列のあるテーブルでその列を飛ばしたいのですがPsCustumObjectのプロパティ名が無視されて並び順で投入されてしまいます。
計算列のあるテーブルでその列を飛ばしたいのですがPsCustumObjectのプロパティ名が無視されて並び順で投入されてしまいます。
186デフォルトの名無しさん
2022/03/24(木) 21:13:21.68ID:vudxrsxx187デフォルトの名無しさん
2022/03/25(金) 04:05:40.26ID:qE/8IX5m188デフォルトの名無しさん
2022/03/26(土) 14:42:03.29ID:u+BPDoH4 そういう挙動ということはWrite-SqlTableDataはメタデータを考慮してなさそうだし
Invoke-Sqlcmdでやれば?
Invoke-Sqlcmdでやれば?
189デフォルトの名無しさん
2022/03/26(土) 14:50:17.14ID:pYdvgAQA コマンドレットの命名規則をケバブケースにしたMSの馬鹿を殺してやりたい
補完でタブ押して確定してまたタブ押して確定してってのがめちゃくちゃイライラする
補完でタブ押して確定してまたタブ押して確定してってのがめちゃくちゃイライラする
190デフォルトの名無しさん
2022/03/26(土) 14:56:08.98ID:VSlpRLnL 自分の思い通りじゃないとすぐにイライラしたり殺したくなったりする
191デフォルトの名無しさん
2022/03/26(土) 18:44:07.02ID:MJID/KD0 ちんちんシュッ!シュッ!シュッ!
192デフォルトの名無しさん
2022/03/26(土) 21:08:39.76ID:MzILs1Nj >補完でタブ押して確定してまたタブ押して確定して
状況が分からん
状況が分からん
193デフォルトの名無しさん
2022/03/26(土) 21:42:22.31ID:M1Ul1dov 文字列をPowerShellの文字列リテラルとして出力したいのですが、どうやったら楽ちんに出来ますか?
例えば下記を実行すると
$s = "``i`'`""
function literally {
param ($t)
return $t
}
Write-Output (literally $s)
実行結果は
`i'"
こうなりますが、
"``i`'`""
こうなってくれる function literally は既存の関数にありますか?
例えば下記を実行すると
$s = "``i`'`""
function literally {
param ($t)
return $t
}
Write-Output (literally $s)
実行結果は
`i'"
こうなりますが、
"``i`'`""
こうなってくれる function literally は既存の関数にありますか?
194デフォルトの名無しさん
2022/03/27(日) 06:15:33.62ID:LvwD4OI0195デフォルトの名無しさん
2022/03/27(日) 13:30:01.63ID:mnGGi+fZ >>193
literally が何を意図してるのかわからんが
単一引用符のヒアドキュメントで囲むとか
$s = @'
"``i`'`""
'@
必要なリテラル部分だけ抜き出したファイルを作成してgcで読むとかすりゃいいんじゃね
あとは必要ならInvoke-Expressionなりして使う
まじめにコード内でエスケープ処理とかやろうとしたら一晩掛かるよ
literally が何を意図してるのかわからんが
単一引用符のヒアドキュメントで囲むとか
$s = @'
"``i`'`""
'@
必要なリテラル部分だけ抜き出したファイルを作成してgcで読むとかすりゃいいんじゃね
あとは必要ならInvoke-Expressionなりして使う
まじめにコード内でエスケープ処理とかやろうとしたら一晩掛かるよ
196デフォルトの名無しさん
2022/03/28(月) 00:44:41.31ID:8p5xi9DH まじめなエスケープ処理を10分くらいでできる関数とかないですか
197デフォルトの名無しさん
2022/03/28(月) 00:54:22.58ID:8p5xi9DH --- ここから x.ps1 ---
function x {
$s = (Get-Content -Path 'a.txt')
Write-Output ('$a = ' + "'" + $s + "'")
}
x | Out-File 'a.ps1'
--- ここまで ---
--- a.txt の中身が ---
im.dat
--- ここまで ---
の場合
function x {
$s = (Get-Content -Path 'a.txt')
Write-Output ('$a = ' + "'" + $s + "'")
}
x | Out-File 'a.ps1'
--- ここまで ---
--- a.txt の中身が ---
im.dat
--- ここまで ---
の場合
198デフォルトの名無しさん
2022/03/28(月) 00:57:03.84ID:8p5xi9DH a.ps1 は
$a = 'im.dat'
となって PowerShellで読み込める
--- a.txt の中身が ---
i'm.dat
--- ここまで ---
の場合
a.ps1 は
$a = 'i'm.dat'
となってシンタックスエラーになる。こういう場合のためにエスケープ処理をしたいのです。
$a = 'im.dat'
となって PowerShellで読み込める
--- a.txt の中身が ---
i'm.dat
--- ここまで ---
の場合
a.ps1 は
$a = 'i'm.dat'
となってシンタックスエラーになる。こういう場合のためにエスケープ処理をしたいのです。
199デフォルトの名無しさん
2022/03/28(月) 02:14:50.68ID:vgVAp+/s200デフォルトの名無しさん
2022/03/28(月) 02:28:26.94ID:8p5xi9DH a.txt の内容が下記の場合はエラーになります。
'@.dat
----
いまさら気が付きましたが、やりたいことは、
PowerShellスクリプトをPowerShellで出力したいので、文字列をエスケープしたい。
最初から、こう言えればよかった。
'@.dat
----
いまさら気が付きましたが、やりたいことは、
PowerShellスクリプトをPowerShellで出力したいので、文字列をエスケープしたい。
最初から、こう言えればよかった。
201デフォルトの名無しさん
2022/03/28(月) 07:29:09.01ID:vgVAp+/s >>200
そういうのも想定するなら'@で分割して結合するだけ
これで穴の無さそうなエスケープ処理相当にはなったかな
function x {
$s = Get-Content -Path 'a.txt'
[string[]]$t=$s -split "'@"
for ($i = 0; $i -lt $t.length; $i++) {
if ($i -eq 0) {
'$a = ' + "@'"
} else {
'$a += ' + "`"'@`""
'$a += ' + "@'"
}
$t[$i]
"'@"
}
}
x | Out-File 'a.ps1'
そういうのも想定するなら'@で分割して結合するだけ
これで穴の無さそうなエスケープ処理相当にはなったかな
function x {
$s = Get-Content -Path 'a.txt'
[string[]]$t=$s -split "'@"
for ($i = 0; $i -lt $t.length; $i++) {
if ($i -eq 0) {
'$a = ' + "@'"
} else {
'$a += ' + "`"'@`""
'$a += ' + "@'"
}
$t[$i]
"'@"
}
}
x | Out-File 'a.ps1'
202デフォルトの名無しさん
2022/03/28(月) 08:39:09.99ID:5tj62u6D 文字列リテラルの構文仕様を見るかぎり、
function ConvertTo-StringLiteral ([string] $s) {
'"{0}"' -f ($s -replace '[$"\u201C-\u201E`]', '`$&')
}
でいいのでは。
function x {
$s = Get-Content a.txt
'$a = ' + (ConvertTo-StringLiteral $s)
}
みたいに使う。
function ConvertTo-StringLiteral ([string] $s) {
'"{0}"' -f ($s -replace '[$"\u201C-\u201E`]', '`$&')
}
でいいのでは。
function x {
$s = Get-Content a.txt
'$a = ' + (ConvertTo-StringLiteral $s)
}
みたいに使う。
203デフォルトの名無しさん
2022/03/28(月) 09:30:54.03ID:5tj62u6D >>201
普通の「'」以外のシングルクォート類(*)も、正当なシングルクォート文字なので、
a.txt に「‘@.dat」とか入力されるとエラーになる穴が...。
(*) U+2018、U+2019、U+201A、U+201B
普通の「'」以外のシングルクォート類(*)も、正当なシングルクォート文字なので、
a.txt に「‘@.dat」とか入力されるとエラーになる穴が...。
(*) U+2018、U+2019、U+201A、U+201B
204デフォルトの名無しさん
2022/03/28(月) 20:36:51.74ID:vgVAp+/s205デフォルトの名無しさん
2022/03/29(火) 02:15:34.71ID:ieHzhZh4 >>202
https://www.microsoft.com/en-us/download/details.aspx?id=36389
これを見つけたので 22ページあたりを読むと、シングルクォートで囲む verbatim-string-literal は、割とシンプルで
single-quote-character(普通のシングルクォート+4個) を含む場合に single-quote-character single-quote-character とするので
function ConvertTo-SingleQuotedStringLiteral ([string] $s) {
"'{0}'" -f ($s -replace "['\u2018\u2019\u201A\u201B]", "'$&")
}
こうすればいいのだろうか?
https://www.microsoft.com/en-us/download/details.aspx?id=36389
これを見つけたので 22ページあたりを読むと、シングルクォートで囲む verbatim-string-literal は、割とシンプルで
single-quote-character(普通のシングルクォート+4個) を含む場合に single-quote-character single-quote-character とするので
function ConvertTo-SingleQuotedStringLiteral ([string] $s) {
"'{0}'" -f ($s -replace "['\u2018\u2019\u201A\u201B]", "'$&")
}
こうすればいいのだろうか?
206デフォルトの名無しさん
2022/03/29(火) 02:33:47.96ID:ieHzhZh4 何でインデントついてるんだろと思ったら\u3000でしたか
207202
2022/03/29(火) 09:28:46.66ID:H9URZ70O208デフォルトの名無しさん
2022/03/29(火) 21:51:03.77ID:SKE99kDT209デフォルトの名無しさん
2022/04/04(月) 21:22:25.32ID:ECqCrQfL >>1
$url=$($site="+pj.og.ldn.iakkokA3%etis=q?hcraes/moc.elgoog.www//:sptth".ToCharArray();[Array]::Reverse($site);-join $site)
"ソビエト人","支那人","朝鮮人" | % {start "$url$_";sleep 21}
$url=$($site="+pj.og.ldn.iakkokA3%etis=q?hcraes/moc.elgoog.www//:sptth".ToCharArray();[Array]::Reverse($site);-join $site)
"ソビエト人","支那人","朝鮮人" | % {start "$url$_";sleep 21}
210デフォルトの名無しさん
2022/04/07(木) 22:32:51.33ID:49oapsGv (Get-Date).ToString("M/d") # 4/7
(Get-Date).ToString("M") # 4月7日
(Get-Date).ToString("d") # 2022/04/07
"M"と"d"単体で取れないのは仕様なの?
(Get-Date).ToString("M") # 4月7日
(Get-Date).ToString("d") # 2022/04/07
"M"と"d"単体で取れないのは仕様なの?
211デフォルトの名無しさん
2022/04/07(木) 22:51:48.46ID:UZkBrI19212デフォルトの名無しさん
2022/04/07(木) 23:27:13.95ID:49oapsGv >>211
なるほど。ありがとう
なるほど。ありがとう
213デフォルトの名無しさん
2022/04/13(水) 14:32:54.13ID:Wntan1Ql いえいえ
214デフォルトの名無しさん
2022/04/13(水) 21:32:59.17ID:wBIIYhTi 事務員がこれ使って自動化して評価されるかね?
Excel VBAとかだと認知されてるし動きも分かるからアピールになりそうだけど、これはps1をダブルクリックしたら既に結果が出てるキンクリ状態になるんで何か地味なんだよね
出来ることは多彩なのにさ
Excel VBAとかだと認知されてるし動きも分かるからアピールになりそうだけど、これはps1をダブルクリックしたら既に結果が出てるキンクリ状態になるんで何か地味なんだよね
出来ることは多彩なのにさ
215デフォルトの名無しさん
2022/04/14(木) 08:19:21.43ID:Qn5tHQbB 結果を開いて見せつけてやればよろしいかと
216デフォルトの名無しさん
2022/04/14(木) 16:18:50.55ID:NCtDoq3M キンクリ状態てどういう意味なん
例えばExcel操作の自動化なら最初に$excel.Visible = $true
とでもしとけば同じようにリアルタイムで処理中の動きが出てくるけど
事務員ならいらん仕事押し付けられるのがオチだから隠しとけ
この程度でドヤりたいならIT土方にでも転職しなよ
例えばExcel操作の自動化なら最初に$excel.Visible = $true
とでもしとけば同じようにリアルタイムで処理中の動きが出てくるけど
事務員ならいらん仕事押し付けられるのがオチだから隠しとけ
この程度でドヤりたいならIT土方にでも転職しなよ
217デフォルトの名無しさん
2022/04/14(木) 20:27:06.96ID:PvzsrQHs 事務員がマクロやスクリプトで評価されても給料や時給が上がったりはしないだろ
都合よく使われるだけだよ
退屈な定常業務から抜け出したい動機なら良いのかも
都合よく使われるだけだよ
退屈な定常業務から抜け出したい動機なら良いのかも
218デフォルトの名無しさん
2022/04/14(木) 20:32:25.20ID:PvzsrQHs ×定常業務
○定型業務
○定型業務
219デフォルトの名無しさん
2022/04/14(木) 20:56:37.25ID:gLpPhM76 >>214
レスから知性を感じない
レスから知性を感じない
220デフォルトの名無しさん
2022/04/14(木) 21:57:43.29ID:ICzBofFJ それがパワー・シェルの能力……
ボクがこのps1をダブルクリックした時点で"結果"はもう確定しているッ!!
マクロみたいなトロいもんじゃあないんです
ボクがこのps1をダブルクリックした時点で"結果"はもう確定しているッ!!
マクロみたいなトロいもんじゃあないんです
221214
2022/04/14(木) 22:27:15.00ID:7HZEzgeQ やっぱり評判あんま芳しく無いからやめとくわ
回答してくれた皆さんありがとう
回答してくれた皆さんありがとう
222デフォルトの名無しさん
2022/04/15(金) 01:21:33.96ID:BWy9qJpj >>220
ダブルクリックしたらISEが開いたんだが
ダブルクリックしたらISEが開いたんだが
223デフォルトの名無しさん
2022/04/15(金) 08:51:23.89ID:UtgXyNoL パワーシェル
破壊力 A
スピード B
射程距離 A
持続力 B
精密動作性 E
成長性 E
タイプ 自動操縦型
能力 人が嫌がる仕事をする
To Be Continued…
破壊力 A
スピード B
射程距離 A
持続力 B
精密動作性 E
成長性 E
タイプ 自動操縦型
能力 人が嫌がる仕事をする
To Be Continued…
224デフォルトの名無しさん
2022/04/15(金) 11:34:08.46ID:0ObfuMR0 パワーシェルのスピードは最下位ランクだろ
C#埋め込むなら別だが
C#埋め込むなら別だが
225デフォルトの名無しさん
2022/04/15(金) 11:53:27.02ID:UtgXyNoL Cランクが人並みだからそれよりちょっと速いBランクが妥当
226デフォルトの名無しさん
2022/04/15(金) 12:21:45.82ID:wKBILFEa ウマナミナノネー
227デフォルトの名無しさん
2022/04/15(金) 20:16:25.51ID:k1oDZsjR windowsに標準に入っているってことだけはかなり優遇されてる
228デフォルトの名無しさん
2022/04/15(金) 20:50:36.38ID:6g+y36jy JScript.NETも入っているぞー
229デフォルトの名無しさん
2022/04/15(金) 21:04:54.33ID:k1oDZsjR プログラミングにおける認知度の低さは調べにくいし致命的
230デフォルトの名無しさん
2022/04/15(金) 23:12:56.97ID:41Kz9otF プログラミング言語の人気ランキング、順位変動は縮小傾向にある――RedMonkが調査
https://atmarkit.itmedia.co.jp/ait/articles/2204/13/news040.html
このランキングだとPowerShellは17位だぞ
Rustに勝ってる!
https://atmarkit.itmedia.co.jp/ait/articles/2204/13/news040.html
このランキングだとPowerShellは17位だぞ
Rustに勝ってる!
231デフォルトの名無しさん
2022/04/15(金) 23:31:17.12ID:3ZMsARLO PowerShellはランキングとか関係ないでしょ
PS5止まりで.NET4.8と心中する運命しかない、完全に袋小路の言語だよ
PS5止まりで.NET4.8と心中する運命しかない、完全に袋小路の言語だよ
232デフォルトの名無しさん
2022/04/16(土) 00:54:32.11ID:Zcudz7ky Windowsと共に来たりWindowsと共に滅ぶべし
233デフォルトの名無しさん
2022/04/16(土) 12:02:03.34ID:nVJ4wCm0234デフォルトの名無しさん
2022/04/16(土) 12:30:34.16ID:4vTOoh05 >>231
それってよく聞くけどなんの問題があるの?
Powershellなんてそもそもbetter MS-DOSであり
better WSHでしかないんだからなんの問題もないでしょ
なんか過剰な期待をしてた人がいるの?
それってよく聞くけどなんの問題があるの?
Powershellなんてそもそもbetter MS-DOSであり
better WSHでしかないんだからなんの問題もないでしょ
なんか過剰な期待をしてた人がいるの?
235デフォルトの名無しさん
2022/04/16(土) 12:58:53.88ID:NFUA2B25 そもそもすでにオープンソースなんだし衰退することはあるだろうけど袋小路とか意味わからん
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
- (´・ω・`)おいそこ。そこの貴様だ。へらへらするな。
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
