前スレ
PowerShell -Part 3
https://mevius.5ch.net/test/read.cgi/tech/1539074808/
次スレは>>980が立ててね!!
PowerShell -Part 4
レス数が950を超えています。1000を超えると書き込みができなくなります。
2020/01/01(水) 16:08:31.66ID:4oQ1Kxot
875デフォルトの名無しさん
2021/01/09(土) 09:13:27.43ID:iGxXP/Ic 5.1はメンテしないってことか?
OSにデフォで入ってるバージョンなんだから直せよ
OSにデフォで入ってるバージョンなんだから直せよ
876デフォルトの名無しさん
2021/01/09(土) 09:49:28.96ID:kPw1IBO3 いきなり直したらユーザースクリプトのバグが顕在化したりするだろ
どうでもいいようなスクリプトなら7に上げろよ
どうでもいいようなスクリプトなら7に上げろよ
877デフォルトの名無しさん
2021/01/09(土) 10:38:48.10ID:amtktMoR どうでもいいスクリプトで問題回避できるなら7に上げなくてもいいんじゃね。
878デフォルトの名無しさん
2021/01/09(土) 11:36:00.49ID:KQEfE/JM879デフォルトの名無しさん
2021/01/09(土) 11:45:27.45ID:vKxQ0OMt880デフォルトの名無しさん
2021/01/09(土) 16:15:40.54ID:WaDdsN2m881デフォルトの名無しさん
2021/01/10(日) 04:54:33.84ID:3v4yt86U 以下の表記の意味を教えてください。
void Queue[TResponse](Google.Apis.Requests.IClientServiceRequest request, Google.Apis.Requests.BatchRequest+OnResponse`1[TResponse] callback)
メソッドに角カッコ?や、型指定に+や`1[TResponse]の意味がわかりませんでした。
$batch = New-Object Google.Apis.Requests.BatchRequst($service)
$batch.Queue
で表示される内容です。
void Queue[TResponse](Google.Apis.Requests.IClientServiceRequest request, Google.Apis.Requests.BatchRequest+OnResponse`1[TResponse] callback)
メソッドに角カッコ?や、型指定に+や`1[TResponse]の意味がわかりませんでした。
$batch = New-Object Google.Apis.Requests.BatchRequst($service)
$batch.Queue
で表示される内容です。
882デフォルトの名無しさん
2021/01/10(日) 08:11:25.80ID:a907yL+h クラスのメンバーにクラスがある時は+になるんじゃなかったか
System.Environment+SpecialFolder みたいな
[TResponse]はジェネリックの型引数
`1は型引数を1つ取るって意味
System.Environment+SpecialFolder みたいな
[TResponse]はジェネリックの型引数
`1は型引数を1つ取るって意味
883881
2021/01/10(日) 21:15:33.29ID:3v4yt86U884デフォルトの名無しさん
2021/01/12(火) 16:53:39.85ID:0UGYDHaB pythonに飲み込まれるってマジ?
885デフォルトの名無しさん
2021/01/12(火) 18:35:28.45ID:U7HouJQi pythonが吐血しちゃいますよ
886デフォルトの名無しさん
2021/01/13(水) 11:04:50.14ID:u12/DUzm >>884
え?Pythonから.NET Framework扱えるようになるの?
え?Pythonから.NET Framework扱えるようになるの?
887デフォルトの名無しさん
2021/01/13(水) 12:04:34.41ID:JJnXAm01 知らんけど今はまだ使えないの?
888デフォルトの名無しさん
2021/01/13(水) 12:35:42.75ID:u12/DUzm ironpythonなら
889デフォルトの名無しさん
2021/01/16(土) 08:03:53.11ID:4aouipyb890デフォルトの名無しさん
2021/01/18(月) 22:22:09.29ID:6Ncg8pZo 【D:\】の全てのフォルダやファイルに対して、作成日時や最終アクセス日時などを設定したいのですが、
PS D:\> Get-ChildItem -Path "D:\" | Where-Object { $_ -is [System.IO.FileInfo] } | ForEach-Object { Set-ItemProperty $_.FullName -Name CreationTime -Value "2021/01/01 00:00:00" }
ではエラーが出ます。
何がいけないのでしょうか?
PS D:\> Get-ChildItem -Path "D:\" | Where-Object { $_ -is [System.IO.FileInfo] } | ForEach-Object { Set-ItemProperty $_.FullName -Name CreationTime -Value "2021/01/01 00:00:00" }
ではエラーが出ます。
何がいけないのでしょうか?
891デフォルトの名無しさん
2021/01/18(月) 22:59:36.90ID:Pb59NPOt 例えば特定の一つのファイルやフォルダなら上手く行くとか
パイプを分解してどこでエラーになってるのかを突き止めるとか
丸投げするにしてもエラーメッセージ位は出してあげると答える人も喜ぶと思いますよ
パイプを分解してどこでエラーになってるのかを突き止めるとか
丸投げするにしてもエラーメッセージ位は出してあげると答える人も喜ぶと思いますよ
892デフォルトの名無しさん
2021/01/19(火) 02:44:39.14ID:m3MeBQ6p 1.D:\が存在していない
2.D:\へのアクセス権がない
3.D:\にあるファイルに読み取り専用属性が設定されてるものが混ざってる
どれかな?
Where-Object { $_ -is [System.IO.FileInfo] }抜き、ファイルに限定しないで実行したときは
フォルダへのアクセス時にエクスプローラー開いてると
”別のプロセスで使用されているためアクセスできません”となった(たとえ操作対象のフォルダを開いていなくても)
変更された日時を確認するためにエクスプローラー開いたまま実行してたりする?
2.D:\へのアクセス権がない
3.D:\にあるファイルに読み取り専用属性が設定されてるものが混ざってる
どれかな?
Where-Object { $_ -is [System.IO.FileInfo] }抜き、ファイルに限定しないで実行したときは
フォルダへのアクセス時にエクスプローラー開いてると
”別のプロセスで使用されているためアクセスできません”となった(たとえ操作対象のフォルダを開いていなくても)
変更された日時を確認するためにエクスプローラー開いたまま実行してたりする?
893デフォルトの名無しさん
2021/01/19(火) 21:02:07.64ID:qrtgnbPs # set the target folder path
$targetFolder = 'I:\';
# get all files including files in sub folders
$itemList = Get-ChildItem $targetFolder -Recurse;
foreach($item in $itemList){
$item.CreationTime = '2020/12/21 00:00:00'
}
なスクリプトで実行したらエラーなく出来ました。
お騒がせしてすみませんでした。
$targetFolder = 'I:\';
# get all files including files in sub folders
$itemList = Get-ChildItem $targetFolder -Recurse;
foreach($item in $itemList){
$item.CreationTime = '2020/12/21 00:00:00'
}
なスクリプトで実行したらエラーなく出来ました。
お騒がせしてすみませんでした。
894デフォルトの名無しさん
2021/01/19(火) 23:49:36.84ID:XQEllFmW895デフォルトの名無しさん
2021/01/20(水) 10:29:40.54ID:sOzWFlEJ エクスプローラーとか、バックグラウンドで動いているシステムなどが、
フォルダをロックしていたら、失敗する
だから、タイミングによって、成功したり失敗したりする
読み取りロックは、読み取り同士では共有できるけど、
書き込みロックは、その他すべてと共有できないから、失敗する確率が高い
フォルダをロックしていたら、失敗する
だから、タイミングによって、成功したり失敗したりする
読み取りロックは、読み取り同士では共有できるけど、
書き込みロックは、その他すべてと共有できないから、失敗する確率が高い
896デフォルトの名無しさん
2021/01/25(月) 21:14:40.94ID:PMAucoEc897デフォルトの名無しさん
2021/01/27(水) 19:49:56.64ID:BJM8Dy5y テキストファイルに設定できるストリームって何に使うんすか?
898デフォルトの名無しさん
2021/01/27(水) 21:16:07.96ID:lPCF/h8Q テキストストリームの事なのかNTFSの代替データストリームの事なのか
どちらなんだ
どちらなんだ
899デフォルトの名無しさん
2021/01/27(水) 22:11:57.22ID:qq3K45Kg 代替データストリームはテキストに限った話じゃないのでは
900デフォルトの名無しさん
2021/01/27(水) 22:45:50.85ID:9akTDBYB テキストに限った話ではないけど、質問者が正確に把握してるともまた限らない
901デフォルトの名無しさん
2021/01/29(金) 23:59:43.31ID:t1LR5As2 PoweShellのクラスで、C#と同様にインデクサーを定義することはできますか?
例えば、あるクラスのインスタンス$hogeに対して
$hoge[$i] という感じで添字でアクセスしたいです。
例えば、あるクラスのインスタンス$hogeに対して
$hoge[$i] という感じで添字でアクセスしたいです。
902デフォルトの名無しさん
2021/01/31(日) 14:37:31.38ID:jsWOzGKR C#の演算子オーバーロードがPSで使えるかと同じ無意味な質問
903デフォルトの名無しさん
2021/01/31(日) 16:01:58.79ID:sgLd3qg+ >>902
使えるの?
使えるの?
904デフォルトの名無しさん
2021/01/31(日) 17:07:09.19ID:Ti7TRi+9905デフォルトの名無しさん
2021/01/31(日) 17:24:57.96ID:x4IKZ5QX そのファイルに付属させたい情報を一緒にいれておくということだろう
ソースだったら、開発秘話とか入れとけば?
ソースだったら、開発秘話とか入れとけば?
906デフォルトの名無しさん
2021/01/31(日) 17:26:58.51ID:x4IKZ5QX あと自分の写真とか連絡先とかプロフィールを入れとけばいいかもW
907デフォルトの名無しさん
2021/01/31(日) 19:01:56.87ID:Ti7TRi+9908901
2021/01/31(日) 19:31:38.13ID:yFPHlREj >>902
PowerShellでも.Netの
コレクションクラスを使えますので、
インデクサーを使うこと自体はできますよね?
同様のことをユーザー定義クラスで実現できないかと思ったのですが、
無意味でしょうか…
PowerShellでも.Netの
コレクションクラスを使えますので、
インデクサーを使うこと自体はできますよね?
同様のことをユーザー定義クラスで実現できないかと思ったのですが、
無意味でしょうか…
909デフォルトの名無しさん
2021/01/31(日) 20:11:33.10ID:IDCaHEld910デフォルトの名無しさん
2021/02/01(月) 11:36:09.24ID:XDbQ82ak >>909
結局何に使うのか言ってないじゃん
結局何に使うのか言ってないじゃん
911デフォルトの名無しさん
2021/02/05(金) 00:48:27.75ID:a81hUa+F PowerShellのパイプやリダイレクトは仕様が良くないね。
エンコードせずにバイナリデータのままパイプする従来の方法も選べたほうが良かったね。
エンコードせずにバイナリデータのままパイプする従来の方法も選べたほうが良かったね。
912デフォルトの名無しさん
2021/02/05(金) 14:45:47.08ID:PbAzOwWf cmd /c foo `| bar `> baz
とでもしておけ
とでもしておけ
913デフォルトの名無しさん
2021/02/05(金) 21:20:19.10ID:FdcfXC45914デフォルトの名無しさん
2021/02/06(土) 08:02:58.77ID:xZe5l+zL パイプを使いたいんだよ
915デフォルトの名無しさん
2021/02/06(土) 09:37:27.62ID:ya6+Y4aC パイプカットするの?
916デフォルトの名無しさん
2021/02/06(土) 14:28:17.57ID:0arkAH5a >>914
encoding byteがどういう型が返るか示しただけでもちろんパイプにも使えるけど
encoding byteがどういう型が返るか示しただけでもちろんパイプにも使えるけど
917デフォルトの名無しさん
2021/02/06(土) 23:58:30.54ID:5Ze23T9D >>912
`| や`>が解説されているマイクロソフト公式ページはどこになりますか?
検索キーワードが記号ばかりなので探し方が分からず困っております。
>>913
私の環境では、以下のエラーが出て動きませんでした。
Get-Content: Cannot process argument transformation on parameter 'Encoding'.
'byte' is not a supported encoding name. For information on defining a custom encoding,
see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')
`| や`>が解説されているマイクロソフト公式ページはどこになりますか?
検索キーワードが記号ばかりなので探し方が分からず困っております。
>>913
私の環境では、以下のエラーが出て動きませんでした。
Get-Content: Cannot process argument transformation on parameter 'Encoding'.
'byte' is not a supported encoding name. For information on defining a custom encoding,
see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')
918デフォルトの名無しさん
2021/02/07(日) 01:02:44.55ID:hwDwbBnD919デフォルトの名無しさん
2021/02/07(日) 01:34:59.08ID:IiZq+u+t >>918
具体的なURLはどこになりますか?
具体的なURLはどこになりますか?
920デフォルトの名無しさん
2021/02/07(日) 01:38:10.26ID:IiZq+u+t >>918
検索にbashの知識が必要というのは具体的にどういう意味ですか?
検索にbashの知識が必要というのは具体的にどういう意味ですか?
921デフォルトの名無しさん
2021/02/07(日) 01:46:34.08ID:IiZq+u+t922デフォルトの名無しさん
2021/02/07(日) 07:11:26.49ID:jVPjdJHk @パターン1
$data = @('red','green','blue')
if ( $data -ne 'green' )
{
'greenはありません'
}
greenはありません
Aパターン2
$data = @('red','green','blue')
if ( $data -ne 'pueple' )
{
'greenはありません'
}
greenはありません
両方とも同じ結果を返してしまいます。
配列と比較して、無かったらtrue、あったらfalseみたいな書き方ってありませんか?
イメージとしては
if ( $data.notContains('green'))
みたいな書き方です。
用としては、if ( $data.Contains('green'))で足りるのですが、
気持ちの問題として、無かったらtrue、あったらfalseという書き方をしたいです。
よろしくお願いいたします。
$data = @('red','green','blue')
if ( $data -ne 'green' )
{
'greenはありません'
}
greenはありません
Aパターン2
$data = @('red','green','blue')
if ( $data -ne 'pueple' )
{
'greenはありません'
}
greenはありません
両方とも同じ結果を返してしまいます。
配列と比較して、無かったらtrue、あったらfalseみたいな書き方ってありませんか?
イメージとしては
if ( $data.notContains('green'))
みたいな書き方です。
用としては、if ( $data.Contains('green'))で足りるのですが、
気持ちの問題として、無かったらtrue、あったらfalseという書き方をしたいです。
よろしくお願いいたします。
923デフォルトの名無しさん
2021/02/07(日) 09:44:27.16ID:jX/y7Db/ >>922
> 両方とも同じ結果を返してしまいます。
まず
$data = @('red','green','blue')
$data -ne 'green'
で何が戻ってくるか確認すればなぜそう言うふうに動くかわかると思う
> 気持ちの問題として、無かったらtrue、あったらfalseという書き方をしたいです。
どうしても-eqとか使いたい場合、俺なら($data -eq 'green').Count == 0って書くかな
どう見ても$data.Contains('green')の方がわかりやすいと思うけど
> 両方とも同じ結果を返してしまいます。
まず
$data = @('red','green','blue')
$data -ne 'green'
で何が戻ってくるか確認すればなぜそう言うふうに動くかわかると思う
> 気持ちの問題として、無かったらtrue、あったらfalseという書き方をしたいです。
どうしても-eqとか使いたい場合、俺なら($data -eq 'green').Count == 0って書くかな
どう見ても$data.Contains('green')の方がわかりやすいと思うけど
924デフォルトの名無しさん
2021/02/07(日) 09:58:10.78ID:fgGFki9a $data = @('red','green','blue')
if (not ($data -eq 'green')) {}
if (not ($data.Contains('green'))) {}
if (not ($data -contains 'green')) {}
if ($data -notcontains 'green') {}
if ('green' -notin $data) {}
-eq演算子はフィルタとして働くのでここでの用法は微妙
-in系の演算子は配列が大きいとオーバーヘッドが大きいらしい
if (not ($data -eq 'green')) {}
if (not ($data.Contains('green'))) {}
if (not ($data -contains 'green')) {}
if ($data -notcontains 'green') {}
if ('green' -notin $data) {}
-eq演算子はフィルタとして働くのでここでの用法は微妙
-in系の演算子は配列が大きいとオーバーヘッドが大きいらしい
925デフォルトの名無しさん
2021/02/07(日) 09:59:45.82ID:fgGFki9a 否定をtrueにするってどういうことだろ
$colors = @('red','green','blue')
$found = $data -contains 'green'
if ($found) {
} else {
}
なら自然に読み下せる
ここで$notFoundという変数を使われると気になる
if (not $found) {
# 先に書いておきたい処理
} else {
# 長々とした本処理
}
としたいという趣旨ならわかる
$colors = @('red','green','blue')
$found = $data -contains 'green'
if ($found) {
} else {
}
なら自然に読み下せる
ここで$notFoundという変数を使われると気になる
if (not $found) {
# 先に書いておきたい処理
} else {
# 長々とした本処理
}
としたいという趣旨ならわかる
926デフォルトの名無しさん
2021/02/07(日) 10:03:05.78ID:fgGFki9a 変数名を変え忘れたので訂正
$found = $colors -contains 'green'
$found = $colors -contains 'green'
927デフォルトの名無しさん
2021/02/07(日) 10:18:17.21ID:jVPjdJHk >>923-925
レスありがとうございます。
> 否定をtrueにするってどういうことだろ
> どう見ても$data.Contains('green')の方がわかりやすいと思うけど
$exec_shinai_jikan=@('01','02','03')
$imananji=Get-Date -Format HH
if ($exec_shinai_jikan -notcontains $imananji){
"実行するよ"
} else {
"実行しないよ"
}
実際のコード(一部)はこれです。変数名のセンスが独特ですよね・・(By 開発の人、私は開発じゃないです)といわれているので
出すのが恥ずかしかったんです。混乱を生んだようでして申し訳ない。
>で何が戻ってくるか確認すればなぜそう言うふうに動くかわかると思う
・0か0を超える値か
・nullかnullを除く何らかの値か
でtrue or falseが決まる感じでしょうか?
-notって、-notだけじゃ赤傍線引かれるけどなにがだめなんだと思ったら、-not〜って表現があったんですね。
ありがとうございます。
レスありがとうございます。
> 否定をtrueにするってどういうことだろ
> どう見ても$data.Contains('green')の方がわかりやすいと思うけど
$exec_shinai_jikan=@('01','02','03')
$imananji=Get-Date -Format HH
if ($exec_shinai_jikan -notcontains $imananji){
"実行するよ"
} else {
"実行しないよ"
}
実際のコード(一部)はこれです。変数名のセンスが独特ですよね・・(By 開発の人、私は開発じゃないです)といわれているので
出すのが恥ずかしかったんです。混乱を生んだようでして申し訳ない。
>で何が戻ってくるか確認すればなぜそう言うふうに動くかわかると思う
・0か0を超える値か
・nullかnullを除く何らかの値か
でtrue or falseが決まる感じでしょうか?
-notって、-notだけじゃ赤傍線引かれるけどなにがだめなんだと思ったら、-not〜って表現があったんですね。
ありがとうございます。
928デフォルトの名無しさん
2021/02/07(日) 10:22:55.16ID:5sEA4G4p929デフォルトの名無しさん
2021/02/07(日) 10:24:14.00ID:fgGFki9a なるほどそういう感じか
-not演算子のハイフン書き忘れてた
ごめんね
-not演算子のハイフン書き忘れてた
ごめんね
930デフォルトの名無しさん
2021/02/07(日) 10:26:29.15ID:fgGFki9a >>923
($data -eq 'green').Count -eq 0
これってgreenが含まれない場合は最初の-eq演算による絞り込み結果が$nullになって
ぬるぽになるかと思いきや$null.Countの呼び出しは特例的に0を返すんやね
またPowershellの妙な癖を覚えてしまった
($data -eq 'green').Count -eq 0
これってgreenが含まれない場合は最初の-eq演算による絞り込み結果が$nullになって
ぬるぽになるかと思いきや$null.Countの呼び出しは特例的に0を返すんやね
またPowershellの妙な癖を覚えてしまった
931デフォルトの名無しさん
2021/02/07(日) 11:48:29.36ID:jX/y7Db/ >>930
> これってgreenが含まれない場合は最初の-eq演算による絞り込み結果が$nullになって
ならないよ、単に空の配列になるだけ
gm -inputobject ($data -eq 'yellow')
とかやればわかる
> これってgreenが含まれない場合は最初の-eq演算による絞り込み結果が$nullになって
ならないよ、単に空の配列になるだけ
gm -inputobject ($data -eq 'yellow')
とかやればわかる
932デフォルトの名無しさん
2021/02/07(日) 12:10:49.69ID:fgGFki9a933デフォルトの名無しさん
2021/02/07(日) 13:45:02.08ID:hwDwbBnD934デフォルトの名無しさん
2021/02/07(日) 20:57:33.01ID:rt2m338a >>913,917
6.0で仕様変更された
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/breaking-changes-ps6?view=powershell-7.1#unify-cmdlets-with-parameter--encoding-to-be-of-type-systemtextencoding-5080
-Encoding の値 Byteはファイルシステム プロバイダーのコマンドレットから削除されました。 新しいパラメーター -AsByteStream を使用して、入力としてバイト ストリームが必要なこと、あるいは出力がバイト ストリームであることを指定してください。
6.0で仕様変更された
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/breaking-changes-ps6?view=powershell-7.1#unify-cmdlets-with-parameter--encoding-to-be-of-type-systemtextencoding-5080
-Encoding の値 Byteはファイルシステム プロバイダーのコマンドレットから削除されました。 新しいパラメーター -AsByteStream を使用して、入力としてバイト ストリームが必要なこと、あるいは出力がバイト ストリームであることを指定してください。
935デフォルトの名無しさん
2021/02/10(水) 10:00:24.88ID:hefdb5Yb 可変長配列数?的なものの実現方法を教えてください。
CSVを以下の通り加工したいのですが、
1554412,A,B,C,D
2176944,D,C,E,F,G,H,I,J
4887447,F,H,J,A,K
こんな感じのカンマ区切りcsvを
1554412,A
1554412,B
1554412,C
1554412,D
以下同じパターン
で成形したいのです。
csv区切り文字は必ずカンマで、
フィールド数は行により異なります。
行を読み込んで、配列に入れて〜、配列の最初のフィールドを入れて〜
とぼんやり想像しているのですが、「個数が定まっていない行を、配列に入れる方法」が想像つきません。
可変長配列数?的なものの実現方法を教えてください。
CSVを以下の通り加工したいのですが、
1554412,A,B,C,D
2176944,D,C,E,F,G,H,I,J
4887447,F,H,J,A,K
こんな感じのカンマ区切りcsvを
1554412,A
1554412,B
1554412,C
1554412,D
以下同じパターン
で成形したいのです。
csv区切り文字は必ずカンマで、
フィールド数は行により異なります。
行を読み込んで、配列に入れて〜、配列の最初のフィールドを入れて〜
とぼんやり想像しているのですが、「個数が定まっていない行を、配列に入れる方法」が想像つきません。
可変長配列数?的なものの実現方法を教えてください。
936デフォルトの名無しさん
2021/02/10(水) 18:12:00.38ID:hRqw8VTE 2つ目のカンマ or 改行まで読んでから要素数2の固定長配列に入れるのはどうですか。
エレガントな方法ではないと思うので、他の方の意見も参考にしてください
エレガントな方法ではないと思うので、他の方の意見も参考にしてください
937デフォルトの名無しさん
2021/02/10(水) 18:19:41.40ID:hRqw8VTE あ、A, D, FじゃなくてA, B, Cでしたか。
マルチバリューカラムになっているのを正規化したいんですね。
最初の一つ目だけ取るのと勘違いしてました。
1. 一行読んでstring
2. カンマでstring.splitしてstring[]
3. [1]からstring.lengthまでを、[0]とstring.joinして、string[]
4. 全行ループ
これでどうですか
マルチバリューカラムになっているのを正規化したいんですね。
最初の一つ目だけ取るのと勘違いしてました。
1. 一行読んでstring
2. カンマでstring.splitしてstring[]
3. [1]からstring.lengthまでを、[0]とstring.joinして、string[]
4. 全行ループ
これでどうですか
938デフォルトの名無しさん
2021/02/10(水) 19:17:13.97ID:JrOSOdLx PowerShell っぽくならこんな感じかな
'1554412,A,B,C,D', '2176944,D,C,E,F,G,H,I,J', '4887447,F,H,J,A,K' | %{
$a, $b = $_ -split ',', 2
$b -split ',' | %{ "$a,$_" }
}
'1554412,A,B,C,D', '2176944,D,C,E,F,G,H,I,J', '4887447,F,H,J,A,K' | %{
$a, $b = $_ -split ',', 2
$b -split ',' | %{ "$a,$_" }
}
939デフォルトの名無しさん
2021/02/10(水) 19:51:01.55ID:hRqw8VTE どうしてこれ動かないの?
$fが更新されない
スマホでコード書くの疲れたんで、誰か教えて下さい。
https://tio.run/##TY3LCsIwEEX38xVDyEJxLEaiVUHw/cYfkC5EUluoqTRFreK316kguBm4hzn3XtO7yVxkkqQs5cPhEEcCVKejtWrTmCY0pRm0ld/ta00zTnNa0JJWtKYN6F7P19pnsqINf29BjLDprkmcozjM7S3OUnsxNg8Gg72572JrBECYZuZ4irAmHxhb5NU6vkAW1Tijn08CZFihwh1awZ9VfC2myvM4OW9n7DmPmqoefIuelRRio6rgKwtG8IZ3WX4A
$fが更新されない
スマホでコード書くの疲れたんで、誰か教えて下さい。
https://tio.run/##TY3LCsIwEEX38xVDyEJxLEaiVUHw/cYfkC5EUluoqTRFreK316kguBm4hzn3XtO7yVxkkqQs5cPhEEcCVKejtWrTmCY0pRm0ld/ta00zTnNa0JJWtKYN6F7P19pnsqINf29BjLDprkmcozjM7S3OUnsxNg8Gg72572JrBECYZuZ4irAmHxhb5NU6vkAW1Tijn08CZFihwh1awZ9VfC2myvM4OW9n7DmPmqoefIuelRRio6rgKwtG8IZ3WX4A
940デフォルトの名無しさん
2021/02/10(水) 21:07:38.33ID:bnTPmcqs941デフォルトの名無しさん
2021/02/10(水) 21:45:54.25ID:JrOSOdLx942デフォルトの名無しさん
2021/02/10(水) 21:58:58.82ID:hefdb5Yb >>937
とりあえず用は足せました。が、多分ご紹介の内容と全然違うことをやってると思います。
レスの内容が半分分かりませんでした。
>3. [1]からstring.lengthまでを
ここが猛烈にヒントになってこんな感じにしました。
foreach ($l in Get-Content C:\temp\test.txt) {
$l=$l.Split(",")
1..(($l.Length) - 1) | % {write-host ($l[0],$l[$_]) }
}
サンプルのコードをいただけると幸いです。
>>938
これも無事動きました。ありがとうございます。
%ってのを知りませんでした。
Powershell難しすぎです。
勉強してるんですが、正直心折れそうです。
bashはそこそこ使えるので行けるだろと思ってたんですが、ナメてました。
死にそうです。
とりあえず用は足せました。が、多分ご紹介の内容と全然違うことをやってると思います。
レスの内容が半分分かりませんでした。
>3. [1]からstring.lengthまでを
ここが猛烈にヒントになってこんな感じにしました。
foreach ($l in Get-Content C:\temp\test.txt) {
$l=$l.Split(",")
1..(($l.Length) - 1) | % {write-host ($l[0],$l[$_]) }
}
サンプルのコードをいただけると幸いです。
>>938
これも無事動きました。ありがとうございます。
%ってのを知りませんでした。
Powershell難しすぎです。
勉強してるんですが、正直心折れそうです。
bashはそこそこ使えるので行けるだろと思ってたんですが、ナメてました。
死にそうです。
943デフォルトの名無しさん
2021/02/10(水) 22:00:44.14ID:hefdb5Yb >>942
自己レスすいません。
これも結局、
write-host ($l[0],$l[$_]) }
で間をカンマ区切りにしたかったんですけど、
1時間手を変え品を変えで結局ダメでした。
何が悪いんでしょうか。
自己レスすいません。
これも結局、
write-host ($l[0],$l[$_]) }
で間をカンマ区切りにしたかったんですけど、
1時間手を変え品を変えで結局ダメでした。
何が悪いんでしょうか。
944デフォルトの名無しさん
2021/02/10(水) 22:12:55.91ID:hefdb5Yb 何度もすいません。
write-hostで標準で区切り文字が半角スペースになってるという事実がやっとわかりました。
{write-host -Separator "," $l[0]$l[$_]}
で無事に希望の出力を得ることができました。
ありがとうございました。
write-hostで標準で区切り文字が半角スペースになってるという事実がやっとわかりました。
{write-host -Separator "," $l[0]$l[$_]}
で無事に希望の出力を得ることができました。
ありがとうございました。
945デフォルトの名無しさん
2021/02/11(木) 00:08:14.80ID:lj0aoxL+ すっきり書けなくてもどかしい
$csv -split "\r\n" | % { $a = $_ -split ','; $a[1..($a.Count - 1)] } | % { $a[0], $_ -join ',' }
$csv -split "\r\n" | % { $a = $_ -split ','; $a[1..($a.Count - 1)] } | % { $a[0], $_ -join ',' }
946デフォルトの名無しさん
2021/02/11(木) 19:38:29.26ID:rrBqcjKj >>939
newlineにクォートつけてたわw
>> 940, 941 さんthx
一応quote外した結果。
https://tio.run/##TY3dCoJAEIXv5ykG2YuiUdrY0oKg/396gfAiYk3B1nClsujZbYwuuhk4H/Odc83uOrexTtOqEg@LQxw5ILtdpWSHxjShKc2gI/1eXymacZrTgpa0ojVtQAWBr5TPZEUb/t6CM0LXXtOkwMPc3JI8MxdtinAw2Ov7LjEaIMpyfTzF2BAPTAzyZhNfIMp6mtHPdsgBEdWotId2@GeVX4up9DxO1ttpcy5iVzbDb9GzliJs1RV8RckI3vCuqg8
newlineにクォートつけてたわw
>> 940, 941 さんthx
一応quote外した結果。
https://tio.run/##TY3dCoJAEIXv5ykG2YuiUdrY0oKg/396gfAiYk3B1nClsujZbYwuuhk4H/Odc83uOrexTtOqEg@LQxw5ILtdpWSHxjShKc2gI/1eXymacZrTgpa0ojVtQAWBr5TPZEUb/t6CM0LXXtOkwMPc3JI8MxdtinAw2Ov7LjEaIMpyfTzF2BAPTAzyZhNfIMp6mtHPdsgBEdWotId2@GeVX4up9DxO1ttpcy5iVzbDb9GzliJs1RV8RckI3vCuqg8
947デフォルトの名無しさん
2021/02/12(金) 09:16:23.07ID:q/2+I+Zd $?で直前のコマンドの実行結果を知ることができますが、
直前に実行したコマンドのPIDを知る方法ってありませんか?
Start-Process -FilePath c:\bin\command.exe -ArgumentList 1
$cmd1pid=get-chokuzenn-pid
$cmd1pid
78968
Start-Process -FilePath c:\bin\command.exe -ArgumentList 2
$cmd1pid=get-chokuzenn-pid
$cmd1pid
4292
実際に動かしたいのは、ttpmacro.exe(Teratermのマクロ)です。
Teratemマクロで外部の機器にsshで接続して、ssh接続のログの内容を見て
そのプロセスを終了させるか判断したいと思っております
書こうとしているスクリプトを動かす時点で、1個もTeratermが動いていないなら、
Get-Processでなんとかなると思うのですが、上記スクリプトを実行する時点で
ほかのTeratermが動いている可能性があり、それを間違って死なすわけにはいかず、
Powershellスクリプト内で、Start-Processなりで動かした、直前のプロセスのIDを知る方法があればと思い相談させていただきます
すいません、よろしくお願いいたします。
直前に実行したコマンドのPIDを知る方法ってありませんか?
Start-Process -FilePath c:\bin\command.exe -ArgumentList 1
$cmd1pid=get-chokuzenn-pid
$cmd1pid
78968
Start-Process -FilePath c:\bin\command.exe -ArgumentList 2
$cmd1pid=get-chokuzenn-pid
$cmd1pid
4292
実際に動かしたいのは、ttpmacro.exe(Teratermのマクロ)です。
Teratemマクロで外部の機器にsshで接続して、ssh接続のログの内容を見て
そのプロセスを終了させるか判断したいと思っております
書こうとしているスクリプトを動かす時点で、1個もTeratermが動いていないなら、
Get-Processでなんとかなると思うのですが、上記スクリプトを実行する時点で
ほかのTeratermが動いている可能性があり、それを間違って死なすわけにはいかず、
Powershellスクリプト内で、Start-Processなりで動かした、直前のプロセスのIDを知る方法があればと思い相談させていただきます
すいません、よろしくお願いいたします。
948デフォルトの名無しさん
2021/02/12(金) 09:17:40.74ID:q/2+I+Zd test.ps1
Start-Process -FilePath c:\bin\command.exe -ArgumentList 1
$cmd1pid=get-chokuzenn-pid
$cmd1pid
78968
Start-Process -FilePath c:\bin\command.exe -ArgumentList 2
$cmd2pid=get-chokuzenn-pid
$cmd2pid
4292
すいません、スクリプトの例に誤りがありました
訂正します
Start-Process -FilePath c:\bin\command.exe -ArgumentList 1
$cmd1pid=get-chokuzenn-pid
$cmd1pid
78968
Start-Process -FilePath c:\bin\command.exe -ArgumentList 2
$cmd2pid=get-chokuzenn-pid
$cmd2pid
4292
すいません、スクリプトの例に誤りがありました
訂正します
949デフォルトの名無しさん
2021/02/12(金) 09:57:59.46ID:JWXF4JEZ950デフォルトの名無しさん
2021/02/12(金) 10:15:49.19ID:JXvYdGCL 引数に -PassThru を付けて戻り値からidで取れないかな?
951デフォルトの名無しさん
2021/02/12(金) 11:17:25.75ID:jxDcSv/l952デフォルトの名無しさん
2021/02/12(金) 13:51:19.53ID:q/2+I+Zd953デフォルトの名無しさん
2021/02/12(金) 13:58:44.73ID:aXMNNeBu すばらしい
954デフォルトの名無しさん
2021/02/13(土) 18:04:24.59ID:elIMNXvv 音楽プレーヤーで MP3 ファイルをシャッフル再生させたいので、
dir /n /-b /s *.mp3 > playlist.txt
の結果をランダムに入れ替えるにはどうすればいいでしょうか?
(乱数で再生する行を求めると同じ曲がつづくかもしれないのでシャッフルにしたい。)
dir /n /-b /s *.mp3 > playlist.txt
の結果をランダムに入れ替えるにはどうすればいいでしょうか?
(乱数で再生する行を求めると同じ曲がつづくかもしれないのでシャッフルにしたい。)
955デフォルトの名無しさん
2021/02/13(土) 19:45:47.08ID:PYtZn7CJ956デフォルトの名無しさん
2021/02/13(土) 20:59:17.73ID:9JYy97c0 Sort-Object {Get-Random}じゃあかんの?
957デフォルトの名無しさん
2021/02/13(土) 21:06:22.08ID:PYtZn7CJ958デフォルトの名無しさん
2021/02/13(土) 21:14:23.98ID:D/l9Txdy 自分の音楽コレクションのプレイリスト作る要件なら速度は別にと思わなくもない
5分とか掛かるならちょとやだけど
5分とか掛かるならちょとやだけど
959デフォルトの名無しさん
2021/02/13(土) 21:58:32.75ID:WEbw7iAW プレイリストのランダム再生機能ぐらい大抵のプレイヤーに付いてるだろうに
960デフォルトの名無しさん
2021/02/13(土) 22:34:07.74ID:XvWS5Qrl >>957 のリンク先のコードで質問です
勉強のためちょこちょこ編集してみたところ、
「なんでこれで変数の中がランダムにおきかわるの?」と疑問がわきました
$r = @(1,2,3,4,5,6,7,8,9,10)
$r=($r | sort -Property @{Exp={[Guid]::NewGuid()}})
$r
$foo = @(1,2,3,4,5,6,7,8,9,10)
$foo[0] = $foo | sort -prop @{Exp={[Guid]::NewGuid()}}
$foo[0]
前者のように、$rの中身を $r | sort -Prop〜で置き換えるというのなら納得がいくんですが、
なぜ、後者のように、書いてもランダムになるのかが納得いきません
変数定義はパイプの前の話で、どうしてそれがパイプ先の、ランダムにする操作で置き換わるのでしょうか。
勉強のためちょこちょこ編集してみたところ、
「なんでこれで変数の中がランダムにおきかわるの?」と疑問がわきました
$r = @(1,2,3,4,5,6,7,8,9,10)
$r=($r | sort -Property @{Exp={[Guid]::NewGuid()}})
$r
$foo = @(1,2,3,4,5,6,7,8,9,10)
$foo[0] = $foo | sort -prop @{Exp={[Guid]::NewGuid()}}
$foo[0]
前者のように、$rの中身を $r | sort -Prop〜で置き換えるというのなら納得がいくんですが、
なぜ、後者のように、書いてもランダムになるのかが納得いきません
変数定義はパイプの前の話で、どうしてそれがパイプ先の、ランダムにする操作で置き換わるのでしょうか。
961デフォルトの名無しさん
2021/02/13(土) 22:48:16.31ID:PYtZn7CJ >>960
やってることは同じで結果が単に$foo[0]に入ってるだけ
$foo[1]~$foo[9] の内容は変わってないはず
ちなみに置き換えてるわけじゃなくて新しい配列を作ってそれを$rとか$foo[0]に入れてる
やってることは同じで結果が単に$foo[0]に入ってるだけ
$foo[1]~$foo[9] の内容は変わってないはず
ちなみに置き換えてるわけじゃなくて新しい配列を作ってそれを$rとか$foo[0]に入れてる
962デフォルトの名無しさん
2021/02/13(土) 22:59:06.67ID:XvWS5Qrl >>961
ありがとうございます
書き方が違うけど処理が同じというとらえ方でいいですか?
"パターン1"
$foo = @(1,2,3,4,5,6,7,8,9,10)
$foo=($foo | sort -prop @{Exp={[Guid]::NewGuid()}})
$foo
"パターン2"
$foo = @(1,2,3,4,5,6,7,8,9,10)
$foo = $foo | sort -prop @{Exp={[Guid]::NewGuid()}}
$foo
パターン1の書き方違いが、パターン2のようなとらえ方でいいでしょうか?
ありがとうございます
書き方が違うけど処理が同じというとらえ方でいいですか?
"パターン1"
$foo = @(1,2,3,4,5,6,7,8,9,10)
$foo=($foo | sort -prop @{Exp={[Guid]::NewGuid()}})
$foo
"パターン2"
$foo = @(1,2,3,4,5,6,7,8,9,10)
$foo = $foo | sort -prop @{Exp={[Guid]::NewGuid()}}
$foo
パターン1の書き方違いが、パターン2のようなとらえ方でいいでしょうか?
963デフォルトの名無しさん
2021/02/13(土) 23:33:24.56ID:PYtZn7CJ964954
2021/02/13(土) 23:36:43.19ID:elIMNXvv Get-ChildItem -path d:\ -filter *.mp3 -recurse | foreach {$_.FullName} | sort {Get-Random}
や、
Get-ChildItem -path d:\ -filter *.mp3 -recurse | foreach {$_.FullName} | sort -prop @{Exp={[Guid]::NewGuid()}}
でうまくいきそうです。 ありがとうございました。
や、
Get-ChildItem -path d:\ -filter *.mp3 -recurse | foreach {$_.FullName} | sort -prop @{Exp={[Guid]::NewGuid()}}
でうまくいきそうです。 ありがとうございました。
965デフォルトの名無しさん
2021/02/14(日) 00:07:20.96ID:rA0IJrKX966デフォルトの名無しさん
2021/02/14(日) 00:22:33.69ID:D24G58JB967デフォルトの名無しさん
2021/02/14(日) 00:28:18.02ID:D24G58JB968デフォルトの名無しさん
2021/02/19(金) 08:22:42.85ID:islL1Ifn Announcing the PowerShell Community Blog
https://devblogs.microsoft.com/powershell-community/announcing-the-powershell-community-blog/
https://devblogs.microsoft.com/powershell-community/announcing-the-powershell-community-blog/
969デフォルトの名無しさん
2021/02/23(火) 08:20:29.72ID:XBzTqCMZ posh-git と GetChildItemColor
でダイブましになった
他にもおすすめあったらおせーて!
でダイブましになった
他にもおすすめあったらおせーて!
970デフォルトの名無しさん
2021/02/23(火) 20:50:03.67ID:8GGn/OTs GetChildItemColorを入れるとシンボリックリンクのリンク先のパスが表示されなくなるのがクソ
971デフォルトの名無しさん
2021/03/02(火) 00:20:13.77ID:NQgDi+il #test.ps1
param([array]$foo)
echo ('$ARGS[0]' +':'+ $ARGS[0])
echo ('$foo[0]' +':'+ $foo[0])
echo ('$foo[1]' +':'+ $foo[1])
echo ('$foo[2]' +':'+ $foo[2])
PS> .\test.ps1 aaa -foo bbb,ccc,ddd
$ARGS[0]:aaa
$foo[0]:bbb
$foo[1]:ccc
$foo[2]:ddd
PS> .\test.ps1 aaa -bar bbb,ccc,ddd
$ARGS[0]:-bar
$foo[0]:aaa
$foo[1]:
$foo[2]:
PS C:\script>
PS> \test.ps1 aaa
$ARGS[0]:
$foo[0]:aaa
$foo[1]:
$foo[2]:
@引数やパラメータの数、パラメーター名などのエラーをチェックする方法を教えてください。
Aパラメータの区切りをカンマで無くスペースにする方法があれば教えてください。
ググってみたのですが、ググり方が悪いのか、見つからず苦しんでおります
param([array]$foo)
echo ('$ARGS[0]' +':'+ $ARGS[0])
echo ('$foo[0]' +':'+ $foo[0])
echo ('$foo[1]' +':'+ $foo[1])
echo ('$foo[2]' +':'+ $foo[2])
PS> .\test.ps1 aaa -foo bbb,ccc,ddd
$ARGS[0]:aaa
$foo[0]:bbb
$foo[1]:ccc
$foo[2]:ddd
PS> .\test.ps1 aaa -bar bbb,ccc,ddd
$ARGS[0]:-bar
$foo[0]:aaa
$foo[1]:
$foo[2]:
PS C:\script>
PS> \test.ps1 aaa
$ARGS[0]:
$foo[0]:aaa
$foo[1]:
$foo[2]:
@引数やパラメータの数、パラメーター名などのエラーをチェックする方法を教えてください。
Aパラメータの区切りをカンマで無くスペースにする方法があれば教えてください。
ググってみたのですが、ググり方が悪いのか、見つからず苦しんでおります
972デフォルトの名無しさん
2021/03/02(火) 00:22:05.89ID:NQgDi+il >>971
行数制限に引っかかったので分割します。
@は引数〇個、パラメーター名foo、パラメーターfooの数、fooが1個以上(0はだめ)というのをチェックしたいです。
なにとぞよろしくお願いいたします。
行数制限に引っかかったので分割します。
@は引数〇個、パラメーター名foo、パラメーターfooの数、fooが1個以上(0はだめ)というのをチェックしたいです。
なにとぞよろしくお願いいたします。
973デフォルトの名無しさん
2021/03/02(火) 10:00:39.98ID:TaWWQOJL >>972
about_Functions_Advanced_Parameters
https://docs.microsoft.com/ja-jp/previous-versions/windows/powershell-scripting/hh847743(v=wps.640)
about_Functions_Advanced_Parameters
https://docs.microsoft.com/ja-jp/previous-versions/windows/powershell-scripting/hh847743(v=wps.640)
974デフォルトの名無しさん
2021/03/02(火) 23:49:57.97ID:NQgDi+ilレス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- ヤフコメ「中国への輸出がなくなる事で、日本国内で美味しくいただける事に感謝します」👈やたら政権寄りなのはなぜ?(´・ω・`) [399259198]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- ファブルに出てくる貝沼君ってのがお前らにそっくりなんだよ
- 俺「お湯を流してと…」シンク「ボンッw」
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- paypayで支払いするの便利すぎワロッタwwwwwwwwwwwwwww
