[過去ログ] PowerShell -Part 6 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(4): 2022/02/13(日)18:36 ID:LaQ04ZoE(1) AAS
前スレ
PowerShell -Part 5
2chスレ:tech

次スレは>>980が立ててね!!
876: 2023/08/12(土)22:55 ID:zGmVrirz(1) AAS
関数の出力が意図せず(うっかり)複数個所から行われ分かりにくい点は
バッチとかシェルスクリプトの挙動に合わせすぎた為だろうね。

例えばping.exeを対象2か所に実行するバッチ(.bat)をパイプで繋げたら、
バッチ1つの実行で、ping2回の20行程度がパイプに流れる。

PowerShellスクリプトや関数もこれと同じだと考えればそんな違和感ないはずなんだけど、
元々他の言語なんかで「関数の戻り値は1つ(明示的な1つor関数末尾の1つ)」とか
「明示的に変数格納や出力などしなければ、メソッドや関数の戻り値は捨てられる」
って事に慣れてるし、PowerShellも同じ文法だから同じ挙動を期待しちゃう。

上でも出てるけど、標準ではパイプに流さない仕様とした方が
敬遠される点が減ったと思う。
877: 2023/08/14(月)13:31 ID:4NX3l0Vm(1) AAS
パイプはスレ違いのバッチスレでドヤ顔ワンライナーするぐらいしか能が無いと言っても過言
878: 2023/08/14(月)21:15 ID:5teSXOgl(1) AAS
1GiB程度のファイルを処理するときにはパイプは重宝するよ
879: 2023/08/15(火)05:53 ID:WIzBRZyi(1) AAS
バッチファイルのパイプはメカニズムが違う
あれは実質一時ファイルを作って次段に渡しているだけなので遅い、と言おうと思ったが
"*<CR><LF>" を2^23個書き並べたbigfile.txtに対してコマンドプロンプトで
  type bigfile.txt | find /C "*"
とやったら「瞬時に」
  4194304
と返って来るのに、PowerShellで
  Get-Content .\bigfile.txt | find.exe /C "*"
とやったら永劫の時間待たされた後
  FIND: パラメーターの書式が違います
省1
880: 2023/08/15(火)14:11 ID:e55ZiwZ3(1) AAS
そりゃパイプで外部コマンドに送ったら1行ずつfind.exe実行して終了するだろうから
おかしなことにもなるだろうよ
881: 2023/08/15(火)15:18 ID:qi/dYdNU(1) AAS
> あれは実質一時ファイルを作って次段に渡しているだけなので遅い

それはシングルタスクだったDOS時代の話だろ
NTのcmd.exeには当てはまらない
882: 2023/08/15(火)15:39 ID:LS4gbGEC(1) AAS
cmd.exeはパイプやfor /Fのコマンドとかワーカースレッドを生成して
別タスク(子環境)としてデータの送り手や受け手を作ってるかな
883: 2023/08/24(木)22:36 ID:W+JHQ2GG(1) AAS
Get-WinEventでSystem.evtxだかのファイルを処理させるとコマンドレットが終了しても一定時間プロセスがファイル掴みっぱなしになるのどうにかしてくれ
わざわざ別プロセスでGet-WinEvent用のpowershell起動させる間抜けなコードになったぞ
884: 2023/08/25(金)11:28 ID:WAOpDjEy(1) AAS
処理速度都合なのかな〜って思ってるけど閉じる手段は提供して欲しい。

自分は.NETのクラス使って処理書いちゃった。
885: 2023/09/04(月)19:42 ID:hSX1x29k(1) AAS
エクスプローラでファイル選択してコピーして

(Get-ClipBoard -Format FileDropList).GetType().ToString()
→ System.Collections.Generic.List`1[System.Management.Automation.PSObject]
うん。

Get-ClipBoard -Format FileDropList | %{$_.GetType().ToString()}
→ System.Collections.Generic.List`1[System.Management.Automation.PSObject]
うn?

