前スレ
【最強CUI】PowerShell -Part 2
http://mevius.5ch.net/test/read.cgi/tech/1480109402/
探検
PowerShell -Part 3
■ このスレッドは過去ログ倉庫に格納されています
2018/10/09(火) 17:46:48.32ID:G4IJkzod
781デフォルトの名無しさん
2019/08/26(月) 07:51:25.55ID:LOkM9Twk コマンドプロンプトで、where notepad
と入力すると、メモ帳のパスが、2つ表示されるが、
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
PowerShell(PS)で、Get-Command notepad
と入力すると、上の1つだけが表示される。
つまり、PSと、whereコマンドの挙動が異なる!
コマンドプロンプトで、where where と入力すると、
C:\Windows\System32\where.exe
そこで、PSで、where.exe notepad
と入力すると、whereコマンドを呼び出せたので、2つ表示された
と入力すると、メモ帳のパスが、2つ表示されるが、
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
PowerShell(PS)で、Get-Command notepad
と入力すると、上の1つだけが表示される。
つまり、PSと、whereコマンドの挙動が異なる!
コマンドプロンプトで、where where と入力すると、
C:\Windows\System32\where.exe
そこで、PSで、where.exe notepad
と入力すると、whereコマンドを呼び出せたので、2つ表示された
782デフォルトの名無しさん
2019/08/26(月) 08:31:04.34ID:sAEBXghq >>781
Get-Command -CommandType Application notepad は試した?
Get-Command -CommandType Application notepad は試した?
783デフォルトの名無しさん
2019/08/26(月) 14:58:24.63ID:R1/Rmq9c >>781
何を主張したいのかが良く分からんレスだな。
困ってるから何とかしてくれ、とでも言いたいのか?
Get-Command notepad
で
C:\Windows\System32\notepad.exe
が表示されたは、$env:path で一番最初に見つかったものを表示してるだけだ。
試しに $env:path を変更して、C:\Windows\System32 よりも C:\Windows を先にしてみろ。
$env:path を変更したら、念のため Powershell.exe を開きなおすのを忘れんなよ。
あるいは、notepad.exe が二か所にあることが疑問/不満なのか?歴史的な経緯だ。
実態は c:\Windows\WinSxS\ 以下にあるもので、C:\Windows\System32 と C:\Windows に
あるものはハードリンクだ。
三つとも同じハードリンクなので WinSxS\ 以下のものを特別に「実態」と表現するのは本来正しくないが、
WindowsUpdate の仕組み上、便宜的に「実態」と呼んでも差し支えないだろう。
何を主張したいのかが良く分からんレスだな。
困ってるから何とかしてくれ、とでも言いたいのか?
Get-Command notepad
で
C:\Windows\System32\notepad.exe
が表示されたは、$env:path で一番最初に見つかったものを表示してるだけだ。
試しに $env:path を変更して、C:\Windows\System32 よりも C:\Windows を先にしてみろ。
$env:path を変更したら、念のため Powershell.exe を開きなおすのを忘れんなよ。
あるいは、notepad.exe が二か所にあることが疑問/不満なのか?歴史的な経緯だ。
実態は c:\Windows\WinSxS\ 以下にあるもので、C:\Windows\System32 と C:\Windows に
あるものはハードリンクだ。
三つとも同じハードリンクなので WinSxS\ 以下のものを特別に「実態」と表現するのは本来正しくないが、
WindowsUpdate の仕組み上、便宜的に「実態」と呼んでも差し支えないだろう。
784デフォルトの名無しさん
2019/08/26(月) 15:00:01.45ID:R1/Rmq9c785デフォルトの名無しさん
2019/08/26(月) 15:10:26.74ID:JMmOsJb3 Why are there two copies of Notepad?
https://devblogs.microsoft.com/oldnewthing/20060328-17/?p=31753
https://devblogs.microsoft.com/oldnewthing/20060328-17/?p=31753
786デフォルトの名無しさん
2019/08/26(月) 15:27:38.53ID:j8vvMRg5 >>783
独特の文体からして、この板で有名なRuby君かと思われる。話の流れと無関係にRuby推ししてきたり、頓珍漢な知識披露(間違い多数)をしてきたりする奴だから、相手するだけ無駄だよ。
おそらく、ぼくこんなこと気づいたんだよ!って嬉しくて書かずにいられなかっただけだと思う。
独特の文体からして、この板で有名なRuby君かと思われる。話の流れと無関係にRuby推ししてきたり、頓珍漢な知識披露(間違い多数)をしてきたりする奴だから、相手するだけ無駄だよ。
おそらく、ぼくこんなこと気づいたんだよ!って嬉しくて書かずにいられなかっただけだと思う。
788デフォルトの名無しさん
2019/08/27(火) 01:45:40.61ID:OLaosybt DOSメインでPSでしかできない部分だけPSにしてるのをやめて、PS一本化を増やそうかと思い立ったが
そういやDOSからキックしないと動かないのであった
というわけでやはりDOSメイン
そういやDOSからキックしないと動かないのであった
というわけでやはりDOSメイン
789デフォルトの名無しさん
2019/08/27(火) 01:49:02.45ID:OLaosybt なんでそんな仕様にしたんだろうね
かといってPS直でやりたいというより、DOSを拡張して欲しかった
かといってPS直でやりたいというより、DOSを拡張して欲しかった
790デフォルトの名無しさん
2019/08/27(火) 02:31:00.22ID:AUeyxvTx まだDOSなんて使ってんの
791デフォルトの名無しさん
2019/08/27(火) 17:41:47.14ID:DT/yO98c なんでps1てへんてこな拡張子なの
792デフォルトの名無しさん
2019/08/27(火) 18:06:41.10ID:JlFv53u2 どっかのゲーム機みたいにPowerShell 2, PowerShell 3, …って作るんじゃね?w
793デフォルトの名無しさん
2019/08/27(火) 21:28:53.53ID:2r3hz+dJ794デフォルトの名無しさん
2019/08/28(水) 02:40:35.65ID:tqyYzyWN 考え無しに作った結果か・・・
795デフォルトの名無しさん
2019/08/29(木) 03:16:31.66ID:RYMiansx 基本的なことが分かってない気がするのだけど教えてください
get-date, get-childitem, get-location といったコマンドレットの代わりに
get 無しで date, childitem, location と入力しても同じ結果になる
これら get 無しコマンドは get 付きのエイリアスなのか? と最初は思ったのだけど
そんなエイリアスはないと言われる
これらの get 無しコマンド(?) はどういう立ち位置なんでそ?
ちなみに例えば location.bat とかを PATH の通った場所に置いておくと
そっちが実行されるので、これらはサーチパスより優先度が低いようです
get-date, get-childitem, get-location といったコマンドレットの代わりに
get 無しで date, childitem, location と入力しても同じ結果になる
これら get 無しコマンドは get 付きのエイリアスなのか? と最初は思ったのだけど
そんなエイリアスはないと言われる
これらの get 無しコマンド(?) はどういう立ち位置なんでそ?
ちなみに例えば location.bat とかを PATH の通った場所に置いておくと
そっちが実行されるので、これらはサーチパスより優先度が低いようです
796デフォルトの名無しさん
2019/08/29(木) 04:05:52.42ID:TR1/uwdi >>795
基本的なことはここにまとまってる
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_command_precedence?view=powershell-6#qualified-names
1. Alias
2. Function
3. Cmdlet
4. Native Windows commands
の順に探す
ただこの文書にはGetを省略した場合について書いてない
以下のコマンドを実行すればだいたいわかる
Trace-Command CommandDiscovery { date } -PSHost
すると上記の1〜4の順に探してもコマンドが見つからなかった場合、以下のようなデバッグ出力が見つかる
>The command [date] was not found, trying again with get-prepended
つまり1〜4でコマンドが見つからなかった場合は、頭にGetを付加してもう一回1〜4を探すよってこと
基本的なことはここにまとまってる
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_command_precedence?view=powershell-6#qualified-names
1. Alias
2. Function
3. Cmdlet
4. Native Windows commands
の順に探す
ただこの文書にはGetを省略した場合について書いてない
以下のコマンドを実行すればだいたいわかる
Trace-Command CommandDiscovery { date } -PSHost
すると上記の1〜4の順に探してもコマンドが見つからなかった場合、以下のようなデバッグ出力が見つかる
>The command [date] was not found, trying again with get-prepended
つまり1〜4でコマンドが見つからなかった場合は、頭にGetを付加してもう一回1〜4を探すよってこと
797デフォルトの名無しさん
2019/08/29(木) 04:22:51.28ID:RYMiansx798デフォルトの名無しさん
2019/08/29(木) 19:25:49.72ID:+UUfxV7s 初心者で右も左もわからない状況で申し訳無いのですが、
明示的に設定してる共有ディレクトリとアクセス権を一括で出力ってできたりするんですかね?
Get-wmiobject -class win32_share
だとアクセス権までは出力されなかったんで...
詳しい方教えて頂きたいです。
明示的に設定してる共有ディレクトリとアクセス権を一括で出力ってできたりするんですかね?
Get-wmiobject -class win32_share
だとアクセス権までは出力されなかったんで...
詳しい方教えて頂きたいです。
799デフォルトの名無しさん
2019/08/30(金) 00:19:55.56ID:kVpvpBih 「powershell アクセス権限 確認」で検索!
こんな感じ?
ls | Get-ACL
こんな感じ?
ls | Get-ACL
800デフォルトの名無しさん
2019/08/30(金) 10:55:43.01ID:uzgqDeg8801デフォルトの名無しさん
2019/09/06(金) 17:24:06.26ID:LE0BBPZ5 ふぁあああ・・・・
解決してよかったよぉお
ハロー優しい世界、だねええええ^^
解決してよかったよぉお
ハロー優しい世界、だねええええ^^
802デフォルトの名無しさん
2019/09/07(土) 01:23:05.71ID:SOW3zbb3 Set-ACLは使うな
803デフォルトの名無しさん
2019/09/07(土) 06:28:56.33ID:jlJXcZnh >>802
替わりに何を使ったら良いですか?
替わりに何を使ったら良いですか?
804デフォルトの名無しさん
2019/09/07(土) 06:44:55.31ID:jb/JoUUS >>802
why?
why?
805デフォルトの名無しさん
2019/09/07(土) 10:39:33.44ID:sSufJvsQ >>804
俺は >>802 ではないが、Set-Acl は使いづらい。
そもそもの理由は Windows の ACL (ACE) が複雑だからなのだが、対象にセットする ACL オブジェクトを作るのが分かりづらい。
例:All Users のスタートメニューのアクセス権を変更し、一般ユーザにも書き換えられるようにする場合(既存の権限に追加)
https://pastebin.com/R3JBWF2h
他のフォルダなどから ACL オブジェクトをコピーし、それをそのままターゲットに適用するだけなら簡単なのだけど。
>>803
「何が何でもすべて PS でやる!」 というポリシーでないのなら、cscls.exe、icacls.exe のほうがお手軽。
俺は >>802 ではないが、Set-Acl は使いづらい。
そもそもの理由は Windows の ACL (ACE) が複雑だからなのだが、対象にセットする ACL オブジェクトを作るのが分かりづらい。
例:All Users のスタートメニューのアクセス権を変更し、一般ユーザにも書き換えられるようにする場合(既存の権限に追加)
https://pastebin.com/R3JBWF2h
他のフォルダなどから ACL オブジェクトをコピーし、それをそのままターゲットに適用するだけなら簡単なのだけど。
>>803
「何が何でもすべて PS でやる!」 というポリシーでないのなら、cscls.exe、icacls.exe のほうがお手軽。
806デフォルトの名無しさん
2019/09/07(土) 10:48:02.60ID:jlJXcZnh >>802に答えて欲しいな
807デフォルトの名無しさん
2019/09/07(土) 11:08:11.46ID:sSufJvsQ >>806
ごめんね
ごめんね
808デフォルトの名無しさん
2019/09/07(土) 15:10:43.76ID:SOW3zbb3809デフォルトの名無しさん
2019/09/07(土) 15:12:47.14ID:SOW3zbb3 あ、>>803への答えはicaclsコマンド使えね
powershellは変な仕様あるから割と警戒した方がいい
powershellは変な仕様あるから割と警戒した方がいい
810デフォルトの名無しさん
2019/09/08(日) 20:21:13.64ID:d6DJW1MN F:/ に SDカードがマウントされているのを
アンマウントするコマンドは何ですか?
アンマウントするコマンドは何ですか?
811デフォルトの名無しさん
2019/09/08(日) 21:55:23.61ID:D+CIKcq7 >>810
(New-Object -comObject Shell.Application).Namespace(17).ParseName('F:').Verbs()|?{$_.Name -match '取り出し'}|%{$_.Doit()}
(New-Object -comObject Shell.Application).Namespace(17).ParseName('F:').Verbs()|?{$_.Name -match '取り出し'}|%{$_.Doit()}
812デフォルトの名無しさん
2019/09/09(月) 16:38:34.04ID:8EKyQA8Q >>811
thanks
thanks
813デフォルトの名無しさん
2019/09/10(火) 21:38:04.40ID:Eo4YqZPr ■C:\hoge.txtの内容
aaa
bbb
bbb
bbb
ccc
ccc
ccc
ccc
ccc
↑のようなテキストファイルがある場合に、↓の結果(タブ区切り)を得るにはどうすれば良いのでしょうか?
aaa 1
bbb 3
ccc 5
aaa
bbb
bbb
bbb
ccc
ccc
ccc
ccc
ccc
↑のようなテキストファイルがある場合に、↓の結果(タブ区切り)を得るにはどうすれば良いのでしょうか?
aaa 1
bbb 3
ccc 5
814デフォルトの名無しさん
2019/09/10(火) 22:19:37.38ID:L5QX1JAH >>813
Group-Object
Group-Object
815デフォルトの名無しさん
2019/09/10(火) 22:36:34.85ID:hrOpSOVs 頼むから順不同なのかそうじゃないのか
書いてから質問してくれ
書いてから質問してくれ
816デフォルトの名無しさん
2019/09/10(火) 23:28:19.24ID:Eo4YqZPr817デフォルトの名無しさん
2019/09/10(火) 23:30:43.39ID:L5QX1JAH818デフォルトの名無しさん
2019/09/11(水) 00:05:23.05ID:TMos3buL あータブ区切りの文字列にしたいんか
gc hoge.txt | group | foreach { $_.name,$_.count -join "`t" }
gc hoge.txt | group | foreach { $_.name,$_.count -join "`t" }
820デフォルトの名無しさん
2019/09/12(木) 10:44:16.82ID:W/V8jwbc821デフォルトの名無しさん
2019/09/12(木) 13:07:06.37ID:9SxJRVV0822デフォルトの名無しさん
2019/09/12(木) 14:46:18.96ID:pQlsfVOK ふーむ、アホがアホに同調するアホな好例だな、アホすぎてオレにはよく分らんのだが、アホだということは分かる
アホA「ありがとうございます! まだ試していないけど! ★5つです!(^_^)」
アホB「・・これは良い! これからは★で評価しよう!」
ボク「・・いやいや、まだ試してもいないのだから評価もくそもねーだろ、★2〜3の定義もねーし、こいつらアホの極みだな」
アホA「ありがとうございます! まだ試していないけど! ★5つです!(^_^)」
アホB「・・これは良い! これからは★で評価しよう!」
ボク「・・いやいや、まだ試してもいないのだから評価もくそもねーだろ、★2〜3の定義もねーし、こいつらアホの極みだな」
823デフォルトの名無しさん
2019/09/12(木) 14:53:12.75ID:j3ZoG8EK >>822
★
★
824デフォルトの名無しさん
2019/09/12(木) 17:51:47.62ID:TUHPbFV0 >>822
これが噂のヤラセレビューってやつか?
これが噂のヤラセレビューってやつか?
825デフォルトの名無しさん
2019/09/12(木) 18:29:54.11ID:5CMOpd/7 >>822
☆
☆
826デフォルトの名無しさん
2019/09/12(木) 19:50:41.33ID:igJ/H+nC icaclsとか括弧を多用するコマンドはエスケープうざいですね
ヒアドキュメントみたいな感じでスマートに書けませんか
ヒアドキュメントみたいな感じでスマートに書けませんか
827デフォルトの名無しさん
2019/09/13(金) 20:13:01.19ID:Vx47yrR/ PowerShellで非同期処理って酷く書きづらいと思ってるんだが、こんなもんなんか?
変数を渡すのにめっちゃ苦労したんだが…
変数を渡すのにめっちゃ苦労したんだが…
828デフォルトの名無しさん
2019/09/13(金) 21:35:11.86ID:3ZdspPUD 具体的にはどんなコードを書いたの?
829デフォルトの名無しさん
2019/09/13(金) 21:49:24.82ID:Vx47yrR/ あまりにもニッチな製品の負荷テスト用スクリプトだから具体的には言えないが、平たく言えば自作関数とWin標準コマンドを引数変えながら並列投入するだけ
bashと比べちゃ駄目なんだろうが、スクリプト書いててキレそうになったのは久しぶりだわ
bashと比べちゃ駄目なんだろうが、スクリプト書いててキレそうになったのは久しぶりだわ
830デフォルトの名無しさん
2019/09/13(金) 23:05:20.75ID:ha69B7nJ runspaceでやってるのかjobでやってるのか
831デフォルトの名無しさん
2019/09/14(土) 01:25:26.61ID:XbAlqDVd そんな苦労するもんだっけか
832デフォルトの名無しさん
2019/09/14(土) 01:53:38.89ID:ogAZWftq runspaceの中で親スコープで宣言した関数を(特に書き換えずに)呼ぼうとするとややこしい
ちょっとggって出てくる方法だと面倒
https://devblogs.microsoft.com/scripting/powertip-add-custom-function-to-runspace-pool/
解決策:まとめて文字列にして渡す
# runspaceで実行したいスクリプトブロック
$cmd = {
param($func_parent)
$func_current = Get-ChildItem function: | %{$_.ScriptBlock.Ast.ToString()} # カレント(子)スコープの関数リスト
compare-object $func_current $func_parent | % inputobject | Invoke-Expression # 親スコープで宣言した関数のみを定義する
<# 実行したい処理 #>
}
$func = Get-ChildItem function: | %{$_.ScriptBlock.Ast.ToString()} # カレント(親)スコープの関数リスト
$ps = [PowerShell]::Create()
$ps.AddScript($cmd).AddArgument($func) | Out-Null
$result = $ps.BeginInvoke()
$ps.EndInvoke()
$ps.Dispose()
}
ちょっとggって出てくる方法だと面倒
https://devblogs.microsoft.com/scripting/powertip-add-custom-function-to-runspace-pool/
解決策:まとめて文字列にして渡す
# runspaceで実行したいスクリプトブロック
$cmd = {
param($func_parent)
$func_current = Get-ChildItem function: | %{$_.ScriptBlock.Ast.ToString()} # カレント(子)スコープの関数リスト
compare-object $func_current $func_parent | % inputobject | Invoke-Expression # 親スコープで宣言した関数のみを定義する
<# 実行したい処理 #>
}
$func = Get-ChildItem function: | %{$_.ScriptBlock.Ast.ToString()} # カレント(親)スコープの関数リスト
$ps = [PowerShell]::Create()
$ps.AddScript($cmd).AddArgument($func) | Out-Null
$result = $ps.BeginInvoke()
$ps.EndInvoke()
$ps.Dispose()
}
833デフォルトの名無しさん
2019/09/14(土) 01:55:28.35ID:ogAZWftq $ps.EndInvoke($result)
だわ
だわ
834デフォルトの名無しさん
2019/09/14(土) 20:16:09.07ID:atxyCPua 変数じゃねーじゃねーか!
835デフォルトの名無しさん
2019/09/14(土) 20:31:39.96ID:jbpc8Cnk836デフォルトの名無しさん
2019/09/14(土) 20:49:09.80ID:atxyCPua 渡したかったのは関数だって言ってんじゃねーか!
837デフォルトの名無しさん
2019/09/14(土) 21:11:58.91ID:ogAZWftq838デフォルトの名無しさん
2019/09/14(土) 22:03:58.44ID:atxyCPua psm1にまとめて読み込んだほうが楽そう…
839デフォルトの名無しさん
2019/09/14(土) 22:24:21.00ID:Tzf8a7mL うむ
840デフォルトの名無しさん
2019/09/15(日) 15:45:03.86ID:4TgO8+RX >>813-819
大文字小文字が区別されないから、-CaseSensitive オプションも付けた方がよい
"Aa", "b", "aa" | group-object -noelement | where {$_.Count -gt 1}
出力
2 Aa
"A", "a" | group-object -noelement -CaseSensitive
出力
1 A
1 a
大文字小文字が区別されないから、-CaseSensitive オプションも付けた方がよい
"Aa", "b", "aa" | group-object -noelement | where {$_.Count -gt 1}
出力
2 Aa
"A", "a" | group-object -noelement -CaseSensitive
出力
1 A
1 a
841デフォルトの名無しさん
2019/09/15(日) 17:42:03.16ID:tc+PQ4bB 5.1から4.0に戻さないと日本語でいろいろ書いてくれないからわからないんです…
どうやって戻したらいいんでしょうか…(´・ω・`)
どうやって戻したらいいんでしょうか…(´・ω・`)
842デフォルトの名無しさん
2019/09/15(日) 18:02:21.21ID:LMFjfaUx どういうこと(´・ω・`)
843デフォルトの名無しさん
2019/09/15(日) 19:37:50.46ID:tc+PQ4bB (´・ω・`)すみません自己解決しました 更新プログラムの一部を削除したら望む結果が得られました お騒がせしました
844デフォルトの名無しさん
2019/09/15(日) 20:17:50.41ID:aATf+6N9 WMF 5 に上げるとUIの表示が英語になるやつかねたぶん
845デフォルトの名無しさん
2019/09/15(日) 20:48:36.32ID:ORV+CvDJ win7pcのPSを5.1にした時に日本語化探したけどわかんなかったから詳しく書いてほしかった感
846デフォルトの名無しさん
2019/09/15(日) 22:28:51.53ID:tc+PQ4bB847デフォルトの名無しさん
2019/09/15(日) 22:30:29.90ID:tc+PQ4bB848デフォルトの名無しさん
2019/09/18(水) 09:25:06.97ID:jcGpm5QT849デフォルトの名無しさん
2019/09/18(水) 12:47:39.59ID:iUGh13ZQ バッチファイルでいう、
echo %errorlevel%
はパワーシェルではどうやればいいんでしょうか?
echo %errorlevel%
はパワーシェルではどうやればいいんでしょうか?
850デフォルトの名無しさん
2019/09/18(水) 14:54:54.64ID:nNyCwAkD echo $LASTEXITCODE
851デフォルトの名無しさん
2019/09/23(月) 16:12:06.99ID:yWN8gkqC [2018.11.27] 納品書A社
[2018.11.29] 納品書B社
[181129] 納品書C社
このようなフォルダ構造になっている状態で、
このフォルダ階層だけ
3行目の"[YYMMDD] 〜〜"のような書式にフォルダ名を変更したいと思っています。
" 納品書A社"などはそのままで
元の日付も保持します
正規表現では"([2][0][1][0-9])\.([01][0-9])\.([0-3][0-9])"
に反応するものだけで出来ればと思います
どのように書けばよいのでしょうか?
[2018.11.29] 納品書B社
[181129] 納品書C社
このようなフォルダ構造になっている状態で、
このフォルダ階層だけ
3行目の"[YYMMDD] 〜〜"のような書式にフォルダ名を変更したいと思っています。
" 納品書A社"などはそのままで
元の日付も保持します
正規表現では"([2][0][1][0-9])\.([01][0-9])\.([0-3][0-9])"
に反応するものだけで出来ればと思います
どのように書けばよいのでしょうか?
852デフォルトの名無しさん
2019/09/23(月) 18:10:16.40ID:mK3aarjp >>851
Get-ChildItem -Directory |
Where-Object Name -match "^\[20(1[0-9])\.([01][0-9])\.([0-3][0-9])\](.*)" |
Rename-Item -NewName { "[{0}{1}{2}]{3}" -f $Matches[1..4] } -PassThru
これ日付の妥当性チェックはガバいけどそれは別にいいんでしょ
-match演算子を使ったらその結果は変数$Matchesに入ってることを覚えておくといい
Get-ChildItem -Directory |
Where-Object Name -match "^\[20(1[0-9])\.([01][0-9])\.([0-3][0-9])\](.*)" |
Rename-Item -NewName { "[{0}{1}{2}]{3}" -f $Matches[1..4] } -PassThru
これ日付の妥当性チェックはガバいけどそれは別にいいんでしょ
-match演算子を使ったらその結果は変数$Matchesに入ってることを覚えておくといい
853デフォルトの名無しさん
2019/09/23(月) 22:41:23.65ID:CUAPT5Qo NewNameにスクリプトブロック渡せるんだ
%{〜}の中で整形して渡す発想しかなかった
%{〜}の中で整形して渡す発想しかなかった
854デフォルトの名無しさん
2019/09/23(月) 22:54:01.34ID:GUxJcSSn DIRとって一つずつ条件に合致するオブジェジェクトをパイプ渡しするだけだよ
855デフォルトの名無しさん
2019/09/23(月) 23:39:14.69ID:mK3aarjp >>853
Delay Bindingっていって以下の条件を満たすパラメータにスクリプトブロックを渡すと
パイプラインから値が入ってくる度にパラメータの値を評価してくれる
・ ByValue, ByPropertyName属性が付加されてること
・ 型が明示的に指定されてること(ただし[scriptblock]または[object]以外)
Delay Bindingっていって以下の条件を満たすパラメータにスクリプトブロックを渡すと
パイプラインから値が入ってくる度にパラメータの値を評価してくれる
・ ByValue, ByPropertyName属性が付加されてること
・ 型が明示的に指定されてること(ただし[scriptblock]または[object]以外)
856デフォルトの名無しさん
2019/09/24(火) 10:08:27.83ID:hYZHYmb1 >>852
横だけど、すごく参考になった。ありがとう。
横だけど、すごく参考になった。ありがとう。
858デフォルトの名無しさん
2019/09/25(水) 10:57:26.88ID:E/zWVp/e PowerShell って、「Shell」と一括にされてるんだっけ?
The Top Programming Languages 2019
https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2019
The Top Programming Languages 2019
https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2019
859デフォルトの名無しさん
2019/09/25(水) 20:24:06.99ID:idiO5sU0 素のCが3位とかだから老害向けランキングでしょ
860デフォルトの名無しさん
2019/10/14(月) 15:09:43.96ID:WeKpLulI LL言語入門で有名なM.Hiroiさんは
なんでpowershellにかたくなに手を出さんのかと思ってたけど
bashとかシェルスクリプト方面は全く手を付けてないので納得
今はまさかのtcltkのページを更新中というマイペースぶり
なんでpowershellにかたくなに手を出さんのかと思ってたけど
bashとかシェルスクリプト方面は全く手を付けてないので納得
今はまさかのtcltkのページを更新中というマイペースぶり
861デフォルトの名無しさん
2019/10/22(火) 22:39:49.38ID:xAr/pqiO 3位PowerShellってマジかよ
ガチ調査版::2019年プログラミング言語 求人人気ランキング
https://qiita.com/bitai/items/c8941da683ebedd135fd
ガチ調査版::2019年プログラミング言語 求人人気ランキング
https://qiita.com/bitai/items/c8941da683ebedd135fd
862デフォルトの名無しさん
2019/10/23(水) 07:15:39.57ID:4jedgKvl >>861
決め方テキトーだからあてにならんよ
決め方テキトーだからあてにならんよ
863デフォルトの名無しさん
2019/10/23(水) 08:54:10.32ID:1cyp8e5C >>861
開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。
求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは
後者じゃないかと推測。
Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が
いくつかあるから、そういう案件もカウントされてるかもしれない。
自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。
開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。
求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは
後者じゃないかと推測。
Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が
いくつかあるから、そういう案件もカウントされてるかもしれない。
自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。
864デフォルトの名無しさん
2019/10/27(日) 10:53:22.24ID:NsKzBf3L 詳しい方、教えて下さい!
シェバン記法でバッチファイル化して実行したいのですが、自スクリプトパスを取得する方法がわかりません。
誰か教えて下さい。
シェバン記法でバッチファイル化して実行したいのですが、自スクリプトパスを取得する方法がわかりません。
誰か教えて下さい。
865デフォルトの名無しさん
2019/10/27(日) 10:58:27.15ID:Lik42TLZ PowerShell、起動が遅いのがなー
なんとかならんかなー
なんとかならんかなー
866デフォルトの名無しさん
2019/10/27(日) 11:38:43.07ID:7LOf++Wk シェバン記法てなぁに?
867デフォルトの名無しさん
2019/10/27(日) 11:42:15.29ID:NsKzBf3L >>866
以下を頭につけて拡張子を.batにするとダブルクリック実行できるようになるという記法のことです。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
以下を頭につけて拡張子を.batにするとダブルクリック実行できるようになるという記法のことです。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
868デフォルトの名無しさん
2019/10/27(日) 11:47:16.24ID:7LOf++Wk ありがと
869デフォルトの名無しさん
2019/10/27(日) 11:48:06.40ID:hJUpCTqv Ruby では、__FILE__ が現在評価中のスクリプトファイル名
シェバンは、Linux では、
#!/usr/bin/ruby
Windows に、シェバンってあるの?
.bat に、ruby .\script.rb
と書いて、ダブルクリックで起動したりする事はあるけど
.vbs でも、起動ファイルを作れる
シェバンは、Linux では、
#!/usr/bin/ruby
Windows に、シェバンってあるの?
.bat に、ruby .\script.rb
と書いて、ダブルクリックで起動したりする事はあるけど
.vbs でも、起動ファイルを作れる
870869
2019/10/27(日) 11:52:51.51ID:hJUpCTqv .bat に、powershell .\script.ps1
と書けば、ダブルクリックで起動できないか?
または、.vbs に、
CreateObject("WScript.Shell").Run "powershell .\script.ps1", 0
と書けば、ダブルクリックで起動できないか?
または、.vbs に、
CreateObject("WScript.Shell").Run "powershell .\script.ps1", 0
871デフォルトの名無しさん
2019/10/27(日) 12:06:15.48ID:NsKzBf3L872869
2019/10/27(日) 12:21:42.69ID:hJUpCTqv よく知らないけど、powershell は、ダブルクリックで起動するような、
危険なことは出来ないのじゃないか?
危険なことは出来ないのじゃないか?
873デフォルトの名無しさん
2019/10/27(日) 12:38:31.80ID:pI9qWgY0 >>872
バッチやvbsならダブルクリックも安全だとおっしゃるのでしょうか?
バッチやvbsならダブルクリックも安全だとおっしゃるのでしょうか?
874869
2019/10/27(日) 12:54:36.77ID:hJUpCTqv ダブルクリックで起動するのは、危険!
あくまで、個人用途
仕事ではやらない方が良い。
危険すぎる
あくまで、個人用途
仕事ではやらない方が良い。
危険すぎる
875デフォルトの名無しさん
2019/10/27(日) 12:57:45.64ID:gYi3Gz62 スクリプトのパスなら$MyInvocation.MyCommand.Path
876デフォルトの名無しさん
2019/10/27(日) 13:07:05.42ID:hKAQ6fM+ >>873
そのとおり
そのとおり
877デフォルトの名無しさん
2019/10/27(日) 13:40:21.93ID:Lik42TLZ878デフォルトの名無しさん
2019/10/27(日) 13:50:19.81ID:NsKzBf3L879869
2019/10/27(日) 14:01:18.04ID:hJUpCTqv ダブルクリックで起動するのは、危険!
ファイルをちょっと触っただけでも、
ダブルクリックになって起動起動されてしまうから、Microsoft も禁止してる!
Linux のシェバンでも、
ファイル名だけじゃ起動できないようにしてるだろ
./ファイル名
みたいに、パス付きじゃないと起動しないようにしてる
これも、ファイル名だけでリターンキーを触ってしまうと、起動されてしまって危険だから!
ダブルクリック起動では、多くの被害者が出てる
ファイルをちょっと触っただけでも、
ダブルクリックになって起動起動されてしまうから、Microsoft も禁止してる!
Linux のシェバンでも、
ファイル名だけじゃ起動できないようにしてるだろ
./ファイル名
みたいに、パス付きじゃないと起動しないようにしてる
これも、ファイル名だけでリターンキーを触ってしまうと、起動されてしまって危険だから!
ダブルクリック起動では、多くの被害者が出てる
880デフォルトの名無しさん
2019/10/27(日) 14:05:08.75ID:v/8cx3Zl vbsはファイルを全部パースしようとするからシェバン記法は使えないな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★2 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★6 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★4 [BFU★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 【外交】前台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」 [1ゲットロボ★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪
- 【悲報】高市早苗さん、もう辞職しか選択肢がない… [271912485]
- 【岸田速報】山上妹、覚醒。「自慢の兄」「安倍晋三と統一教会は強固な関係性」「法の下では解決不能」 [559744496]
- 【高市悲報】「岡田のせいです」と父さんに説明して通用するはずないんだけど大丈夫なの?ガチでその方向で固めてない?怒られない? [213647114]
- ネトウヨ、ついに中国人相手に犯罪を犯す [805596214]
- 【ござる専🏡】風間🥷配信実況スレ🏯【風間いろは】
