前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/
次スレは>>980が立ててね!!
探検
PowerShell -Part 5
レス数が950を超えています。1000を超えると書き込みができなくなります。
2021/03/18(木) 00:29:52.04ID:/MpReTiX
894デフォルトの名無しさん
2021/12/17(金) 10:42:00.46ID:YK+z10uu >>893
conhostも[console]もシステムのcpから拾ってくる
wtに関してはsetting.jsonからも設定できる
様々なエンコーディング切り替えられないソフトが混在してて、グローバルに切り替えるのがためらわれるならば
ps/cmd>ms-settings:~(スタート>歯車のやつ)からアプリ毎にエンコーディング設定するのがおすすめ
conhostも[console]もシステムのcpから拾ってくる
wtに関してはsetting.jsonからも設定できる
様々なエンコーディング切り替えられないソフトが混在してて、グローバルに切り替えるのがためらわれるならば
ps/cmd>ms-settings:~(スタート>歯車のやつ)からアプリ毎にエンコーディング設定するのがおすすめ
895デフォルトの名無しさん
2021/12/17(金) 10:56:53.95ID:cFRRrt8D エンコーディング機能にAutoDetectがあれば良いだけなんだがな
簡単なことを難しくしてしまうのは無能の証なんだよ
PowerShellみててつくづくそう思う
簡単なことを難しくしてしまうのは無能の証なんだよ
PowerShellみててつくづくそう思う
896デフォルトの名無しさん
2021/12/17(金) 11:26:52.18ID:aYaid5rJ オートディテクトはギルティ、頭抱える事になるぞ
素性の良いデータで大体動けばいいような自動化なら、古き良きnkfでも噛ませ
ポータブルにしたいならPSGalleryに純pwsh実装のモジュールが転がってる、クオリティは知らん
i/oエンコーディングをシェルレベルで扱えるのはバベルの塔なwindows環境では重宝する
素性の良いデータで大体動けばいいような自動化なら、古き良きnkfでも噛ませ
ポータブルにしたいならPSGalleryに純pwsh実装のモジュールが転がってる、クオリティは知らん
i/oエンコーディングをシェルレベルで扱えるのはバベルの塔なwindows環境では重宝する
897デフォルトの名無しさん
2021/12/17(金) 11:27:13.62ID:cFRRrt8D PowerShellのパイプラインそれ自体がすでに低速なのに文字コードの自動判定すらないとか無能すぎでしょ
898デフォルトの名無しさん
2021/12/17(金) 11:29:06.56ID:cFRRrt8D899デフォルトの名無しさん
2021/12/17(金) 12:26:32.74ID:YK+z10uu リダイレクトの挙動が不自然に感じるのは、ホストの概念で躓いてるのでは
ホストはコンソールとも限らないし、coreバンドルのコンソールホスト以外にもiseやらaspやら色々あるわけで
なんで設定が分かれてるのか考えるべき
ホストはコンソールとも限らないし、coreバンドルのコンソールホスト以外にもiseやらaspやら色々あるわけで
なんで設定が分かれてるのか考えるべき
900デフォルトの名無しさん
2021/12/17(金) 12:35:31.53ID:cFRRrt8D901デフォルトの名無しさん
2021/12/17(金) 12:48:55.55ID:BQzVpcl1 >>900
>>856からrelatedで飛べる
https://github.com/PowerShell/PowerShell/issues/1908
で提案されてるような構文はあったら確かに便利かと思う
もちろんcoreの設計とは相容れないから、追加モジュールかwindows pwsh(新)でリリースすることになると思うけど
イイね押しとこう
>>856からrelatedで飛べる
https://github.com/PowerShell/PowerShell/issues/1908
で提案されてるような構文はあったら確かに便利かと思う
もちろんcoreの設計とは相容れないから、追加モジュールかwindows pwsh(新)でリリースすることになると思うけど
イイね押しとこう
902デフォルトの名無しさん
2021/12/17(金) 13:16:49.94ID:cFRRrt8D むしろPowerShelll固有の構文を新しい構文に移行させてほしいくらいだわ
パイプラインにテキスト縛りがある時点でPowerShellは欠陥品なんだよ
パイプラインにテキスト縛りがある時点でPowerShellは欠陥品なんだよ
903デフォルトの名無しさん
2021/12/29(水) 20:28:55.03ID:/Pws6ORw PowerShellは以下コマンドをFunction化できない。
[console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(932); $OutputEncoding = [Text.Encoding]::GetEncoding(932);
Function内でしかスコープが有効でないことが原因。$global:OutputEncodingを変えてもダメ。
なのでchcpコマンド相当のことをやろうとしたら手入力するしかない
なんというか、PowerShellは他のシェル言語でできいることができない残念なシェル言語。
オワコン化待ったなし
[console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(932); $OutputEncoding = [Text.Encoding]::GetEncoding(932);
Function内でしかスコープが有効でないことが原因。$global:OutputEncodingを変えてもダメ。
なのでchcpコマンド相当のことをやろうとしたら手入力するしかない
なんというか、PowerShellは他のシェル言語でできいることができない残念なシェル言語。
オワコン化待ったなし
904デフォルトの名無しさん
2021/12/29(水) 20:49:49.82ID:/Pws6ORw ([console])::OutputEncodingをFunction外にも適用できないことにはchcp相当の機能は実現できない
Powershellからchcpを呼ぶとcmdシェルを介してコマンドプロンプトの初期値が表示されるだけであり、グローバル設定とは無関係
([console])::OutputEncodingが効いたかどうかは、cmd /? で戻されるヘルプ文字列が日本語かどうかで判断できる
Powershellからchcpを呼ぶとcmdシェルを介してコマンドプロンプトの初期値が表示されるだけであり、グローバル設定とは無関係
([console])::OutputEncodingが効いたかどうかは、cmd /? で戻されるヘルプ文字列が日本語かどうかで判断できる
905デフォルトの名無しさん
2021/12/29(水) 20:57:34.10ID:7YDJokPl UNIXシェルは糞of糞
やっぱりPowerShellだよな
シェルスクリプトは文字通りの逐次実行
sleepy-yoshi.hatenablog.com/entry/20090917/p1
やっぱりPowerShellだよな
シェルスクリプトは文字通りの逐次実行
sleepy-yoshi.hatenablog.com/entry/20090917/p1
906デフォルトの名無しさん
2021/12/29(水) 23:03:59.28ID:wj529v9h907デフォルトの名無しさん
2021/12/29(水) 23:16:02.98ID:/Pws6ORw >>906
説明不足だった
やりたいことはコマンド入力じゃなくてSet-PSReadLineKeyHandler -Keyを使ったキーバインドなんだけど
ドット. で反映してくてもScriptBlockやFunctionのスコープに閉じ込められてしまうから解決にならない
説明不足だった
やりたいことはコマンド入力じゃなくてSet-PSReadLineKeyHandler -Keyを使ったキーバインドなんだけど
ドット. で反映してくてもScriptBlockやFunctionのスコープに閉じ込められてしまうから解決にならない
908デフォルトの名無しさん
2021/12/29(水) 23:39:26.16ID:/Pws6ORw ま、そういうエンコーディング切り替え機能をどれだけ充実させても既存のbashやCMDのようなプロセス間通信はできないのでやるだけ無駄ってのはわかってる
909デフォルトの名無しさん
2021/12/30(木) 08:42:29.02ID:InFuAQoQ PowerShellでバイナリ(もしくはエンコーディングが不明なデータ)を扱う
https://qiita.com/boukichi_numloc/items/0f4bb4e73f71c2f0a519
https://qiita.com/boukichi_numloc/items/0f4bb4e73f71c2f0a519
910デフォルトの名無しさん
2021/12/30(木) 21:35:12.30ID:FEP7eJXA powershell内部でcmd呼んだらいいのでは
何がしたいのかわからんけど
何がしたいのかわからんけど
911デフォルトの名無しさん
2021/12/30(木) 23:22:49.02ID:pA3aK4qE PowerShellからcmd を呼んだら負け、みたいな抵抗感が少しある
912デフォルトの名無しさん
2021/12/31(金) 19:53:42.99ID:YcD3GAD3 残念な仕様はあれども、ちゃんと書けば、ちゃんと動く
クソとは思わんな。便利は便利よ
クソとは思わんな。便利は便利よ
913デフォルトの名無しさん
2022/01/11(火) 22:54:51.08ID:rTZaFBoT CSVを項目で検索し、ヒットした列を編集したいんだけど、パイプが理解しきれてないせいで上手いこといかない
$ArrCsvData | Where-Object{$_.CodeNo -match $Code} |
このあとにカンマ区切りのテキストファイルを該当列に上書きしたいんだけど、どうすればいいのでしょうか?
$ArrCsvData | Where-Object{$_.CodeNo -match $Code} |
このあとにカンマ区切りのテキストファイルを該当列に上書きしたいんだけど、どうすればいいのでしょうか?
914デフォルトの名無しさん
2022/01/11(火) 23:45:14.22ID:1S8cvNBi >>913
まず、ArrCsvDataはCSVからオブジェクトに変換(ConverFrom-CSVやImport-CSV)した物なのかな
じゃないとプロパティで値を呼び出せないよ
「カンマ区切りのテキストファイルを該当列に上書きしたい」の意味が測り兼ねるけど、
条件に合致する行を編集したいなら
$ArrCsvData | ForEach-Object{ if($_.CodeNo -match $Code){$_.編集したい列名 = "編集後の文字列";$_ }
とやる。コツは編集後に「;$_ 」とやって出力する所。じゃないと編集だけして破棄する事になる。
さらにCSVで保存したいなら
〜 | Export-Csv -PSPath "保存先パス"
まず、ArrCsvDataはCSVからオブジェクトに変換(ConverFrom-CSVやImport-CSV)した物なのかな
じゃないとプロパティで値を呼び出せないよ
「カンマ区切りのテキストファイルを該当列に上書きしたい」の意味が測り兼ねるけど、
条件に合致する行を編集したいなら
$ArrCsvData | ForEach-Object{ if($_.CodeNo -match $Code){$_.編集したい列名 = "編集後の文字列";$_ }
とやる。コツは編集後に「;$_ 」とやって出力する所。じゃないと編集だけして破棄する事になる。
さらにCSVで保存したいなら
〜 | Export-Csv -PSPath "保存先パス"
915デフォルトの名無しさん
2022/01/11(火) 23:46:35.07ID:1S8cvNBi ミス
if文の閉じカッコ忘れてた
$ArrCsvData | ForEach-Object{ if($_.CodeNo -match $Code){$_.編集したい列名 = "編集後の文字列";$_ }
↓
$ArrCsvData | ForEach-Object{ if($_.CodeNo -match $Code){$_.編集したい列名 = "編集後の文字列"} ; $_ }
if文の閉じカッコ忘れてた
$ArrCsvData | ForEach-Object{ if($_.CodeNo -match $Code){$_.編集したい列名 = "編集後の文字列";$_ }
↓
$ArrCsvData | ForEach-Object{ if($_.CodeNo -match $Code){$_.編集したい列名 = "編集後の文字列"} ; $_ }
916デフォルトの名無しさん
2022/01/12(水) 00:21:17.01ID:B+xDwNUa いちいち空行挿むなスカスカ脳
917デフォルトの名無しさん
2022/01/12(水) 01:11:14.14ID:0oGT7bUk >>915
教えていただきありがとうございます
CSVは
「A001,,」
「B001,かきくけこ,12345」
のようなフィールドで
$Code = "A001"を検索し
「A001,あいうえお,12345」
のような内部のテキストファイルがあり、編集したい列名を指定せずにまとめて編集したいと思っています。
実際には編集する項目が多くループさせながら格納だと長くなってしまうため、省略できないかと思い相談させていただきました。
教えていただきありがとうございます
CSVは
「A001,,」
「B001,かきくけこ,12345」
のようなフィールドで
$Code = "A001"を検索し
「A001,あいうえお,12345」
のような内部のテキストファイルがあり、編集したい列名を指定せずにまとめて編集したいと思っています。
実際には編集する項目が多くループさせながら格納だと長くなってしまうため、省略できないかと思い相談させていただきました。
918デフォルトの名無しさん
2022/01/12(水) 21:13:44.63ID:vTY0CDWm gc $csv_in -Encoding Default | %{ $fields = $_ -split ","; if ($fields[0] -match $Code) { $fieldsを加工; $fields -join "," } else { $_ } } | Out-File $csv_out -Encoding Default
919デフォルトの名無しさん
2022/01/13(木) 01:49:18.52ID:sU2jW0+6920デフォルトの名無しさん
2022/01/18(火) 20:28:41.01ID:4KOVvciD get-aliasをalias、またはget-serviceをservice、
自作の関数でもget-testとしたらtest、のように
エイリアス定義無しでも
get-を省略して実行出来てしまう(または、省略したらget-*扱いになる)のですが
これについて記載されたドキュメントが何処にあるか
教えて頂けないでしょうか
自作の関数でもget-testとしたらtest、のように
エイリアス定義無しでも
get-を省略して実行出来てしまう(または、省略したらget-*扱いになる)のですが
これについて記載されたドキュメントが何処にあるか
教えて頂けないでしょうか
921デフォルトの名無しさん
2022/01/19(水) 20:37:21.76ID:QgcNfSy6 >>920
https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_parsing?view=powershell-7.2
PowerShell がコマンド入力を解析すると、コマンドレットまたはネイティブ実行可能ファイルへのコマンド名の解決が試みされます。 コマンド名が完全に一致しない場合、PowerShell は既定の動詞としてコマンドの前 Get- に付加されます。
https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_parsing?view=powershell-7.2
PowerShell がコマンド入力を解析すると、コマンドレットまたはネイティブ実行可能ファイルへのコマンド名の解決が試みされます。 コマンド名が完全に一致しない場合、PowerShell は既定の動詞としてコマンドの前 Get- に付加されます。
922デフォルトの名無しさん
2022/01/20(木) 15:57:54.33ID:PUohEL+U PowerShellバカにしてたけど、安定性半端ないわ
適当にササッと書いたやつがなんのエラーもなくずっと正確に動いとる
適当にササッと書いたやつがなんのエラーもなくずっと正確に動いとる
923デフォルトの名無しさん
2022/01/20(木) 16:02:20.23ID:Aa91Vk9H924デフォルトの名無しさん
2022/01/20(木) 17:34:26.20ID:I7UNJZAr 正直、PowerShellって名前がダサいと思う
925デフォルトの名無しさん
2022/01/20(木) 19:23:46.46ID:qK2oGbTr チカラこそパワー!
926デフォルトの名無しさん
2022/01/20(木) 19:45:12.86ID:N7Uy6cYb ぱわわしぇる!
927デフォルトの名無しさん
2022/01/20(木) 19:54:27.39ID:INnqrIt/ 名前負けしてるなあ、とは思うけど
928デフォルトの名無しさん
2022/01/20(木) 20:28:47.30ID:Ibae9TV2 富士通が昔PowerCobolとか出してたからPowerなんちゃらは不安になる
929デフォルトの名無しさん
2022/01/20(木) 20:31:33.85ID:6YV8Mf/D うちはウルトラCとかいうインタープリターだったなー
930デフォルトの名無しさん
2022/01/20(木) 22:25:31.06ID:yvXRNpR1 力貝
宝貝みたいなもんだなきっと
宝貝みたいなもんだなきっと
931デフォルトの名無しさん
2022/01/20(木) 22:31:19.45ID:ogjAY3PM932デフォルトの名無しさん
2022/01/21(金) 14:41:49.71ID:Q8HlpjEI 質問です。
get-childitemのデフォルトのソート順は何でしょうか?(sort-objectを明示しない場合の並び順)
ソート順について記載されているドキュメントの所在でも良いです。
get-childitemのデフォルトのソート順は何でしょうか?(sort-objectを明示しない場合の並び順)
ソート順について記載されているドキュメントの所在でも良いです。
933デフォルトの名無しさん
2022/01/21(金) 20:37:48.38ID:QAFbTLmU934デフォルトの名無しさん
2022/01/21(金) 20:45:32.61ID:D6eDuhqM935デフォルトの名無しさん
2022/01/21(金) 22:44:52.31ID:Q8HlpjEI 932です。先ほどの質問についてご回答頂きありがとうございます。予めソートされていることがわかり、安心しました。
追加ですみませんが、もう1点質問をさせてください。(先ほどの質問は、当疑問からの派生でした。)
■前提事項
比較元と比較先でソート順を変えてdiffを取った場合、バイナリによる比較とハッシュ値による比較では結果が異なります。
具体的に申し上げますと、下記ディレクトリ構成の「file1.txt」を異なる内容にした場合、
バイナリ比較では、比較元の「修正前.xlsx」と比較先の「file1.txt」で差分を出力します。(ディレクトリの違いによるアンマッチを出力する。)
ハッシュ値の比較では、比較元の「file1.txt」と比較先の「file1.txt」で差分を出力します。(同ディレクトリ配下のアンマッチを出力する。)
■質問
なぜハッシュ値による比較では、比較元と比較先でソート順が違うのに同ディレクトリの差分のみを出力できるのか。(データ型の違いにヒントがあるのかなと思っていますが、解明まで至っておりません。)
■コード
$master = Get-ChildItem -LiteralPath [比較元ディレクトリ] -Recurse -File | Sort-Object{$_.LastWriteTime}
$work = Get-ChildItem -LiteralPath [比較先ディレクトリ] -Recurse -File | Sort-Object{$_.FullName}
@(Compare-Object (Get-Content -Encoding Byte $master.FullName) (Get-Content -Encoding Byte $work.FullName) -PassThru)
@(Compare-Object -Property Hash (Get-FileHash $master.FullName) (Get-FileHash $work.FullName) -PassThru)
■ディレクトリ構成(比較元と比較先で同一)
dir1
└─dir2
└─dir3
├─PG1
│ file1.txt
│ file2.txt
│ file3.txt
│
└─PG2
修正前.xlsx
追加ですみませんが、もう1点質問をさせてください。(先ほどの質問は、当疑問からの派生でした。)
■前提事項
比較元と比較先でソート順を変えてdiffを取った場合、バイナリによる比較とハッシュ値による比較では結果が異なります。
具体的に申し上げますと、下記ディレクトリ構成の「file1.txt」を異なる内容にした場合、
バイナリ比較では、比較元の「修正前.xlsx」と比較先の「file1.txt」で差分を出力します。(ディレクトリの違いによるアンマッチを出力する。)
ハッシュ値の比較では、比較元の「file1.txt」と比較先の「file1.txt」で差分を出力します。(同ディレクトリ配下のアンマッチを出力する。)
■質問
なぜハッシュ値による比較では、比較元と比較先でソート順が違うのに同ディレクトリの差分のみを出力できるのか。(データ型の違いにヒントがあるのかなと思っていますが、解明まで至っておりません。)
■コード
$master = Get-ChildItem -LiteralPath [比較元ディレクトリ] -Recurse -File | Sort-Object{$_.LastWriteTime}
$work = Get-ChildItem -LiteralPath [比較先ディレクトリ] -Recurse -File | Sort-Object{$_.FullName}
@(Compare-Object (Get-Content -Encoding Byte $master.FullName) (Get-Content -Encoding Byte $work.FullName) -PassThru)
@(Compare-Object -Property Hash (Get-FileHash $master.FullName) (Get-FileHash $work.FullName) -PassThru)
■ディレクトリ構成(比較元と比較先で同一)
dir1
└─dir2
└─dir3
├─PG1
│ file1.txt
│ file2.txt
│ file3.txt
│
└─PG2
修正前.xlsx
936デフォルトの名無しさん
2022/01/21(金) 22:50:11.95ID:Q8HlpjEI 長文になりすみませんでした。
ディレクトリ構成が崩れてしまいましたが、以下の通りです。
dir1\dir2\dir3\PG1\file*.txt
dir1\dir2\dir3\PG2\修正前.xlsx
別の場所で質問すべきということでしたら、その旨をお伝えください。
当スレに相応しくないようでしたら無視頂いて構いません。申し訳ございませんでした。
ディレクトリ構成が崩れてしまいましたが、以下の通りです。
dir1\dir2\dir3\PG1\file*.txt
dir1\dir2\dir3\PG2\修正前.xlsx
別の場所で質問すべきということでしたら、その旨をお伝えください。
当スレに相応しくないようでしたら無視頂いて構いません。申し訳ございませんでした。
937デフォルトの名無しさん
2022/01/21(金) 22:51:59.59ID:2Ya+eSMz 例えば、ソード結果が異なる、1,2,3 と、3,2,1 を比べれば、2しか一致しない
938デフォルトの名無しさん
2022/01/22(土) 18:26:51.31ID:wDrU8P/z >>917
Ruby で作ってみた
require 'csv'
# ruby ./script.rb ./input.csv (デフォルトは、$stdout)
# ruby ./script.rb ./input.csv > 出力ファイル
# 2列目に、カンマ・改行・シングル/ダブルクォーテーションを入れてみた
csv_text = %(A001,"あ,い\nう'え""お",123) #=> "A001,\"あ,い\nう'え\"\"お\",123"
csv_ary = CSV.parse_line( csv_text ) #=> ["A001", "あ,い\nう'え\"お", "123"]
# 引数は入力ファイル名・input.csv
CSV.filter( File.open( ARGV[ 0 ] ) ) do |row| # 1行ずつ処理する
if row[ 0 ] == csv_ary[ 0 ]
( 0...csv_ary.length ).each do |idx|
row[ idx ] = csv_ary[ idx ] # すべての列を差し替える
end
end
end
入力ファイル・input.csv
A001,,
B,1,2
A001,1,2
出力。A001で始まる、2行が置換された
A001,"あ,い
う'え""お",123
B,1,2
A001,"あ,い
う'え""お",123
Ruby で作ってみた
require 'csv'
# ruby ./script.rb ./input.csv (デフォルトは、$stdout)
# ruby ./script.rb ./input.csv > 出力ファイル
# 2列目に、カンマ・改行・シングル/ダブルクォーテーションを入れてみた
csv_text = %(A001,"あ,い\nう'え""お",123) #=> "A001,\"あ,い\nう'え\"\"お\",123"
csv_ary = CSV.parse_line( csv_text ) #=> ["A001", "あ,い\nう'え\"お", "123"]
# 引数は入力ファイル名・input.csv
CSV.filter( File.open( ARGV[ 0 ] ) ) do |row| # 1行ずつ処理する
if row[ 0 ] == csv_ary[ 0 ]
( 0...csv_ary.length ).each do |idx|
row[ idx ] = csv_ary[ idx ] # すべての列を差し替える
end
end
end
入力ファイル・input.csv
A001,,
B,1,2
A001,1,2
出力。A001で始まる、2行が置換された
A001,"あ,い
う'え""お",123
B,1,2
A001,"あ,い
う'え""お",123
939デフォルトの名無しさん
2022/01/22(土) 18:35:03.63ID:95Wn62Jb キチガイが来た
940デフォルトの名無しさん
2022/01/22(土) 18:54:41.80ID:MgA+2TRu キチガイは見えない
941デフォルトの名無しさん
2022/01/22(土) 19:21:27.37ID:kAQ/cYNL 目的とやってることがとっちらかってるな
なんで比較するのにLastWriteTimeでソートしてんの
なんで比較するのにLastWriteTimeでソートしてんの
942デフォルトの名無しさん
2022/01/26(水) 20:55:59.87ID:wcWyeiko https://i.imgur.com/uWA4d1c.png
タスクマネージャーから手動で子プロセスだけ終了させることはできるけど
PowerShellでやるには Get-Process -Name explorer のあと
どうやって子プロセスのPIDを取得すればいいでしょうか?教えてください
タスクマネージャーから手動で子プロセスだけ終了させることはできるけど
PowerShellでやるには Get-Process -Name explorer のあと
どうやって子プロセスのPIDを取得すればいいでしょうか?教えてください
943デフォルトの名無しさん
2022/01/26(水) 22:28:49.77ID:KYTViaCV944デフォルトの名無しさん
2022/01/26(水) 23:22:40.50ID:z4xHZvF2 最近PowerShell使い始めたんだけど
大きなシステムを作るとき、メインと複数のサブルーチンとかも基本1つのファイルで完結させるのか?それともファイルを何個も分けるのか?
どっちだとしても可読性下がる気がする
大きなシステムを作るとき、メインと複数のサブルーチンとかも基本1つのファイルで完結させるのか?それともファイルを何個も分けるのか?
どっちだとしても可読性下がる気がする
945デフォルトの名無しさん
2022/01/26(水) 23:29:53.21ID:z4xHZvF2 PowerShell ISEでスクリプトウィンドウは何で左側に表示できないんだろ
左側のほうが俺はやりやすいわ
左側のほうが俺はやりやすいわ
946デフォルトの名無しさん
2022/01/26(水) 23:54:26.65ID:BYfIsc0u >>945
Microsoftはpowershell開発にはvscodeの方がおすすめだと言ってるよ
https://docs.microsoft.com/ja-jp/powershell/scripting/dev-cross-plat/vscode/using-vscode?view=powershell-7.2
Microsoftはpowershell開発にはvscodeの方がおすすめだと言ってるよ
https://docs.microsoft.com/ja-jp/powershell/scripting/dev-cross-plat/vscode/using-vscode?view=powershell-7.2
947デフォルトの名無しさん
2022/01/27(木) 02:33:22.29ID:sf3Kg0Os >>943
ありがとうございます。これで試してみます
ありがとうございます。これで試してみます
948デフォルトの名無しさん
2022/01/27(木) 08:04:44.84ID:EosWc+ux >>944
そもそも大きなシステムをPowerShellでは作らない
そもそも大きなシステムをPowerShellでは作らない
949デフォルトの名無しさん
2022/01/27(木) 09:23:06.79ID:p8Bx/YYe950デフォルトの名無しさん
2022/01/27(木) 10:21:25.25ID:tOnT0cfV powershellで大きめのものを組むならC#で組むときみたいな箱庭を作る発想は完全に捨てて、UNIX的な思考に切り替えるべき
完成度の高い単独で機能するコマンドを作って組み合わせていくようにすることで、ドメインを拡大させない
コマンド同士の細かい相互作用を作り込んではいけない
完成度の高い単独で機能するコマンドを作って組み合わせていくようにすることで、ドメインを拡大させない
コマンド同士の細かい相互作用を作り込んではいけない
951デフォルトの名無しさん
2022/01/29(土) 09:01:01.42ID:oEiS6XOx Unix コンポーネント: 小さいことは美徳である
https://web.archive.org/web/20080709051701/http://www.os-omicron.org/~takano/private/trans/bongo-bong_j.html#:~:text=%E3%82%92%E6%8E%A2%E3%81%9B)-,Unix%20%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88,-%3A%20%E5%B0%8F%E3%81%95%E3%81%84%E3%81%93%E3%81%A8%E3%81%AF
https://web.archive.org/web/20080709051701/http://www.os-omicron.org/~takano/private/trans/bongo-bong_j.html#:~:text=%E3%82%92%E6%8E%A2%E3%81%9B)-,Unix%20%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88,-%3A%20%E5%B0%8F%E3%81%95%E3%81%84%E3%81%93%E3%81%A8%E3%81%AF
952デフォルトの名無しさん
2022/01/30(日) 01:37:19.06ID:ZZo5v4fB >>951
ちょっと読んでみたらIEのCOMベースってすばらしいよね真似しよが結論になってて時代を感じた
さてBonoboはUnix界でうまくいったのでしょうか
https://en.wikipedia.org/wiki/Bonobo_(GNOME)
ちょっと読んでみたらIEのCOMベースってすばらしいよね真似しよが結論になってて時代を感じた
さてBonoboはUnix界でうまくいったのでしょうか
https://en.wikipedia.org/wiki/Bonobo_(GNOME)
953デフォルトの名無しさん
2022/02/02(水) 01:43:07.06ID:eLtuTeT2 Get-Contentで取得したテキストファイルが
処理終わっても自分自身で開いていることが多い
別の処理で終わったこのテキストファイルを削除しようとすると
自分で開いているので削除出来ないでエラーが出る
処理が終わっても閉じない原因か対処法はないでしょうか
処理終わっても自分自身で開いていることが多い
別の処理で終わったこのテキストファイルを削除しようとすると
自分で開いているので削除出来ないでエラーが出る
処理が終わっても閉じない原因か対処法はないでしょうか
954デフォルトの名無しさん
2022/02/02(水) 02:18:48.08ID:DC2596zT >>953
明示的にオブジェクトを破棄する。
明示的にオブジェクトを破棄する。
955デフォルトの名無しさん
2022/02/02(水) 07:51:22.34ID:eLtuTeT2956デフォルトの名無しさん
2022/02/02(水) 23:39:08.14ID:eLtuTeT2 すみません、オブジェクト破棄を以下のように解釈していたのですが
そうなるとRemobe-Itemでファイルを削除するとき、変数に入れずにフルパスで指定するのか?と思ったけどやっぱり違うと思うし
改めて変数に入れるのも多分違うと思い、すっきりしない状態です。
多分破棄するの意味を間違って、こちらが解釈してると思うのですが、この場合どう書いてますでしょうか?
$lines = (Get-content $FilePath-as [string[]]
Remove-Variable FilePath
Remobe-Item $FilePath
そうなるとRemobe-Itemでファイルを削除するとき、変数に入れずにフルパスで指定するのか?と思ったけどやっぱり違うと思うし
改めて変数に入れるのも多分違うと思い、すっきりしない状態です。
多分破棄するの意味を間違って、こちらが解釈してると思うのですが、この場合どう書いてますでしょうか?
$lines = (Get-content $FilePath-as [string[]]
Remove-Variable FilePath
Remobe-Item $FilePath
957デフォルトの名無しさん
2022/02/03(木) 07:21:37.66ID:OMU2Br15 remove variableであってるとおもう。
GCに回収させるとより安全。
$nullを代入でもいけるかな
GCに回収させるとより安全。
$nullを代入でもいけるかな
958デフォルトの名無しさん
2022/02/03(木) 07:41:16.46ID:OMU2Br15 ん?ファイル開いているのはlinesじゃないか?
linesを破棄しよう
linesを破棄しよう
959デフォルトの名無しさん
2022/02/03(木) 16:23:23.37ID:VbK4RRek gcでファイル開きっぱなしなんてないと思うけど
削除できないってパターンはありそうだな
削除できるまで無限ループでいいんじゃね
削除できないってパターンはありそうだな
削除できるまで無限ループでいいんじゃね
960デフォルトの名無しさん
2022/02/03(木) 20:01:53.14ID:gI5tR0VQ Get-content終わってもファイル開きっぱなしなんてあるの?
物凄いデカいファイルだったらあり得るのか?
物凄いデカいファイルだったらあり得るのか?
961デフォルトの名無しさん
2022/02/03(木) 23:08:22.41ID:mIHwLL5k Get-content(cat)はcat.exeと違うバッファリング方法だからユーザーから見れば開きっぱなしに感じる場合もあるかも
962デフォルトの名無しさん
2022/02/06(日) 00:04:34.70ID:D4g/hsrG 同じ変数を使い回すのにこだわっている阿呆だな
963デフォルトの名無しさん
2022/02/06(日) 01:29:48.39ID:2aKrrA/x ___ ━┓ ___ ━┓
/ ― \ ┏┛/ ―\ ┏┛
/ (●) \ヽ ・. /ノ (●)\ ・
/ (⌒ (●) /. | (●) ⌒)\
/  ̄ヽ__) / | (__ノ ̄ |
/´ ___/ \ /
| \ \ _ノ
| | /´ `\
--------------------------------------
このスレはあなたにとって役にたちましたか?
○ とても役にたった
○ 役にたった
○ どちらともいえない
○ 役にたたなかった
● 全く役にたたなかった
/ ― \ ┏┛/ ―\ ┏┛
/ (●) \ヽ ・. /ノ (●)\ ・
/ (⌒ (●) /. | (●) ⌒)\
/  ̄ヽ__) / | (__ノ ̄ |
/´ ___/ \ /
| \ \ _ノ
| | /´ `\
--------------------------------------
このスレはあなたにとって役にたちましたか?
○ とても役にたった
○ 役にたった
○ どちらともいえない
○ 役にたたなかった
● 全く役にたたなかった
964デフォルトの名無しさん
2022/02/06(日) 14:34:16.42ID:m5li3VVD そもそもファイルを削除できなかったことが無い
965デフォルトの名無しさん
2022/02/07(月) 07:35:36.67ID:83JX6KKe 削除できないのは他の要因で起こり得るから何とも
966デフォルトの名無しさん
2022/02/09(水) 12:21:56.14ID:3KsDo8lO gcに-waitとか-tailとか付けると開きっぱなしになるけど、明示的に離せってスイッチは無かったっけ?
付けなけりゃ閉じてるものかと思ってた
付けなけりゃ閉じてるものかと思ってた
967デフォルトの名無しさん
2022/02/09(水) 23:40:08.91ID:WBXgVt22 WindowsFormを使いGUIを作ろうと思っていますがtextboxのイベントハンドラが理解できていません
VBAでいうAfterUpdateをやろうと思っているのですが、
textbox1のフォーカスが別に移ったらlabel1にテストと表記したいのですが
そういった処理は可能でしたら下のどこを直せばいいのでしょうか?
Add-Type -AssemblyName system.windows.forms
Add-Type -AssemblyName system.drawing
$form = New-Object System.Windows.Forms.Form
$textbox1 = [System.Windows.Forms.textbox]@{
location = New-Object System.Drawing.point(10,10)
size = New-Object system.drawing.size(100,100)
}
$label1 = [System.Windows.Forms.Label]@{
location = New-Object System.Drawing.point(10,30)
size = New-Object system.drawing.size(250,20)
}
$form.Controls.Add($label1)
$form.Controls.Add($textbox1)
$textbox1.leave
({
$label1.text = "テスト"
})
$result = $form.ShowDialog()
VBAでいうAfterUpdateをやろうと思っているのですが、
textbox1のフォーカスが別に移ったらlabel1にテストと表記したいのですが
そういった処理は可能でしたら下のどこを直せばいいのでしょうか?
Add-Type -AssemblyName system.windows.forms
Add-Type -AssemblyName system.drawing
$form = New-Object System.Windows.Forms.Form
$textbox1 = [System.Windows.Forms.textbox]@{
location = New-Object System.Drawing.point(10,10)
size = New-Object system.drawing.size(100,100)
}
$label1 = [System.Windows.Forms.Label]@{
location = New-Object System.Drawing.point(10,30)
size = New-Object system.drawing.size(250,20)
}
$form.Controls.Add($label1)
$form.Controls.Add($textbox1)
$textbox1.leave
({
$label1.text = "テスト"
})
$result = $form.ShowDialog()
968デフォルトの名無しさん
2022/02/10(木) 19:36:03.95ID:/6XFwXXi >>967
>$textbox1.leave
ここで行を分けてしまうとpowershellのパーサは一旦解釈を終えてしまうからイベントハンドラとして登録できてない。
それとイベンントハンドラの名前は頭にadd_〜を付ける決まりになってる(なぜかは知らない)
従って下のように記述する。
$textbox1.add_leave({
$label1.text = "テスト"
})
それとテキストボックスだけではフォーカスの移動が確認できないから
ボタンとか適当なフォーカスを持つコントロールを配置しておく
$button1 = [System.Windows.Forms.Button]@{ Location="10,50"; Size="80,20"; Text="ボタン"; FlatStyle="popup"}
$form.Controls.Add($button1)
$textbox1.add_leave({ $label1.text = "leave" })
$textbox1.add_enter({ $label1.text = "enter" })
$label1.text = "テスト"
$result = $form.ShowDialog()
>$textbox1.leave
ここで行を分けてしまうとpowershellのパーサは一旦解釈を終えてしまうからイベントハンドラとして登録できてない。
それとイベンントハンドラの名前は頭にadd_〜を付ける決まりになってる(なぜかは知らない)
従って下のように記述する。
$textbox1.add_leave({
$label1.text = "テスト"
})
それとテキストボックスだけではフォーカスの移動が確認できないから
ボタンとか適当なフォーカスを持つコントロールを配置しておく
$button1 = [System.Windows.Forms.Button]@{ Location="10,50"; Size="80,20"; Text="ボタン"; FlatStyle="popup"}
$form.Controls.Add($button1)
$textbox1.add_leave({ $label1.text = "leave" })
$textbox1.add_enter({ $label1.text = "enter" })
$label1.text = "テスト"
$result = $form.ShowDialog()
969デフォルトの名無しさん
2022/02/11(金) 00:44:40.14ID:xWKZ1gm4970デフォルトの名無しさん
2022/02/12(土) 03:20:20.24ID:NDMck+ft ネタだろ
971デフォルトの名無しさん
2022/02/12(土) 16:09:12.24ID:8ted8XK+ 入力コントロールがフォーカスを失ったという、イベントは無いの?
972デフォルトの名無しさん
2022/02/12(土) 21:15:19.39ID:JXSQUy8V973デフォルトの名無しさん
2022/02/13(日) 17:33:00.74ID:zeKJdxT+ よろしくお願いします。
現在開いているexcelのアクティブブックを捕まる方法ないでしょうか??
例えば、アクティブブックのアクティブシートにのってるグラフの軸を全て変更したい時に、
excelからpowershell ISEに画面を変えて操作したいのです。
現在開いているexcelのアクティブブックを捕まる方法ないでしょうか??
例えば、アクティブブックのアクティブシートにのってるグラフの軸を全て変更したい時に、
excelからpowershell ISEに画面を変えて操作したいのです。
974デフォルトの名無しさん
2022/02/13(日) 17:40:39.22ID:0qwas07F >>973
Pythonおすすめ
Pythonおすすめ
975デフォルトの名無しさん
2022/02/13(日) 17:44:20.75ID:zeKJdxT+ >974
ありがとうございます。
xlwingsだとアクティブブックつかめるけど、グラフの細かな設定がない
openpyxlだとアクティブブックをつかめなさそう、
でpowershellでできないかな、と。
ありがとうございます。
xlwingsだとアクティブブックつかめるけど、グラフの細かな設定がない
openpyxlだとアクティブブックをつかめなさそう、
でpowershellでできないかな、と。
976デフォルトの名無しさん
2022/02/13(日) 17:47:29.32ID:0qwas07F >>975
グラフもPythonで描けばいい
グラフもPythonで描けばいい
977デフォルトの名無しさん
2022/02/13(日) 17:55:51.10ID:lPImUKwL pandasに無いような高等な統計関数が必要でないかぎりpythonで完結したほうが楽なんじゃね
978デフォルトの名無しさん
2022/02/13(日) 18:02:06.97ID:zeKJdxT+ ありがとうございます。
まぁ、会社でみながexcel使ってるので、、こんな質問をしている次第です、、
まぁ、会社でみながexcel使ってるので、、こんな質問をしている次第です、、
979デフォルトの名無しさん
2022/02/13(日) 18:06:52.02ID:PEAS4D91 シートの名前やらインデックスがpwshでわかれば、その情報をpythonに渡してmatplotlibでtemp.jpgとかで吐き出したグラフをまたpwshで貼れば行ける気がする
980デフォルトの名無しさん
2022/02/13(日) 18:34:35.90ID:Z5jSGqeY ActiveWorkBookプロパティで捕まえられるでしょ
VBAから呼んでもPowershellから呼んでもPythonから呼んでもいい
VBAから呼んでもPowershellから呼んでもPythonから呼んでもいい
981デフォルトの名無しさん
2022/02/13(日) 18:37:17.22ID:LaQ04ZoE982デフォルトの名無しさん
2022/02/13(日) 18:41:38.57ID:LaQ04ZoE 余計なお世話ついでに
ISEはもう終わったプロジェクトなので
後継のVSCode+Powershellプラグインに乗り換えるのがオススメ
ISEはもう終わったプロジェクトなので
後継のVSCode+Powershellプラグインに乗り換えるのがオススメ
983デフォルトの名無しさん
2022/02/13(日) 20:32:19.65ID:zeKJdxT+ 色々アドバイスありがとうございました。
それもそだな、と下記でいけました。お騒がせいたしました
$Excel = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Excel.Application")
$Excel.ActiveWorkbook.ActiveSheet.name
それもそだな、と下記でいけました。お騒がせいたしました
$Excel = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Excel.Application")
$Excel.ActiveWorkbook.ActiveSheet.name
984デフォルトの名無しさん
2022/02/21(月) 13:09:23.89ID:jIppNsU3 教えて下さい
powershellで再帰処理をしたいんですが、
"The script failed due to call depth overflow"
と言うエラーで最後まで処理してくれません。
再帰回数のスタックオーバーフローで
トランポリン処理が有効とまでは調べたのですが
上手く理解出来ず
↓↓
https://qiita.com/yumura_s/items/8a44a70e3e11c4eb1464
詳しい方、よろしくお願いします
powershellで再帰処理をしたいんですが、
"The script failed due to call depth overflow"
と言うエラーで最後まで処理してくれません。
再帰回数のスタックオーバーフローで
トランポリン処理が有効とまでは調べたのですが
上手く理解出来ず
↓↓
https://qiita.com/yumura_s/items/8a44a70e3e11c4eb1464
詳しい方、よろしくお願いします
985デフォルトの名無しさん
2022/02/21(月) 13:24:10.95ID:Vv5lB4cH そのメッセージの言わんとするところは、すげー効率悪いので再帰で書くな
というアドバイスです
というアドバイスです
986デフォルトの名無しさん
2022/02/21(月) 13:39:08.84ID:jIppNsU3 対象データが階層構造になっていて、
網羅的に処理したいんですが、うーん
網羅的に処理したいんですが、うーん
987デフォルトの名無しさん
2022/02/21(月) 14:08:41.32ID:Vv5lB4cH 500階層あるデータ構造はさすがに扱ったことがない…
そもそも特定の枝が底なし沼なのだとしたら、それでも延々と潜り続ける、というのは本当に意図した挙動なのか?
底なし沼が時々存在して、それに興味が無いのならば素直な余再帰で書ける幅優先探索を勧める
深さ優先で頑張りたいなら、スタックとしてコールスタックを流用するのでなくて、明示的にスタックにpush/popすると少しは経済的
特定の深さに達したら諦める決め打ちもあり
トランポリンで遅延評価を積む利点は、入力データ構造を処理するというより、需要に応じて任意の深さのデータを出力できるという点にあるので、悪手かと
そもそも特定の枝が底なし沼なのだとしたら、それでも延々と潜り続ける、というのは本当に意図した挙動なのか?
底なし沼が時々存在して、それに興味が無いのならば素直な余再帰で書ける幅優先探索を勧める
深さ優先で頑張りたいなら、スタックとしてコールスタックを流用するのでなくて、明示的にスタックにpush/popすると少しは経済的
特定の深さに達したら諦める決め打ちもあり
トランポリンで遅延評価を積む利点は、入力データ構造を処理するというより、需要に応じて任意の深さのデータを出力できるという点にあるので、悪手かと
988デフォルトの名無しさん
2022/02/21(月) 14:17:30.40ID:+uSXi1Gh トランポリン?のやってることはSchemeで言うCPS相当だね。まずCPSを理解しないと何が起きてるのか判らないと思う。
であるならば理屈ではトランポリンなんて変な事しなくてもスクリプトブロックをクロージャにするやつだけで再帰をクロージャの連鎖呼び出しに置き換えることはできると思う。
であるならば理屈ではトランポリンなんて変な事しなくてもスクリプトブロックをクロージャにするやつだけで再帰をクロージャの連鎖呼び出しに置き換えることはできると思う。
989デフォルトの名無しさん
2022/02/21(月) 14:38:31.70ID:Vv5lB4cH (実装は暗黙のCPSかもしれないけど) schemeだとdelay/forceそのまんまじゃね
イテレータとかストリームとか色んな言い方があるけど、何にせよ処理すべきデータがまだ存在していないような時にのみ有効
もし処理対象のデータが既に存在しているのなら、単に無駄な計算を増やすだけだよ
イテレータとかストリームとか色んな言い方があるけど、何にせよ処理すべきデータがまだ存在していないような時にのみ有効
もし処理対象のデータが既に存在しているのなら、単に無駄な計算を増やすだけだよ
990デフォルトの名無しさん
2022/02/21(月) 14:43:51.48ID:+uSXi1Gh 再帰処理したいつってる本人が理解できないと意味ないからな
再帰が軽い言語で処理すりゃいいんじゃねーの
再帰が軽い言語で処理すりゃいいんじゃねーの
991デフォルトの名無しさん
2022/02/21(月) 15:22:36.66ID:002PyiUh コールスタック制限してない言語の方が珍しいと思うがね、スクリプト言語なら500-1000くらいが標準的か
とりあえず言語によって課される安全装置としてのコールスタック制限を回避したいのなら、>>984が求めている資料はこれだと思うhttps://www.python.org/doc/essays/graphs/(pwshじゃなくてすまん)
生リスト(配列)を使ってもいいけど、現実的な時間で可能なのか怪しい程の難問なので、これの出番かも
https://docs.microsoft.com/en-us/dotnet/api/system.collections.stack?view=net-6.0
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.stack-1?view=net-6.0
とりあえず言語によって課される安全装置としてのコールスタック制限を回避したいのなら、>>984が求めている資料はこれだと思うhttps://www.python.org/doc/essays/graphs/(pwshじゃなくてすまん)
生リスト(配列)を使ってもいいけど、現実的な時間で可能なのか怪しい程の難問なので、これの出番かも
https://docs.microsoft.com/en-us/dotnet/api/system.collections.stack?view=net-6.0
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.stack-1?view=net-6.0
992デフォルトの名無しさん
2022/02/21(月) 15:34:29.48ID:002PyiUh ごめんdfsだわこれ
全要素網羅したい、という要求だからどっちでもいいと思うけど
queueはこれ使うと配列よりかなり速いはず
https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.queue-1?view=net-6.0
全要素網羅したい、という要求だからどっちでもいいと思うけど
queueはこれ使うと配列よりかなり速いはず
https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.queue-1?view=net-6.0
993デフォルトの名無しさん
2022/02/21(月) 16:03:11.06ID:jIppNsU3 すみません、めちゃくちゃ難しいっす
なんとなくリンク先のスクリプトが
動かせればと思ったのですが…
やはり悪手なんですかね
なんとなくリンク先のスクリプトが
動かせればと思ったのですが…
やはり悪手なんですかね
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【実況】博衣こよりのえちえち歌枠🧪
- 高市「発言は撤回しない。謝罪もするな。外務省局長!任せたぞ。」👈なにをさせたかったの?😲 [826239858]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