foreach( $info in Get-ClipBoard -Format FileDropList ){ $info.GetType().ToString() }
→ System.Collections.Generic.List`1[System.Management.Automation.PSObject]
えぇ…
省11
886: 2023/09/06(水)19:07 ID:1kNnDW8h(1) AAS
$(Get-ClipBoard -Format FileDropList) | %{$_.GetType().ToString()}
→ System.IO.FileInfo
バッドノウハウの領域だなー
887: 2023/09/12(火)10:37 ID:EIIMdpOe(1/2) AAS
隠し属性が設定されたファイルが排他されてるとかで読めない状況のときに
-ForceついたGet-Contentで読もうとすると隠し属性解除されるのは理由あるんだろうか
888: 2023/09/12(火)13:50 ID:KE5ufRbn(1) AAS
質問で申し訳ない
AccessでエクスポートしたxlsxをPowershellでComObjectを作成してOpenしたいんだけど
破損している云々で発行元を信用しますか?ってダイアログのせいでOpen出来ない

外部リンク[open]:learn.microsoft.com
ここによると15個目の引数で1を指定(xlRepairFile)すれば良さそうなんだけど
Powershellで実行するとOpenプロパティが無いよって怒られる。

実際のコードはこう
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$fileName = (Get-ChildItem "test.xlsx").FullName
省1
889: 2023/09/12(火)16:40 ID:OgaNelN6(1) AAS
CSVでエクスポートしなよ
890
(1): 2023/09/12(火)17:47 ID:EIIMdpOe(2/2) AAS
とりあえずこうすると回避できた。

using namespace Microsoft.Office.Interop.Excel

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$fileName = (Get-ChildItem "test.xlsx").FullName

$param = @([Type]::Missing) * 15
$param[0] = $fileName
$param[14] = [XlCorruptLoad]::xlRepairFile
$workbooks = $excel.Workbooks
$book = $workbooks.Open.Invoke($param)
891: 2023/09/12(火)18:53 ID:uneKtCE6(1) AAS
>>890
あざす!めっちゃ参考になるます
892
(1): 転載ダメ [sagete] 2023/09/13(水)02:20 ID:E0UN4wqY(1) AAS
$param = @([Type]::Missing) * 15

$param = @([Type]::Missing) * 0xFF
のほうが人にやさしい気がする
893: 2023/09/13(水)07:53 ID:mwnND43t(1) AAS
は?
894: 2023/09/13(水)09:33 ID:ozJmt5GG(1) AAS
ひ?
895: 2023/09/13(水)23:41 ID:tgD8Mqqk(1) AAS
>>892の後者は配列に255を掛けてるように見えるのだが
人にやさしい部分てどこ?
896: 2023/09/14(木)03:25 ID:37z8xtDS(1) AAS
マスクしてるのかと思ったわ
ちゃんとソース見てなかった
すまんこ
897: 2023/09/16(土)23:53 ID:DkE7QlfD(1) AAS
PowershellのGUI使って簡単な時報を作りたい。
System.Windows.Forms.Timerを使って作ったんだが今何時判定で$Aの数字が毎回リセットされるんでIntervalの回数だけ別ウィンドウが開きまくる。
使い方間違ってるか?教えてくれさい。

$timerTestTick {
【適当に現在時表示】
  if(【指定した時間になったら】-and【$Aがtrueなら】){
  start-prosess 【音楽ファイルを別ウィンドウで再生して処理継続】
  $A = false
}
}
省5
898
(2): 2023/09/17(日)01:59 ID:ENG0J7cr(1/2) AAS
>$Aの数字が毎回リセットされるんで
それ$Aを更新しようとする度に毎回スクリプトブロックで別の$Aが生成されるからやね
([ref]$A).Value = $false
と書けば元の$Aを探しにいくから更新できると思う
Powershellのはまりポイントの1つやね
899
(1): 2023/09/17(日)03:18 ID:LjIc1dUH(1) AAS
powershellでGUIって、c#使えない宗教的理由でもあるの?
900: 2023/09/17(日)05:45 ID:5It5oWIy(1) AAS
>>898
スクリプトブロックていうのが働いてるのか。とりあえず試してみるありがとう。

>>899
宗教的理由というより書けないから出来ることで色々やってみてた。
というかPowerShell単体でC#つかえるの?
901
(1): 2023/09/17(日)09:35 ID:LYUgOkBe(1) AAS
PowerShellでGUI作れるんか! 
知らんかった これは興味ある
902: 2023/09/17(日)09:48 ID:oJeCWV6s(1) AAS
>>901
システム管理のサンプル スクリプト
外部リンク:learn.microsoft.com

公式ドキュメントならここの「UI 要素の作成」って所を見てみるといい
903: 2023/09/17(日)13:31 ID:LJFSWd1b(1) AAS
GUI作れるとかマジか
ワザワザHTMLソース内部に仕込んでWEBベースでやりとりしてた俺は一体・・・
904: 2023/09/17(日)14:04 ID:ENG0J7cr(2/2) AAS
一応.NET言語の1つではあるからGUIは普通に作れるが
俺はC#コード埋め込んでFuncやAction経由で必要時にpowershellと連携する感じの使い方だな
Powershellのコードだけで作るの自体が割と面倒なのや型チェックが働かない辺りとかかあんまメリットを感じない
905
(1): 2023/09/26(火)21:32 ID:cR6Dxv5m(1) AAS
htaの代わりとしてforms呼び出して組んでたけどcssが便利すぎて最近は使ってないな...
wpfはどうなんだろうか...
906: 2023/09/29(金)04:49 ID:wxGTflxT(1) AAS
まじでかいな
907: 2023/10/06(金)21:47 ID:ESX4xHYZ(1/4) AAS
日付を元に指定範囲内の一意の数字を出すってできる?
200ぐらいある今日の一言的なものを毎日ランダムで出したいんだがアプリケーションを再起動すると変数リセットされて別の単語出てしまうのを抑止したい。
908
(3): 2023/10/06(金)22:00 ID:7j+1PDTD(1/2) AAS
その日の初回の結果をファイルに出力して
2回目以降はそのファイルを読み込みに行けば良いのでは
909: 2023/10/06(金)22:04 ID:ESX4xHYZ(2/4) AAS
>>908
それしかないかなぁ
ファイル出力を避けたかったんだが
910: 2023/10/06(金)22:35 ID:ESX4xHYZ(3/4) AAS
>>908
できそうだからファイル出力の方向でやってみるありがとう。
911: 2023/10/06(金)22:36 ID:ESX4xHYZ(4/4) AAS
>>908
できそうだからファイル出力の方向でやってみるありがとう。
912: 2023/10/06(金)23:26 ID:WmRjQTiM(1) AAS
その条件なら日付をシード値とみなせるんだから
別の単語が出てくる方がおかしいんじゃないのか
基礎的な論理思考力が欠けているね
913: 2023/10/06(金)23:44 ID:7j+1PDTD(2/2) AAS
あ、-SetSeedって完全固定の疑似乱数なのか。
再起動したら変わると思ってた。
914
(1): 2023/10/07(土)04:01 ID:lBZtWf6D(1/2) AAS
Get-Random -SetSeed $(Get-Date -Format "yyyymmdd") -Maximum 200
915
(16): 2023/10/07(土)06:18 ID:xTEoYklV(1) AAS
>>914
seedなんてもんがあったのか!
ありがとう!
916: 2023/10/07(土)15:47 ID:lBZtWf6D(2/2) AAS
912 と 913 をワンライナーで視覚化しただけやぞ
917: 2023/10/08(日)20:27 ID:bO8eXdHU(1) AAS
>>905
wpfも普通にいけるけど、vsのデザイナーがないと厳しいから、じゃあc#でいいかとなりがち

htaの代替としたらwpfかwinformで枠だけ作ってwebview2埋め込むのがおすすめ

qiitaでも記事があったはず
918: 2023/10/08(日)22:07 ID:SlOLtELZ(1) AAS
webview2ランタイム自体の埋め込み手段がなあ
919: 2023/10/20(金)16:26 ID:3co0KDj6(1/2) AAS
こんにちは
フォルダの配下のすべてのテキストファイルを結合した文字列を出力したいです
フォルダ直下のファイルだけなら

Get-Content *.txt

でできました
該当するファイルの一覧は

Get-ChildItem -Recurse -Filter "*.txt" -Name

でできましたが
省2
920: 2023/10/20(金)19:30 ID:qU4/oN+w(1) AAS
「 -Name」が不要。
921: 2023/10/20(金)20:49 ID:3co0KDj6(2/2) AAS
できました!
922: 2023/10/31(火)16:01 ID:Vjqv9VpS(1/2) AAS
PSNativeCommandPreserveBytePipe が楽しみすぎる
923: 2023/10/31(火)16:01 ID:Vjqv9VpS(2/2) AAS
PSNativeCommandPreserveBytePipe が楽しみすぎる
924: 2023/10/31(火)16:59 ID:sGPoKgPO(1/2) AAS
この言語って3次元以上の配列って出来ないって認識であってる?
二次元は
$array[0,0]で良いんだよね?
三次元というかジャグ配列?はとりあえず使えるから
$array[0][0,0]
でやってるんだけど中の2,3次元目とか中の要素数カウントが出来なくて結構困ってる
925: 2023/10/31(火)18:05 ID:BgNWqm6B(1) AAS
ジャグ配列で良いんだったら$array[0][0][0]…といくらでも入れ子にすれば良かろうに
926: 2023/10/31(火)19:44 ID:CQ6pveQE(1/2) AAS
多次元配列はこうじゃない?
$array = [Object[,,]]::new(4,5,6) # 3次元、4×5×6
$array[0,0,0] = "(0, 0, 0)"
$array[0,0,1] = "(0, 0, 1)"

# 参照は「$arraya[0,0,0]」だと配列スライスと間違えそうだから「$array.Get(0,0,0)」の方が安全かも。
927: 2023/10/31(火)19:47 ID:CQ6pveQE(2/2) AAS
要素数は
$array.GetLength(0) # 4
$array.GetLength(1) # 5
$array.GetLength(2) # 6
928: 2023/10/31(火)19:54 ID:sGPoKgPO(2/2) AAS
あぁそっか普通に出来るのか初期化の仕方が悪かったみたい
普通の初期化でも3次元出来るんだね
調べたらジャグ配列のが処理早いそうなので結局そっち採用すると思う
レスしてくれた方有難う
929: 2023/11/10(金)20:49 ID:qelae/OI(1) AAS
7.4のGAはいつごろになりそう?
930: 2023/11/11(土)09:09 ID:JcjqK/bB(1) AAS
PowerShell Community Call - October 19 2023
外部リンク[md]:github.com

Ideally a GA Nov, may have 7.5 preview in December, not guaranteed
931: 2023/11/11(土)09:43 ID:FLa2E6qS(1) AAS
Ideally に進んで今月中の GA に期待

ところで [console]::OutputEncoding って shift_jis と utf-8 のどっちにしてます?
932: 2023/11/11(土)16:23 ID:CPZqzXvF(1) AAS
7入れて何かいい事あんの?
それ、OS標準の5.1でできますよね?
もしかして、デベロッパーのオナニーに付き合わされていませんか?
933: 2023/11/12(日)04:03 ID:jdIWedpQ(1) AAS
powershellでデフォルトの環境に手を加えないとできないことは他のPG言語に任せるべきだと思う
934: 2023/11/12(日)12:28 ID:mJhoQ9VQ(1) AAS
Windows PowerShell 5.1 と PowerShell 7.x の相違点
外部リンク[3]:learn.microsoft.com

入れる入れないは個人の自由
5と7は共存できるし別にデメリットないから7入れてるよ
935
(1): 2023/11/12(日)16:32 ID:K6g/AyoW(1) AAS
スクリプト言語としてならどっちでもいいけど
インタラクティブなコマンドラインシェルとしてなら7が圧倒的に便利
sjis出力コマンドとutf-8出力コマンドの混在環境なら7.4でさらに便利
936: 2023/11/12(日)21:46 ID:q3mytz3V(1) AAS
>>935
シェルとしてどんな点が改善されているのですか?
937: 2023/11/15(水)00:20 ID:oV9ZzUgm(1) AAS
半角英数のファイルにUTF-16を追加する事故が起きないのは助かる
938: 2023/11/15(水)23:34 ID:Ik7Afwvr(1/2) AAS
最近始めたんですが
939
(2): 2023/11/15(水)23:40 ID:Ik7Afwvr(2/2) AAS
aに1代入したいんですがどうすればいいですか?

function hoge(){
[int]$a;
function moge(){
$this.a = 1;
}
moge;
return $a;
}

hoge #
940
(1): 2023/11/16(木)09:22 ID:HndTNurg(1/3) AAS
・classのメソッドとして書く(何か知らんがレキシカルスコープになる)
・javascriptを使う
941
(2): 2023/11/16(木)10:09 ID:vDdnsPkv(1/2) AAS
Get-Variable とか >>475,898 とか $script:a とか。

なお「[int]$a」では宣言できてない。
942
(1): 2023/11/16(木)12:06 ID:HndTNurg(2/3) AAS
ref[]はpowerahellにおいてCポインタ程度には重要知識なのに
界隈で然程語られる事もなく知られていない
知られてはいけないとでも言うのだろうか…
943: 2023/11/16(木)13:08 ID:evZ76lXK(1) AAS
何言ってんだか
944
(1): 2023/11/16(木)13:38 ID:WvJyjQhC(1) AAS
>>940
とあるオブジェクトの初期設定にこんな感じで書いてたんですが無理そうですか
了解しました
class hoge:object{
[object]$o_a;
[object]$o_b;
hoge (){
[int] $cnt;
function object_a_init(){
$this.cnt = 1;
省4
945: 2023/11/16(木)15:17 ID:FRf+5dUd(1) AAS
親スコープにある変数の値を変えたいなら
Set-Variable -Name a -Value 1 -Scope 1
946: 2023/11/16(木)17:00 ID:HndTNurg(3/3) AAS
>>944
>>941をよく読んだ方がいいよ
昔の俺のレスの引用だけどね
変数の型指定は値で初期化する必要があるよ
947: 2023/11/16(木)17:15 ID:JFk7nC9m(1/3) AAS
横からすいません
なんでこれはエラーになるんでしょうか
pwsh -nop -c "[System.Text.Encoding]::GetEncoding(932)"

-c を使わずに pwsh -nop と起動して
[System.Text.Encoding]::GetEncoding(932)
を入れると動くのもわからない・・・
948: 2023/11/16(木)18:13 ID:vDdnsPkv(2/2) AAS
エラーって何のエラーなの
949: 2023/11/16(木)20:12 ID:JFk7nC9m(2/3) AAS
MethodInvocationException: Exception calling "GetEncoding" with "1" argument(s): "No data is available for encoding 932. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method."

だそうです
950: 2023/11/16(木)20:17 ID:JFk7nC9m(3/3) AAS
Encoding.RegisterProvider でぐぐったら解決しました
951: 2023/11/16(木)22:05 ID:wYK3pDi3(1) AAS
>>939を動くように直したげたよ
function hoge(){
[int]$a = "1" # $aを値で初期化しつつ型を強制。型宣言というよりキャストに相当。[int]に強制されるので値が文字列でも$aにはSystem.Int32に変換された値が入る
$a.GetType() | Write-Host # $aの値の型をコンソールに出力 System.Int32
function moge(){
([ref]$a).Value = 1 # >>941-942の言うブロックで変数を生成せず既存の変数を参照して値を代入する記法
}
moge
$a # 関数の打ち切りの意図を除きreturnキーワード不要。powershellのfuncitonは最後に限らず値を返す式は全部返そうとする
}
省1
952: 2023/11/17(金)11:55 ID:i3gkpHOP(1) AAS
>>939
参照渡しでやってみれば?

--------
function hoge
{
[int] $a = 1234

function moge
{
param (
[ref] $b
省10
953: 2023/11/17(金)14:37 ID:05VltA/O(1) AAS
PowerShell 7.4 General Availability
外部リンク:devblogs.microsoft.com

PSNativeCommandPreserveBytePipe 待ってた!
954: 2023/11/17(金)20:30 ID:Wtzmq/3L(1) AAS
リンク先読んでないけど、.exeにパイプしたときに早くなる(普通になる)のかな
955
(1): 2023/11/20(月)14:11 ID:HI5+Omcp(1/3) AAS
文字列を8文字ごとに分割して配列に格納したいのですが
文字列が8文字以下だと1文字ずつ分割されてしまいます。

$nums = @()
$nums = $num -split '(.{1,8})' | Where-Object{$_}

上記を実行すると、
$num = 12345678 のとき、$num[0] は 1が格納されるのですが、
12345678が格納されるようにするには、どうすればよいでしょうか。
956: 2023/11/20(月)14:50 ID:HI5+Omcp(2/3) AAS
>>955
すみません。誤字です。

誤: $num[0] は 1が格納されるのですが、
正: $nums[0] は 1が格納されるのですが、
957: 2023/11/20(月)15:52 ID:fHSnLnjq(1) AAS
$numsには文字列の"12345678"が代入されてるから
$nums[0]だと"12345678"の1文字目の1が返る

1行目を [string[]]$nums = @() とするか
2行目を $nums = @(12345678 -split '(.{1,8})' | Where-Object{$_}) とすればOK
958: 2023/11/20(月)17:23 ID:HI5+Omcp(3/3) AAS
>>0957

ありがとうございます!
できました。
959
(2): 2023/11/21(火)21:09 ID:qJoihvDX(1/2) AAS
PowerShell 7.4 だと

PS> python -c 'print("\\")'
\

と期待通りになるけど Windows PowerShell 5.1 だと

PS> python -c 'print("\\")'
 File "<string>", line 1
  print(\)
      ^
SyntaxError: unexpected character after line continuation character

となるのは何が起きてるの?
省2
960: 2023/11/21(火)21:20 ID:CeBFd4j1(1) AAS
>>959
解析の停止:--%
外部リンク:learn.microsoft.com
961: 2023/11/21(火)22:46 ID:qJoihvDX(2/2) AAS
対処法が知りたいんじゃなくてどう解析されたかが知りたい
962
(1): 2023/11/21(火)22:57 ID:wGZJ97Pn(1) AAS
コマンドラインのパース内容をデバッグできるコマンドレットがあって
inactionで紹介されてた気がするけど何か思い出せない
963: 2023/11/22(水)00:52 ID:z2bY/yQG(1) AAS
$PSVersionTable
PSVersion 5.1

Ruby の1-liner では、%Q 記法があるから大丈夫

ruby -e 'print %Q(\\)'
\

ruby -e 'print %Q(あaい)'
あaい
964
(1): 2023/11/22(水)04:23 ID:nZzIGDLb(1) AAS
>>962
Get-Command | sls "breakpoint|callstack"

デバッガーについて - PowerShell | Microsoft Learn
外部リンク[1]:learn.microsoft.com
965: 2023/11/22(水)10:26 ID:Yh77KGhz(1/2) AAS
>>964
回答ありがとう、でも思い出せないのは>>959の流れからの「コマンドラインのパース」自体の事だったんだ。

in Action引っ張り出して確認したが↓の事で、これで違いが分かるかも。(v7.4で確認してない。)
Trace-Command -Option All NativeCommandParameterBinder -PSHost {python -c 'print("\\")'}
966: 2023/11/22(水)10:52 ID:Yh77KGhz(2/2) AAS
他に、形態素解析みたいに分解・解析できる機能もあった気がするが忘れた
967: 2023/11/22(水)14:18 ID:W8vcuvaF(1/4) AAS
PowerShell 7.4 だと python -c 'print("\\")' ですむことを
Windows PowerShell 5.1 だとどう書けばいいんだ
--% を使っても使わなくても分からん
968: 2023/11/22(水)15:05 ID:fKGlzN6D(1) AAS
パラメータの干渉受けたくないなら普通にStart-Processでいいでしょ
969: 2023/11/22(水)15:26 ID:W8vcuvaF(2/4) AAS
対話シェルでStart-Processするのはつらい
970: 2023/11/22(水)15:34 ID:W8vcuvaF(3/4) AAS
つらいのは我慢するとしてStart-Processを使ってどう書けばいいの
971: 2023/11/22(水)20:54 ID:5rDf7evN(1/2) AAS
pythonの引用符はシングルもダブルもエスケープシーケンス展開されるからおかしな解釈になってるだけだな
pythonの仕様を呪うがいい
972: 2023/11/22(水)22:06 ID:W8vcuvaF(4/4) AAS
pythonは例として使っただけだしどうでもいいよ
あくまで興味の対象はPowerShellのコマンドラインのパース
やっぱ 7.4 すげぇで終わってもいいんだけど

なんか 7.4 の --% が腐ってる気がする
5.1 の想定通りの --% と違って勝手に引用符加えてぶっ壊してる感じ
はやいとこ直して欲しい
973: 2023/11/22(水)22:37 ID:5rDf7evN(2/2) AAS
うーんどうでもいい変なの相手しちゃった
974: 2023/11/23(木)17:39 ID:Rimm12ii(1) AAS
いやわかんないなら別にいいけど一応書いとくわ
もちろん 7.4 を Windows で使う話

stop-parsing token (--%) は以後のパースをしないはずなのに
引用符無視して空白で引数を分割してコマンド起動してるっぽい
CreateProcessまでに引用符が変に補完されるから意図通り動かない

--% が出てきたら引数の分割はネイティブコマンドに任せないとあかん
$PSNativeCommandArgumentPassing が Legacy の時と同じ処理な

そういうわけで Legacy 扱いされる .cmd とかでは問題ない
おかしいのは Standard 扱いされる .exe なんかの場合だけ

PSNativeCommandArgumentPassing の説明
省5
975
(2): 2023/11/23(木)22:03 ID:KHOftQWe(1) AAS
Powershellを体系的に学ぶにあたっておすすめの本ってありますか?
やりたいことをググってコードをコピペして使用してる状態で、コードの理解度が深まらないと思ったので体系的に学びたいと思いました。
自分のPowershellの用途は、日常的な作業の自動化(テキストファイルの読み書き、ファイルの起動やタスキル、アクティブウィンドウの切り替え、robocopyでのバックアップなど)で使っています。
976: 2023/11/23(木)22:45 ID:38VIgpCL(1) AAS
馬鹿には無理
977: 2023/11/23(木)23:00 ID:09UkZirn(1) AAS
Windows PowerShell in Action Third Editionは読んだかね
外部リンク[pdf]:sd.blackball.lv
ただしこの本は6年前の情報。英語PDFだけど今は色々と翻訳手段もあるから読めると思う
powershellならWindows上の事であれば大抵の事はできるけど
本当に便利に使うならC#や.NETの前提知識があった方がいいだろうね
C#関連で可能な事ならほぼpowershellに置き換え可能だから
978: 2023/11/24(金)00:12 ID:kL+9jaCp(1) AAS
Powershell で複雑なものは書けないから結局、Ruby になる。
WSL2, Linux側からなら、Windows側をいじれるし
979: 2023/11/24(金)03:38 ID:k2LHl+dn(1) AAS
rubyガイジなんだろうけどそこでrubyになるのは贔屓目に見てもおかしいだろ
980
(1): 2023/11/24(金)05:42 ID:IciYTcVm(1) AAS
>>975
コードをコピーしてchatGPTかPerplexityで「PowerShellで"〜〜〜"はどういう意味?」を聞けばいい
981: 2023/11/24(金)13:14 ID:4NGqTzL9(1) AAS
>>975
「PowerShell実践ガイドブック」は、PowerShellの動作の仕組みが詳しく解説されていてよかった
謎に思える挙動についても説明がある
ちょっと古いが(5年半前に出版)
982: 2023/11/25(土)12:02 ID:pLnatqec(1) AAS
microsoft learn じゃダメなの?
外部リンク[4]:learn.microsoft.com
外部リンク[4]:learn.microsoft.com
983: 2023/11/25(土)18:06 ID:wD6fmxci(1) AAS
MSの自動翻訳は5分と読んでられない
984: 2023/11/25(土)18:41 ID:444pwTGg(1) AAS
英語ページでOK
985: 2023/11/25(土)18:53 ID:Q+kYJTm7(1) AAS
975です。おすすめのドキュメント教えてくれた方ありがとうございます。
一つ気になったのですが、学習の順番としてはC#もしくは.NETから入ったほうが効率的ですか?
自分がPowershell始めたきっかけがグローバルホットキーをうまく使いたいというのが始まりで、
後述URLのコードをベースに継ぎ足しで書き加えている状態です。

PowerShellとC#でグローバルホットキーを登録する
外部リンク:qiita.com

※自分のC#のレベルはHelloWorld出したぐらいまで、.NETについても知識としてほぼ白紙です。
986: 2023/11/25(土)19:23 ID:c65Q6uO9(1) AAS
ダボゥクリッコゥで実行出来ない面倒臭いものを誰が使うんですか?
987: 2023/11/25(土)21:21 ID:2+5b9joX(1) AAS
ダブルクリックで実行できたWSHはLOVELETTERワームやら何やらでセキュリティが低いとみなされて非推奨になりましたとさ
めでたしめでたし
988: 2023/11/26(日)00:07 ID:tHVdGucZ(1) AAS
例えば、デスクトップにショートカットを作って、リンク先を以下のようにすると、
ダブルクリックでPowershell を起動して、Ruby でスクリプトを実行する

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe "ruby C:/Users/Owner/Documents/Ruby/a.rb"

初心者はRuby で始めるべき。
C# はRubyの10倍、時間が掛かるし難しい
989: 2023/11/26(日)04:20 ID:xBck3nSS(1) AAS
こんなんに粘着されちゃmatzが気の毒だわな
990: 2023/11/26(日)07:10 ID:forkl5ep(1) AAS
同じ民族同士、分断せずに仲良くしろよ

DevBlogs - Microsoft Developer Blogs
外部リンク:devblogs.microsoft.com
991: 2023/11/26(日)10:47 ID:d/KzVdDP(1) AAS
MatzはWindowsやC++に興味無いから
よほどエゴサでもしないかぎり気の毒なことにはならないわ
知らぬが仏
992: 2023/11/26(日)15:25 ID:06WEnIxy(1/2) AAS

993: 2023/11/26(日)15:25 ID:06WEnIxy(2/2) AAS

994: 2023/11/26(日)15:37 ID:tLrTLV3h(1) AAS
というか、Windowsの日本語localizationのデフォルトが未だにクゾだから、
「☑ベータ: ワールドワイド言語サポートを Unicode UTF-8 を使用」
を最初から標準にしていないかぎり、Windowsを日本語で使うこと自体、クソということになる
995: 2023/11/29(水)13:21 ID:FINewHXp(1/2) AAS
外部コマンドを実行するときに外部コマンド自体は正常な戻り値を返してるのにpowershellで動かすとNativeCommandErrorって例外が出るんだけどなんでだかわかる人おる?
996
(1): 2023/11/29(水)15:06 ID:UMPQWy8o(1) AAS
そういうのはまず再現できるコードを貼ってね
997
(1): 2023/11/29(水)16:09 ID:0g8RZ7sB(1/2) AAS
ISE上で実行した場合に標準エラー出力があると
戻り値に関係なくNativeCommandErrorになるけど、このこと?

そうでなければ>>996にプラスしてバージョンなどの環境も示してね。

あと次スレ
2chスレ:tech
998: 2023/11/29(水)17:02 ID:FINewHXp(2/2) AAS
>>997
多分それですありがとうございます
999: 2023/11/29(水)18:41 ID:Emfdd1vJ(1) AAS
質問いいですか
1000: 2023/11/29(水)19:21 ID:0g8RZ7sB(2/2) AAS
だめです
1001
(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 654日 0時間 45分 29秒
1002
(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
省4
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.381s*