- 1 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 17:46:48.32 ID:G4IJkzod.net]
- 前スレ
【最強CUI】PowerShell -Part 2 mevius.5ch.net/test/read.cgi/tech/1480109402/
- 802 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 00:06:00.19 ID:26pp6bRY.net]
- PowerShell の1つ上は、Ruby。
より複雑な、ファイル操作・CSV・テキスト処理・シェルスクリプトなど 例えば、1-liner で、 Linux では、 ls | ruby -ne 'puts $_.center(20, "-")' Windows では、 ls -name | ruby -ne 'puts $_.center(20, %Q("-"))' ただし、Windows では、" をエスケープする必要がある。 "-" の部分を、Ruby の% 記法で囲んで、%Q("-") としたら正常に動いた %, %Q で、ダブルクォーテーションをエスケープできる。\ と同じ。 \"-\" まあ、VBScript のスレ主のピッコロ大魔王のように、 PS で、5ch をスクレイピングするような猛者もいるけど、Ruby の方が可読性が高い
- 803 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 00:15:38.74 ID:4oEGaRbg.net]
- >>769
お前は出てこなくていい
- 804 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 08:18:26.56 ID:vD0MLvXn.net]
- >>769
将来性のないプログラミング言語5選として「Ruby」が挙がり話題に https://it.srad.jp/story/19/08/09/185229/
- 805 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 22:05:00.38 ID:aNJOLvna.net]
- WindowsでRuby使うとかギャグだろ
- 806 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 23:45:41.47 ID:6VXOyYrl.net]
- RubyがギャグならPythonは?
- 807 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 00:23:10.44 ID:S2+8M2EA.net]
- PythonはAIプログラミングで一躍有名になったね
- 808 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 08:18:30.85 ID:trDWBWGh.net]
- >>773
Visual Studio が対応してるし、.NET Framework 上で動く IronPython なんてのがあるくらいだから「アリ」だろうな。
- 809 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 15:46:07.95 ID:OusQ3pFE.net]
- Windows版のPythonは結構ちゃんと動くし、Python製のGUIアプリもDropboxとかたまにある
WindowsのRubyは非推奨の流れで、WSL使うか仮想環境のLinux使うか
- 810 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 21:28:48.24 ID:n/ZUSiaV.net]
- 昔、七行プログラミングってあったけど、
PowerShellなら7行ですごいことできるよね
- 811 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 01:22:08.40 ID:kPbBL5c4.net]
- csvファイル内の特定セル?(エクセルでいうところのcells(1,2)みたいな)を変数に格納して、
そのファイルのファイル名にしたいのですが、こういったことはできますか?
- 812 名前:778 mailto:sage [2019/08/24(土) 01:39:25.56 ID:kPbBL5c4.net]
- できました。import-csvから要素の取り出しをするだけでした。
- 813 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 04:00:34.51 ID:yeIOnWDr.net]
- パイプラインにオブジェクトが流れるPowerShellライクな新シェル
Nu Shell https://github.com/nushell/nushell
- 814 名前:デフォルトの名無しさん [2019/08/26(月) 07:51:25.55 ID:LOkM9Twk.net]
- コマンドプロンプトで、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つ表示された
- 815 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 08:31:04.34 ID:sAEBXghq.net]
- >>781
Get-Command -CommandType Application notepad は試した
- 816 名前:? []
- [ここ壊れてます]
- 817 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 14:58:24.63 ID:R1/Rmq9c.net]
- >>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 の仕組み上、便宜的に「実態」と呼んでも差し支えないだろう。
- 818 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 15:00:01.45 ID:R1/Rmq9c.net]
- >>782
Get-Command notepad -all でも良いんじゃないかな
- 819 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 15:10:26.74 ID:JMmOsJb3.net]
- Why are there two copies of Notepad?
https://devblogs.microsoft.com/oldnewthing/20060328-17/?p=31753
- 820 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 15:27:38.53 ID:j8vvMRg5.net]
- >>783
独特の文体からして、この板で有名なRuby君かと思われる。話の流れと無関係にRuby推ししてきたり、頓珍漢な知識披露(間違い多数)をしてきたりする奴だから、相手するだけ無駄だよ。 おそらく、ぼくこんなこと気づいたんだよ!って嬉しくて書かずにいられなかっただけだと思う。
- 821 名前: mailto:sage [2019/08/26(月) 19:23:25.35 ID:jPNtTojU.net]
- >>786
>話の流れと無関係にRuby推ししてきたり ステキじゃないですか、この前も C/C++ スレに乱入していましたね、これからも頑張って ruby を喧伝してほしいです!
- 822 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 01:45:40.61 ID:OLaosybt.net]
- DOSメインでPSでしかできない部分だけPSにしてるのをやめて、PS一本化を増やそうかと思い立ったが
そういやDOSからキックしないと動かないのであった というわけでやはりDOSメイン
- 823 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 01:49:02.45 ID:OLaosybt.net]
- なんでそんな仕様にしたんだろうね
かといってPS直でやりたいというより、DOSを拡張して欲しかった
- 824 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 02:31:00.22 ID:AUeyxvTx.net]
- まだDOSなんて使ってんの
- 825 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 17:41:47.14 ID:DT/yO98c.net]
- なんでps1てへんてこな拡張子なの
- 826 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 18:06:41.10 ID:JlFv53u2.net]
- どっかのゲーム機みたいにPowerShell 2, PowerShell 3, …って作るんじゃね?w
- 827 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 21:28:53.53 ID:2r3hz+dJ.net]
- >>791
PowerShell の ps1 ファイルは 何故 1なのか https://tech.guitarrapc.com/entry/2013/09/06/220944
- 828 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 02:40:35.65 ID:tqyYzyWN.net]
- 考え無しに作った結果か・・・
- 829 名前:デフォルトの名無しさん [2019/08/29(木) 03:16:31.66 ID:RYMiansx.net]
- 基本的なことが分かってない気がするのだけど教えてください
get-date, get-childitem, get-location といったコマンドレットの代わりに get 無しで date, childitem, location と入力しても同じ結果になる これら get 無しコマンドは get 付きのエイリアスなのか? と最初は思ったのだけど そんなエイリアスはないと言われる これらの get 無しコマンド(?) はどういう立ち位置なんでそ? ちなみに例えば location.bat とかを PATH の通った場所に置いておくと そっちが実行されるので、これらは
- 830 名前:Tーチパスより優先度が低いようです []
- [ここ壊れてます]
- 831 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 04:05:52.42 ID:TR1/uwdi.net]
- >>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を探すよってこと
- 832 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 04:22:51.28 ID:RYMiansx.net]
- >>796
明快な回答ありがとうございます > Trace-Command CommandDiscovery { date } -PSHost これ勉強になりました
- 833 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 19:25:49.72 ID:+UUfxV7s.net]
- 初心者で右も左もわからない状況で申し訳無いのですが、
明示的に設定してる共有ディレクトリとアクセス権を一括で出力ってできたりするんですかね? Get-wmiobject -class win32_share だとアクセス権までは出力されなかったんで... 詳しい方教えて頂きたいです。
- 834 名前:デフォルトの名無しさん [2019/08/30(金) 00:19:55.56 ID:kVpvpBih.net]
- 「powershell アクセス権限 確認」で検索!
こんな感じ? ls | Get-ACL
- 835 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 10:55:43.01 ID:uzgqDeg8.net]
- >>799
ありがとうございます。 検索してみます。 PowerShellはほんとに難しいです...
- 836 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 17:24:06.26 ID:LE0BBPZ5.net]
- ふぁあああ・・・・
解決してよかったよぉお ハロー優しい世界、だねええええ^^
- 837 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 01:23:05.71 ID:SOW3zbb3.net]
- Set-ACLは使うな
- 838 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 06:28:56.33 ID:jlJXcZnh.net]
- >>802
替わりに何を使ったら良いですか?
- 839 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 06:44:55.31 ID:jb/JoUUS.net]
- >>802
why?
- 840 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 10:39:33.44 ID:sSufJvsQ.net]
- >>804
俺は >>802 ではないが、Set-Acl は使いづらい。 そもそもの理由は Windows の ACL (ACE) が複雑だからなのだが、対象にセットする ACL オブジェクトを作るのが分かりづらい。 例:All Users のスタートメニューのアクセス権を変更し、一般ユーザにも書き換えられるようにする場合(既存の権限に追加) https://pastebin.com/R3JBWF2h 他のフォルダなどから ACL オブジェクトをコピーし、それをそのままターゲットに適用するだけなら簡単なのだけど。 >>803 「何が何でもすべて PS でやる!」 というポリシーでないのなら、cscls.exe、icacls.exe のほうがお手軽。
- 841 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 10:48:02.60 ID:jlJXcZnh.net]
- >>802に答えて欲しいな
- 842 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 11:08:11.46 ID:sSufJvsQ.net]
- >>806
ごめんね
- 843 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 15:10:43.76 ID:SOW3zbb3.net]
- >>802だけどSet-ACLは所有権絡みで問題抱えてる
下サイトで説明されてる https://qiita.com/carbonss/items/cc6d33fe6645a86171ad
- 844 名前:デフォルトの名無しさん mailto:sage [2019/09/07(土) 15:12:47.14 ID:SOW3zbb3.net]
- あ、>>803への答えはicaclsコマンド使えね
powershellは変な仕様あるから割と警戒した方がいい
- 845 名前:デフォルトの名無しさん mailto:sage [2019/09/08(日) 20:21:13.64 ID:d6DJW1MN.net]
- F:/ に SDカードがマウント
- 846 名前:ウれているのを
アンマウントするコマンドは何ですか? [] - [ここ壊れてます]
- 847 名前:デフォルトの名無しさん mailto:sage [2019/09/08(日) 21:55:23.61 ID:D+CIKcq7.net]
- >>810
(New-Object -comObject Shell.Application).Namespace(17).ParseName('F:').Verbs()|?{$_.Name -match '取り出し'}|%{$_.Doit()}
- 848 名前:デフォルトの名無しさん mailto:sage [2019/09/09(月) 16:38:34.04 ID:8EKyQA8Q.net]
- >>811
thanks
- 849 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 21:38:04.40 ID:Eo4YqZPr.net]
- ■C:\hoge.txtの内容
aaa bbb bbb bbb ccc ccc ccc ccc ccc ↑のようなテキストファイルがある場合に、↓の結果(タブ区切り)を得るにはどうすれば良いのでしょうか? aaa 1 bbb 3 ccc 5
- 850 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 22:19:37.38 ID:L5QX1JAH.net]
- >>813
Group-Object
- 851 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 22:36:34.85 ID:hrOpSOVs.net]
- 頼むから順不同なのかそうじゃないのか
書いてから質問してくれ
- 852 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 23:28:19.24 ID:Eo4YqZPr.net]
- >>814
gc C:\hoge.txt | Group-Object などとやってみたのですがうまく動かず… >>815 ソート済みです><
- 853 名前:デフォルトの名無しさん mailto:sage [2019/09/10(火) 23:30:43.39 ID:L5QX1JAH.net]
- >>816
上手く動かずじゃよくわからんからどういう出力なのか書いて エラーになるの?
- 854 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 00:05:23.05 ID:TMos3buL.net]
- あータブ区切りの文字列にしたいんか
gc hoge.txt | group | foreach { $_.name,$_.count -join "`t" }
- 855 名前:816 mailto:sage [2019/09/12(木) 00:24:07.29 ID:W/V8jwbc.net]
- >>818
★★★★★ ありがとうございます! 実はまだ試せてないのですが、期待を込めて★5つです!(^_^)
- 856 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 10:44:16.82 ID:W/V8jwbc.net]
- >>805
icaclsってps1ファイル内でも普通に呼出せるのね ps1→bat→icaclsみたいに呼出さなきゃならないのかと思った コマンドというより単なるexeってことか
- 857 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 13:07:06.37 ID:9SxJRVV0.net]
- これからは>>819みたいに★で評価しよう
★☆☆☆☆ クソレス ★★★★★ 問題解消
- 858 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 14:46:18.96 ID:pQlsfVOK.net]
- ふーむ、アホがアホに同調するアホな好例だな、アホすぎてオレにはよく分らんのだが、アホだということは分かる
アホA「ありがとうございます! まだ試していないけど! ★5つです!(^_^)」 アホB「・・これは良い! これからは★で評価しよう!」 ボク「・・いやいや、まだ試してもいないのだから評価もくそもねーだろ、★2〜3の定義もねーし、こいつらアホの極みだな」
- 859 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 14:53:12.75 ID:j3ZoG8EK.net]
- >>822
★
- 860 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 17:51:47.62 ID:TUHPbFV0.net]
- >>822
これが噂のヤラセレビューってやつか?
- 861 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 18:29:54.11 ID:5CMOpd/7.net]
- >>822
☆
- 862 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 19:50:41.33 ID:igJ/H+nC.net]
- icaclsとか括弧を多用するコマンドはエスケープうざいですね
ヒアドキュメントみたいな感じでスマートに書けませんか
- 863 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 20:13:01.19 ID:Vx47yrR/.net]
- PowerShellで非同期処理って酷く書きづらいと思ってるんだが、こんなもんなんか?
変数を渡すのにめっちゃ苦労したんだが…
- 864 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 21:35:11.86 ID:3ZdspPUD.net]
- 具体的にはどんなコードを書いたの?
- 865 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 21:49:24.82 ID:Vx47yrR/.net]
- あまりにもニッチな製品の負荷テスト用スクリプトだから具体的には言えないが、平たく言えば自作関数とWin標準コマンドを引数変えながら並列投入するだけ
bashと比べちゃ駄目なんだろうが、スクリプト書いててキレそうになったのは久
- 866 名前:しぶりだわ []
- [ここ壊れてます]
- 867 名前:デフォルトの名無しさん [2019/09/13(金) 23:05:20.75 ID:ha69B7nJ.net]
- runspaceでやってるのかjobでやってるのか
- 868 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 01:25:26.61 ID:XbAlqDVd.net]
- そんな苦労するもんだっけか
- 869 名前:デフォルトの名無しさん [2019/09/14(土) 01:53:38.89 ID:ogAZWftq.net]
- 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() }
- 870 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 01:55:28.35 ID:ogAZWftq.net]
- $ps.EndInvoke($result)
だわ
- 871 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 20:16:09.07 ID:atxyCPua.net]
- 変数じゃねーじゃねーか!
- 872 名前:デフォルトの名無しさん [2019/09/14(土) 20:31:39.96 ID:jbpc8Cnk.net]
- 連想配列にして渡そうぜ
https://devblogs.microsoft.com/scripting/beginning-use-of-powershell-runspaces-part-2/
- 873 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 20:49:09.80 ID:atxyCPua.net]
- 渡したかったのは関数だって言ってんじゃねーか!
- 874 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 21:11:58.91 ID:ogAZWftq.net]
- >>836
>>832のスクリプトブロック内のInvoke-Expressionをした時点で渡した関数(というか親スコープの関数全部)使える 特定の関数にしたかったら$function:関数名.Ast.ToString()で必要分を配列に突っ込んで渡してiexするだけや
- 875 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 22:03:58.44 ID:atxyCPua.net]
- psm1にまとめて読み込んだほうが楽そう…
- 876 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 22:24:21.00 ID:Tzf8a7mL.net]
- うむ
- 877 名前:デフォルトの名無しさん [2019/09/15(日) 15:45:03.86 ID:4TgO8+RX.net]
- >>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
- 878 名前:デフォルトの名無しさん [2019/09/15(日) 17:42:03.16 ID:tc+PQ4bB.net]
- 5.1から4.0に戻さないと日本語でいろいろ書いてくれないからわからないんです…
どうやって戻したらいいんでしょうか…(´・ω・`)
- 879 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 18:02:21.21 ID:LMFjfaUx.net]
- どういうこと(´・ω・`)
- 880 名前:デフォルトの名無しさん [2019/09/15(日) 19:37:50.46 ID:tc+PQ4bB.net]
- (´・ω・`)すみません自己解決しました 更新プログラムの一部を削除したら望む結果が得られました お騒がせしました
- 881 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 20:17:50.41 ID:aATf+6N9.net]
- WMF 5 に上げるとUIの表示が英語になるやつかねたぶん
- 882 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 20:48:36.32 ID:ORV+CvDJ.net]
- win7pcのPSを5.1にした時に日本語化探したけどわかんなかったから詳しく書いてほしかった感
- 883 名前:デフォルトの名無しさん [2019/09/15(日) 22:28:51.53 ID:tc+PQ4bB.net]
- >>844
たぶん
- 884 名前:それですお騒がせしました
これから精進していきます [] - [ここ壊れてます]
- 885 名前:デフォルトの名無しさん [2019/09/15(日) 22:30:29.90 ID:tc+PQ4bB.net]
- >>845
ざっくり言うと コントロールパネルからプログラムと機能に行って インストールされた更新プログラムの項目を開いて WMF5をアンインストールしたという流れです
- 886 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 09:25:06.97 ID:jcGpm5QT.net]
- v6.1.6
https://github.com/PowerShell/PowerShell/releases/tag/v6.1.6 v6.2.3 https://github.com/PowerShell/PowerShell/releases/tag/v6.2.3
- 887 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 12:47:39.59 ID:iUGh13ZQ.net]
- バッチファイルでいう、
echo %errorlevel% はパワーシェルではどうやればいいんでしょうか?
- 888 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 14:54:54.64 ID:nNyCwAkD.net]
- echo $LASTEXITCODE
- 889 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 16:12:06.99 ID:yWN8gkqC.net]
- [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])" に反応するものだけで出来ればと思います どのように書けばよいのでしょうか?
- 890 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 18:10:16.40 ID:mK3aarjp.net]
- >>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に入ってることを覚えておくといい
- 891 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 22:41:23.65 ID:CUAPT5Qo.net]
- NewNameにスクリプトブロック渡せるんだ
%{〜}の中で整形して渡す発想しかなかった
- 892 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 22:54:01.34 ID:GUxJcSSn.net]
- DIRとって一つずつ条件に合致するオブジェジェクトをパイプ渡しするだけだよ
- 893 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 23:39:14.69 ID:mK3aarjp.net]
- >>853
Delay Bindingっていって以下の条件を満たすパラメータにスクリプトブロックを渡すと パイプラインから値が入ってくる度にパラメータの値を評価してくれる ・ ByValue, ByPropertyName属性が付加されてること ・ 型が明示的に指定されてること(ただし[scriptblock]または[object]以外)
- 894 名前:デフォルトの名無しさん mailto:sage [2019/09/24(火) 10:08:27.83 ID:hYZHYmb1.net]
- >>852
横だけど、すごく参考になった。ありがとう。
- 895 名前:851 mailto:sage [2019/09/24(火) 15:33:38.23 ID:SPmBMSDI.net]
- >>852
やりたいことが出来ました。ありがとう!
- 896 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 10:57:26.88 ID:E/zWVp/e.net]
- PowerShell って、「Shell」と一括にされてるんだっけ?
The Top Programming Languages 2019 https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2019
- 897 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 20:24:06.99 ID:idiO5sU0.net]
- 素のCが3位とかだから老害向けランキングでしょ
- 898 名前:デフォルトの名無しさん mailto:sage [2019/10/14(月) 15:09:43.96 ID:WeKpLulI.net]
- LL言語入門で有名なM.Hiroiさんは
なんでpowershellにかたくなに手を出さんのかと思ってたけど bashとかシェルスクリプト方面は全く手を付けてないので納得 今はまさかのtcltkのページを更新中というマイペースぶり
- 899 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 22:39:49.38 ID:xAr/pqiO.net]
- 3位PowerShellってマジかよ
ガチ調査版::2019年
- 900 名前:プログラミング言語 求人人気ランキング
https://qiita.com/bitai/items/c8941da683ebedd135fd [] - [ここ壊れてます]
- 901 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 07:15:39.57 ID:4jedgKvl.net]
- >>861
決め方テキトーだからあてにならんよ
- 902 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 08:54:10.32 ID:1cyp8e5C.net]
- >>861
開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。 求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは 後者じゃないかと推測。 Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が いくつかあるから、そういう案件もカウントされてるかもしれない。 自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。
|

|