Windows PowerShell Part5 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
仕事を進められるか、スケジュールが組めるか、がまず試されてる気がする 言われていませんじゃなくて、おまえが積極的にインタビューするんだよ!! 仕事として言われたなら当然今後の維持・メンテ等も考慮する必要があるはず
ずっと自分が関わっていくなら間に合わせで仕上げてもかまわんかもしれんけどさ
いざ部署異動発令されて急にドタバタしてるところに
移動までに仕様書出してねとか言われるのは嫌だろうし
しかも時間が経ってたりすると自分でも忘れちゃってたりする部分が出てきて
頑張って思い出そうとしたり再度調べたりしなきゃいかんとか嫌すぎる つうかなんでスレチのコミュ障の相手をするわけ?
そういうことすると居着くからやめて欲しい 結局自分のことにしか興味なくて相手にどうわかってもらえるかとか考えてないんやろ
そんなん転職してもうまくいかんわ 応用情報ってなにかと思ったら昔の第1種なんだな
俺は第2種をCASLとCOBOLで受験して落ちたぜーw よくわからないからこういう書き方になっただけ
もう仕事はどうでもいいから応用情報だけ取って引退します 私は能力的にもう無理だ。
頑張っても分からないし、もう衰えているからどうしようもない。
数か月間の小遣い稼ぎだと考えることにする。
4月に受ける応用情報技術者試験で最後にしたい。
パワーシェルはまだまだ全然怪しいが、出勤時は多少は勉強しよう。
自分の給料はいくらになるのだろうか。
最後は裏切ることになるから、それまではおとなしくしておこう。 ディスク断片化監視システムの構築
Windowsサーバのディスク断片化を検知する仕組みの検討、作成、実装
断片化閾値検討、断片化検知PowerShellの作成、テスト
PowerShellを本番機に実装、PowerShell設計
Windowsサーバ構築、JP1/AJS、タスクスケジューラ
サーバ定期点検、リソース状況の分析、障害対応作業、パッチ適用作業
システムの運用保守設計作業、ドキュメント作成
仮想化、VMware、Hyper-V、運用監視ミドルウェア、JP1、
運用設計、アンチウイルス、DeepSecur、バックアップ、ログ
ネットワーク、容量、クラウド上での基盤構築 >>418
第1種ってもう20年近く前になくなったぞ >>421
それが上司がくれた「紙ペラ」のメモなら、色々要件が書いてあるじゃないか。
しきい値やログ、チェック頻度をどうするかの発案〜検討〜調整が含まれる、スケジュール化はタスクスケジューラとAJSどちらかを選べる、発報先はJP1なんだろうな だからなんでキチガイに触るかな
そんなに背景読み取れる俺様凄いをしたいわけ? >>426
おまえの快不快なぞ知ったことか、嫌ならあぼんしとけ 誰もここにパワーシェルのスクリプトを書いてくれない、、、
もう諦めました
どうせ数か月で辞めるからどうなってもいいです PowerShell使ってみようかと思ったんだけどコマンド操作だけじゃ使い難くてしょうがないな
昔のMSDOSみたいにFDとかFILMTNとかDOSShellみたいなユーティリティーは無いのかこれって? ユーティリティが使いたければ普通にGUIアプリを起動すればいいのでは? >>431
CUI時代の化石の話はやめるんだ
まあPowerShellでやると冗長な操作もあるしそういうのは従来のコマンド使ってねって感じで割り切って作られてる 俺が初めて触ったOSは・・・MS-DOS3.0なりー >>431
海外にはあるようなので、ネットで探ってみて Powershellを始めてまだ数日
実際に何日やっているかもよく分からない
最大でも6、7日かな
コマンドもまだ覚えきれていない
シャットダウンとかも見ながらやっていた
ただ、Stop-Computer -Force、とようやく覚えられたぐらい
はっきり言って、現場に入っても使えねえ扱いされる可能性がかなり高い
だけど、それでもいい
今回は数か月間お金を稼げればいい
自分が正社員じゃなかったり、今月の給料が出ない可能性もあるし
何せいくら給料が出るのかも分かっていない
それでもおそらくこれがIT業界で最後の仕事になるでしょう
ここを最後にITとは縁を切ります
さようなら 自分の受けた仕事をここに丸投げしようって腹が気に食わない 軽自動車ですら運転したことのない奴に大型ダンプを運転させるようなことを、なぜこの業界はやるんだろうな。
そんな馬鹿の面倒を見させられる現場の人が可哀想でならない。 とりあえずPowershellのコマンドを全部覚える必要はないw psのコマンドレットは割と糞だらけだから.NETの呼び方覚えた方が捗る >>438
何日もネットで色々調べて分からないから追い込まれてここで聞いただけです。
もうどうでもいいです。
どうせ6月で辞めます。
色々お世話になりました。
さようなら。 数ヶ月の仕事をここで書いてもらうってさすがに無理だろ
大抵の見積もりでは、一人月1000〜2000ステップはいるぞ 要件不明瞭で丸投げされてもどんなプロでも正答はできない(の割に色々なアドバイスはきちんとした)。
これでなにも答えてないというなら今すぐ仕事を降りろ。迷惑だ。 もう分からないから諦めました。
コマンド1つでも書き込んでくれた方はありがとうございました。
私はもう辞めることを決意致しました。
やれるだけのことを頑張って、怠けていると暴言を受けるでしょうね。
今までお世話になりました。
さようなら。 さよならは別れの言葉じゃなくて〜 再び会うための遠い約束ぅ〜 うわごとの様に同じ事を繰り返し書きつつ、その自覚もなさそうだ。
お前さんは健常な判断力を失ってしまった精神が病気の状態
なにはともあれきちんとした精神科でカウンセリングを受けること そりゃ病むよ
頑張っても分からない
頑張った結果、受けるのは暴言のみ
能力は低いけど調べても何をすればいいのかよく分からない
だけど別に駄目なら辞めればいいだけ
1社面接の予定も入れてみた
同日にもう1社は入れるか考えたけど多分入れない
一応、可能な限りはやってみることにした
ただし、優先するのは応用情報技術者の勉強
これを取って二度とSEはやらない >>450
まず第一にやることは上司と相談すること
自分が何を悩んでいるのか話してみること 相手をする奴がいるから湧いてくるってことに、なんで気づけないのかな。
馬鹿なのかな。 普通でまともなコミュニケーション出来ないかぎり、できる仕事は限られる。
ライン作業や清掃員とかなら何とかなるかな 刺身の上にタンポポをのせる仕事
コミュ障のキミにマジおすすめ 2019年2月に入社しましたが
面接の時に社長に言われた新人でもできる仕事というのが嘘でしたし
給料も入社月には出ないし
PowerShellをネットで検索しても良い情報が少なく
どうすれば良いのか分からないです
おそらく頑張ってもできるようにならないでしょう
だから残り62日間は応用情報技術者試験のことだけを考えます
昨日で今の会社を退職する決意をしました
だから残り数ヶ月で今の人達全員と縁を切るわけですから
どう思われても構いません
どうせどんなに頑張っても無駄で怠けている扱いを受けて
使えないと暴言を受けて追い込まれるだけでしょう
会社の先輩も人間的に嫌いですしもうどうでもいいです
一応多少PowerSherrをやりながら応用情報技術者の勉強の方を重視します これのここの部分が分からないのですがと質問できるレベルならば
単純にそれをグーグルで検索すればいいだけです
どうせ聞いても無駄です 応用情報持っててもあまり意味ないのは内緒だよ・・・ すんません、教えてください。
Edgeを自動操作することはできるのですか?
フォームに名前や数値を記入し、ボタンを押すなどということはできるのですか?
UWSCでIEを操作しているのですが、そのかわりに使えないかと思っているのです。
よろしくお願いします。 >>455
>PowerShellをネットで検索しても良い情報が少なく
>どうすれば良いのか分からないです
先に『何をやるかがあって、そこでPowerShell使う』これが先にないと
良い情報とか有りえないですよね。
何見ていいいかすらわからなくなっちゃう。 >>461
ここはお前の日記じゃない
Twitterでやっとけ 何かを始めるのにはまずはネットとかから2、3サンプルを拾って
自分の環境で実行してフィーリングをつかむ事でしょうね
その後に何かの課題を自分で見つけてググりなからでも実行しながら身に付けていくといいでしょう
検証作業をしなからじゃないと何でも身に付きませんよ
その内に各コマンドのパラメーター内容も理解出来るレベルになるでしょう まずはdefrag.exeがあるシステムフォルダのパスを取得してみましょう。 >>461
すくなくとも、今はないですね。
利用価値がないのではなくて、仕事出す方が利用価値をしらないから
将来的には十分あると思う。
でも「PowerShell使えるひといますか〜?」ではなくて
パッケージ的に、特殊なコマンドレットなどをつくって商売にする
という形なのではという気がしている。
あくまで、気がしているだけですけど。 独学で何を学べば仕事があるんだろう?
PHPかな? >>468
何を作るかで必要な言語が見えてくる。ー AzureAD、Office365を使うなら(Office365についてはGraphの使いこなしも必須)。バッチやVBSの代替としても必須。
「Powershellが出来る」だけではなくPowershellも活用し、なんの業務をしてたか?がスキルとなる。
基本的にはインフラ屋のスキル要素 powershellはロードが重いからログイン時に何かさせようとするとワンテンポ遅れてしまうね。
C#で組むかな。 俺はログインスクリプトは、WSHで間に合うならjscriptを使うな >>471
必要になったところだけC#と組み合わせができるのが
PowerShellの良いところでもあるんで、いいんでない? 趣味プログラミングでPowerShell使ってるけど、
ドキュメントとか解説サイトがC#/.NET知ってる前提みたいなのが多くて大変
英語圏のサイトにはお世話になる PowerShellで内容のあることやろうと思ったら.NETは必須でしょ
言語仕様の知識だけじゃどうにもならん >>476
あ、一緒です。
英語不得意なのに、向こうのサイトにお世話になってる。
日本は管理用ばかりみたいに使ってるけど
向こうはいろいろあって、アプリ的な利用もされているんで
面白い。 誰か断片化が10%以上ならデフラグを行うスクリプトを書いて下さい
danpenkacheck.ps1とかで if($断片化率 -ge 0.1){やれ-でふらぐ} defrag.exeを -a -v で起動してその結果をパイプで受け取れば良いんじゃね? if($断片化率 -ge 0.1){やれ-でふらぐ}
defrag.exe -a -v
format c: /x /p:10 PS C:\Users\user> if($断片化率 -ge 0.1){やれ-でふらぐ}
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> PS C:\Users\user> defrag.exe -a -v
Microsoft ドライブ最適化ツール
Copyright (c) Microsoft Corp.
操作を実行するボリュームを指定してください。 (0x89000007)
説明:
システムのパフォーマンスを向上させるため、ローカル ボリューム上の
ファイルを最適化します。
構文: PS C:\Users\user> format c: /x /p:10
アクセスが拒否されました。十分な特権がないか、ディスクが別の
プロセスによってロックされている可能性があります。
このユーティリティの実行は管理者特権モードで起動する必要があります。
また、ディスクのロックが解除されていることを確認してください。
ダイレクト アクセスのためにボリュームを開けません。 ITエンジニアは知らない知識にぶつかった時調べる能力がないとやれない。
今回の例ならエラーメッセージをそのまま""で囲ってググればいくらでも対処例が見つかる
そんなこともできなくなったなら自分が異常だと認めるしかない。
病院へ行け、いますぐ一線を退け。 こいつはさすがに愉快犯だろ…
あるいはPoweshellで書かれた高度AIかもしれない
サヨナラ
サヨナラ
サヨナラ 冗談ならさておき何も考えずにformatコマンド流しちゃうようなのは困るわw >>495
初心者がやったとしてもCドライブである限りロックされていて不可能だから被害はない
やるとしたら回復環境を起動したコマンドプロンプトで実行しない限り無理です Cドライブフォーマットが駄目でもファイル全消去ならイケるのか >>496
何も考えずに流しちゃうのは困るでしょ
仮にシステムドライブ以外だった場合どうなるのかと
基礎的な知識くらい持った上でやらんとあかんってこと 中傷IT企業に入社してネットで色々調べながらやってもいるけどどうしてもわかりません
というか要件を聞いて何をすればいいのかもわかりません
この分だと使えないときられるでしょう
そう言われても頑張ってもどうしようもないので困っています
ITには向いていないのにITにしか採用されないなんて 案件 ディスク断片化監視の構築
作業内容
Windowsサーバのディスク断片化を検知する仕組みの検討、作成、実装
・断片化閾値検討
・断片化を検知するPowerShell作成、テスト
・PowerShellを本番機に実装
スキル
・PowerShell設計、作成
・Windowsサーバ構築
・JP1/AJS、タスクスケジューラ powershellの本自体が複数の本屋を見たけど売ってなかった
アマゾンで評判を見たら結局スマホで調べたとか感想があったりで
本も役に立たなそうなのと結局あまり使われていないスキルってことか
時間がかかり過ぎているとか言われているけどどうすればいいか分からないから
このまま止まっているだけになってしまう
これはやれるわけないってのが正直な感想だな
それでも一応は考えるけど必要な情報もなくてどうしろというんだか
逆に優秀だったら今の中小ITには来なかったのは明白なんだよなあ
育てれば使えるようになるかもしれない人材を会社はどうするんだろうね for文の意味から分かっていない
for($i=0; $i -le 10; $i++) {
"カウンター : $i"
}
# 実行結果
カウンター : 0
カウンター : 1
カウンター : 2
カウンター : 3
カウンター : 4
カウンター : 5
カウンター : 6
カウンター : 7
カウンター : 8
カウンター : 9
カウンター : 10 もうこない、もう書き込まない、2月で止めるからどうでもいいって何度繰り返してるんだよ
個々はあんたが愚痴を書き込んだりあんたの愚痴を聞いたりするところじゃないの
職歴にしたいのならLinkedInにでもアカ作って書き込んでなさいな 今はこれを1回試しただけ
応用情報の過去問を印刷して
それに答えを書き込んでいます
ITは嫌でやりたくないけど >>506
2月ではやめないよ
少しは様子を見るし
今は早く帰れるからリハビリ扱いにしている コボラーになるかな
COBOLが人気ないなら
それを覚えて
運用保守でも監視でも何でもいい >>505
勿論わかるが教える気はない。
理由は>>491 そのわかんないというのは、
PowerShellが分からないんじゃなくて、やり事柄の知識
いわば業務知識のひとつだな。
断片化などの意味と、そちらを調べだすユーティリティーなどの知識
そして、それが業務や経営に与えるコストのインパクト。
そういった知識ががないという話ですね。
それがあれば、言語は何使ってもいいし、PowerShell使うときには
PowerShellの何を覚える必要があるかは、自ずとわかってくる。 >>505を見るにPowerShellうんぬん以前の問題だし
これ分からんかったらPowerShellどころかおそらくどの言語でもダメだろうに 育てれば使えるようになるかもしれない人材という自己認識があるのかいな
悪いこと言わないからCOBOLを含めてITは全部もう手を出すな
さっぱり向いてないことに頑張っても現に辛いだけだろ
給料安くても日光のもとで体動かす仕事がメンタルにもいいぞ
資格の勉強より筋トレをしろ >>510
おまえ現実での人の対応もこの掲示板の連中に対する対応と同じだろ
死んだほうがいいぞ バブルの頃は入社して変数とは?から教えてくれる会社があったけど
今はある程度知識がないと厳しいんじゃね?さすがにfor文ぐらいは理解してないと厳しいよ >>500
検索したらヒントはあるけど、スクリプトを書くしかない。
断片化を表示するコマンドはありますねw Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\user> Optimize-Volume
コマンド パイプライン位置 1 のコマンドレット Optimize-Volume
次のパラメーターに値を指定してください:
DriveLetter[0]: PS C:\Users\user> Optimize-Volume C
Optimize-Volume : Access denied
Activity ID: {bca1b272-eaf1-4a38-88ce-09620bbb75b7}
発生場所 行:1 文字:1
+ Optimize-Volume C
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (StorageWMI:ROOT/Microsoft/...age/MSFT_Volume) [Optimize-Volume], CimE
xception
+ FullyQualifiedErrorId : StorageWMI 40001,Optimize-Volume Optimizes a volume.
音量を最適化します。 This example reports only the current optimization state of drive H.
この例では、ドライブHの現在の最適化状態のみを報告します。 This example defragments drive H.
この例は、ドライブHを最適化します。 各ドライブにデフラグが必要か調べる
wmi win32_logicaldisk -Filter DriveType=3 | %{
$drive = $_.DeviceID
$disk = gwmi win32_volume -Filter "DriveLetter='$drive'"
$def = 1 | select Drive,DefragRecommended
$def.Drive = $drive
$def.DefragRecommended = ($disk.DefragAnalysis()).DefragRecommended
$def
} | ft -auto
この構文を解釈すると何か変数に色々入れている PS C:\Users\user> wmi win32_logicaldisk -Filter DriveType=3 | %{
>> $drive = $_.DeviceID
>> $disk = gwmi win32_volume -Filter "DriveLetter='$drive'"
>> $def = 1 | select Drive,DefragRecommended
>> $def.Drive = $drive
>> $def.DefragRecommended = ($disk.DefragAnalysis()).DefragRecommended
>> $def
>> } | ft -auto
wmi : 用語 'wmi' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください
。
発生場所 行:1 文字:1
+ wmi win32_logicaldisk -Filter DriveType=3 | %{
+ ~~~
+ CategoryInfo : ObjectNotFound: (wmi:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException 断片化の閾値をいくらにするかとか
断片化が何%か確認するパワーシェルが分からない defrag.exeが断片化率を返してくれるだろー 自己学習でどうにもならんならどっかの企業教育受講しに行くしかなかろうて
5ちゃんねるは無料サポートの場じゃないんだぞ 手取り足取り無料サポートしたとしても伝わる相手だとは思えない
上司を言葉足らずなところがあると評したように、分かるように教えてくれないと恨まれる未来しか想像できない >>528
どうもです
断片化率が返っていたのですか
>>535
ボリュームの情報を取得するエアしいです
エイリアスです >>512
何も分からないですね
スクリプトの構文も読めないですし
こういうのを解釈してくれるサイトでもあれば良いのですが 「誰か断片化を検知するパワージェルを教えてください >>525はワザとかコピペミスか知らんが先頭の一文字が欠けてるだけ >>536
エイリアスといったって、
エラーに『そんなのないよ〜』って出てるけど >>537
自分であれこれやって分からんのだったら自費なり会社に金出してもらうなりして
企業がやってるPowerShellの教育受講してこいよ
そこで教わって分からんところは徹底的に聞けば良かろう
ここでいつまでもグダグダやられたって迷惑だって言われてるの分からんのか? PS C:\Users\user> gwmi win32_logicaldisk -Filter DriveType=3 | %{
>> $drive = $_.DeviceID
>> $disk = gwmi win32_volume -Filter "DriveLetter='$drive'"
>> $def = 1 | select Drive,DefragRecommended
>> $def.Drive = $drive
>> $def.DefragRecommended = ($disk.DefragAnalysis()).DefragRecommended
>> $def
>> } | ft -auto
Drive DefragRecommended
----- -----------------
C: False PS C:\Users\user> gwmi win32_logicaldisk -Filter DriveType=3
DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 98662301696
Size : 158981132288
VolumeName : Windows PS C:\Users\user> gwmi win32_volume -Filter "DriveLetter='C:'" PS C:\Users\user> 1 | select Drive,DefragRecommended
Drive DefragRecommended
----- ----------------- >>545
これでいいやん。デフラグが必要ならtrueで。 >>556
たった数行で6月までの仕事なのか
楽でいいな 上司から課せられた真の業務命令はいかに他人に無償でプログラムを書かせるかという課題であった ここでグダグダ質問するよりはMicrosoftコミュニティでやった方が有益だと思うんだがな
モデレーターもいるし
https://social.technet.microsoft.com/Forums/ja-JP/home?forum=powershellja
それでも仕事の丸投げは給料もらう資格ないだろう 納期まで言い切った
これ無能君の上司動き始めてるだろw いまは重さで料金を決めるのが一般的
200グラム1000円とか ドキュメント、粘土板に象形文字で書いてもいいんかね? ショートカットキー Alt + F4 で窓が閉じないのです 他に方法ありますか?
Windows10です あれはあってもなくても良かった
メディアが話を大きくして死人がでたが 「あの日」では数千万円の印税でぼろ儲けさせて戴きました エクスプローラーやアプリをダークテーマにする操作をpowershellで出来ますか?
ちなみに10の1809です How to Enable Dark Theme on Windows 10 - Appuals.com
https://appuals.com/how-to-enable-dark-theme-on-windows-10/
$keys = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize', 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize'
$keys | Where-Object{-not (Test-Path $_)} | Foreach-Object{New-Item $_}
$keys | Foreach-Object{New-ItemProperty $_ 'AppsUseLightTheme' DWORD 0}
かな 位置パラメータじゃなかった
$keys = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize', 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize'
$keys | Where-Object{-not (Test-Path $_)} | Foreach-Object{New-Item $_}
$keys | Foreach-Object{New-ItemProperty $_ 'AppsUseLightTheme' -PropertyType DWORD -Value 0 -Force}
でいけるはず(作成済みの場合は上書き) PowerShellのソースを隠蔽するのにいい方法ってないですか?
PS2EXEでexe化するという方法もあるけど、これだと引数の引き渡しができないですよね。 PowerShellは使い捨てかプロトタイプ作成用じゃないの?
隠したいならC#とか使いなよ >>585
「引数の引き渡しができない」って、引数を受け取るようなスクリプトをexe化してもexeが引数を受け取ってくれないってこと?
PS2EXEは試してないけど、PS2EXE-GUIだと引数受け取るサンプルがあって動いたよ。
https://gallery.technet.microsoft.com/scriptcenter/PS2EXE-GUI-Convert-e7cb69d5
PS2EXE-GUIも簡単にデコンパイルできてしまうので厳格な隠蔽にはならないみたいだけど、用途によってはこれで十分だよね。 >>588
そーなんです。
PS2EXEでサンプルプログラム組んだんですが、引数を単なるパラメータとしか認識してくれず・・・
PS2EXE-GUIは開発がストップしているらしくノーチェックでしたが
リンク先の情報いけそうですね!ありがとうございます! >>589
良かった。
ちなみに、PS2EXEが開発ストップして引き継いだのがPS2EXE-GUIだよ。 RuntimeBroker.exeとSecurityHealthSystray.exeがバックグラウンドで動いているのを止めたいのですがどうしたら良いのでしょうか? 無条件に止めていいのなら
Start-Process powershell -Verb RunAs -Command "Get-Process RuntimeBroker*,SecurityHealthSystray* | % {`$_.Kill()}"
サービスを止めるのならSysInternalsのprocexpとかでそのプロセスのサービス名を調べて
Start-Process powershell -Verb RunAs -Command "Stop-Service `"RuntimeBrokerのサービス名`";Stop-Service `"SecurityHealthSystrayのサービス名`""
スマホから書いてるので試してない >>592
ありがとうございます、レジストリをいじっても止まらなかったので試してみます。
後cortanaやedge等アンインストール不可なものはスタートメニューからもピン止めを外せないのですがどうすればよいでしょうか?
アンインストール不可とはいえタスクを切った上でフォルダ名を変更すれば疑似的にアンインストールは出来るのですが・・・ それはPowerShellの話からかけ離れてないか? PS全く分からず(こう書いたけどうまくいかない等が何もない)
単にCortanaやEdgeのピン止めを外したいというのであれば
Win10の質問スレが妥当なんじゃないすかね >>596
それが通常では外せない為強制的に外すしかないんですよ その強制的な手段も含めてOSなりアプリなりのスレでどうぞ
学習コストも支払わずに(少しも勉強せずに)タダでコード書いてもらうスレじゃない
上のデフラグ君といい最近ちょっと目に余る いずれにしろこのスレは○○じゃないとか言ってしまうのは不味いよなあ
別にスレチでは全く無いわけだし そうだね
>>598みたいに親切に解説する必要もなくスレチは放置すりゃ良い まあPowerShellでやれるなら別にスレチでは無いだろ、ちょっと初心者かも知らんが これ以上は止めよう
このスレはパワーシェルスレだからそれに関する話題を仲良くやっていこう
勢い皆無のスレで言い争っても益々過疎るだけで何の益もないよ ここで書くよりはMicrosoft Communityで書いた方が有意な回答得られそうな気がするんだがなぁ >>603
それを言い出したら何だってスレチじゃなくなってしまうだろ
少しは頭を使えよ 2月にダラダラ居座ったメンヘラ丸投げくんのせいで過敏症気味だね たとえばレジストリエディタで一度設定すれば済むような問題で
設定すべき項目と値を教えてくださいという質問だったら
そりゃどんな書き換えもPowerShellでできるけれどもWindowsの質問だわな 使えないと思われたのか切られました
今までありがとうございました
さようなら 結局2月3月と一切何の仕事もしないで給料貰ったのか
うまいことやったな 自己都合の退社じゃないなら、失業保険はすぐに貰えるから職安へGO! 使用期間3ヶ月以内での解雇としてその企業は逃げているんだろうから
本人の保険給付期間が残っていなければ貰えませんね 何マジになってんの?w こんな馬鹿が実在するとでも 困ったのはいいとして、自業自得な馬鹿のアフターフォローですか??w (アフターフォローの意味が分かってない感じの人だが黙っていよう) 業務用のコードの丸投げの問い合わせを受け、皆でうんざりしつつ対応したが
結局クビになって問題も霧消したのに、収入の心配をしてあげてることを指しているのだが? 馬鹿と言うかアスペルガーだな
結構居るんだよこういう人 あんまり構うと気にかけてくれてると感じて近況報告したり次の人生相談を始めかねない
ここPowershellのスレだし正常化してほしい PowerShell Core、次のバージョンから「PowerShell 7」に変更
2019/04/09 08:25:56 後藤大地
https://news.mynavi.jp/article/20190409-804804/
Microsoftは4月5日(米国時間)、「The Next Release of PowerShell - PowerShell 7|
PowerShell」において、先日公開したばかりの「PowerShell Core 6.2」について、次の
バージョンはPowerShell Core 6.3ではなく「PowerShell 7」になると伝えた。
大幅な機能変更があるわけではなく、リリースエンジニアリングの変更やプロダクトの
ポジション変更が名前の変更理由になっている。MicrosoftはついにPowerShell Coreで
Windows PowerShellを置き換えていく方向に舵を切り出したようだ。
Windowsには、もともと存在していたWindows PowerShellと、新たにオープンソース・
ソフトウェアとして公開されたPowerShell Coreという2つのPowerShell系実装が存在して
いる。開発の主体はPowerShell Coreであり、さらにその多くがLinuxからのフィード
バックで開発されている。
今回、MicrosoftはこうしたPowerShell Coreで実現された成果をWindows PowerShellに
導入できないと(Windows PowerShellはすでに開発が終了しており、変更の取り込みは
行われない)説明している。
これに対し、PowerShell Coreでの成果をWindowsユーザーにもたらす方法として、Power
Shell CoreをPowerShell 7と名称変更し、従来のWindows PowerShellから置き換えていくと
説明した。最初のレビュー版は2019年5月ごろに公開されると見られる。(後略) マイクロソフト、「PowerShell 7」を発表--5月にプレビュー版を公開へ
Liam Tung (Special to ZDNet.com) 翻訳校正: 編集部 2019年04月09日 10時11分
https://japan.zdnet.com/article/35135464/
(前略) PowerShellは人気プログラミング言語の指標「TIOBE Index」で3月に初めてトップ
50入りを果たし、45位につけた。その主な理由として、Linuxユーザーの間での人気の
高まりが挙げられる。
しかし、Windowsユーザーの間でのPowerShell Coreの人気は横ばいであり、およそ1100
万回におよぶPowerShellコマンドの起動回数(テレメトリが無効化されている場合を除いた
統計値)のうち、Windows環境から起動されたものの割合は20%にも満たない。
Microsoftは、Windows環境での利用をさらに推し進めるという目標の下、「Windows
PowerShell 5.1を完全に置き換える」ためのリリースを計画している。PowerShell 7により、
Windows PowerShellを使用していたユーザーと、他のプラットフォーム上でPowerShell
Coreを使用していたユーザーは、同一の機能を利用できるようになる。
さらにPowerShell 7によって、現時点におけるWindows PowerShellのモジュールとの
「極めて高い互換性」がユーザーにもたらされるという。(中略)
さらにPowerShell 7では、.NET Coreのサポートライフサイクルと歩調を合わせ、長期
サポート(LTS)リリースと非LTSリリースの双方が用意されるようになる。
PowerShell 7のプレビュー版は、5月にユーザーに向けてリリースされる見込みだが、
PowerShellと.NET Core 3.0の統合の進捗具合によって実際の日付は変わってくる。
Microsoftによると、.NET Core 3.0の一般提供を開始した後で、PowerShell 7の一般提供を
開始することになるという。
PowerShell 7は最終的にWindows PowerShell 5.1とともにWindowsに標準搭載されることに
なるが、「Windows 10」や「Windows Server」のどのバージョンからそれが実現されるのかは
まだ明らかにされていない。 cpuを制御するコマンドがあればいいね。
95%でタスクを切られたり
1桁に下がるまで全プログラム強制終了とか cpuを制御するわけじゃないけど、パフォーマンスを監視して何かするということなら
Get-Counter
を使えば良いんじゃない? $hoge = 'fuga'
get-ADGroup -Filter * -SearchBase $hoge
みたいに書いても、 $hoge が展開されず、まんま引数 $hoge って文字として扱われるんだけど、
get-ADGroup -Filter * -SearchBase fuga
って感じに展開させるのどうすればいいんだろ 実際は{ $hoge } とか '$hoge' みたいなことしてない? 返事ありがとう。
当然そんなことはしてないし
$hoge = 'fuga'
$hoge
get-ADGroup -Filter * -SearchBase $hoge
みたいに書いて実行すると
fuga
hoge : 用語 'hoge' は、コマンドレット、関数、スクリプト ファイル、または操作可
なプログラムの名前として認識されません。名前が正しく記述されていることを確認し
、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してくださ
い。
発生場所 ***:** 文字:**
+ get-ADGroup -Filter * -SearchBase $(hoge)
+ ~~~~
って表示されちゃうんだ… >>633
get-ADGroup -Filter * -SearchBase “$($hoge)“
でどうでしょう >>633
全角になっちゃったのでやり直し
get-ADGroup -Filter * -SearchBase "$($hoge)"
でどうでしょう >>633
おい
$(hoge)ってやってんじゃん
$( )はカッコの中身を実行してその出力を変数として渡すものだから
hogeをコマンドみたいに実行しようとしてそのエラーが出てる 皆コメント本当に助かる
>636
そこが一番気になってるんだ
$hoge
って書いてるのに、エラーでは
$(hoge)
として見られてる。こういう風にデフォルトで解釈されるような原因とかあるのかな…
>635
やってみました
発生場所 ***:** 文字:**
+ get-ADGroup -Filter * -SearchBase "$($hoge)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ですね。変数がやっぱり変数として解釈されてない気がします… そんなら最初に変数として定義しとけばいいんじゃないの 途中で「echo」コマンドによる出力をしてみろよ
その後にpauseで一旦止めてな >>633
とりあえずお前のコピペは信用できないからハードコピー貼れや >>642
だったら
$hoge = 'fuga'
の時点でエラーになるだろ C:\Users\hoge\Desktop\copy.ps1の内容↓
$watchPath = "C:\Users\hoge\Desktop\watch"
$destPath = "C:\Users\hoge\Desktop\dest"
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $watchPath
$watcher.EnableRaisingEvents = $true
$action = {
$path = $Event.SourceEventArgs.FullPath
Copy-Item $path $destPath
}
Register-ObjectEvent $watcher -EventName Created -Action $action
while ($true) { Start-Sleep -s 1 }
このファイルを右クリックから[PowerShellで実行]またはバッチファイルから起動した場合、
watchフォルダにファイルができるとDesktopにコピーされます。
VSCodeやPowerShellISEから実行するとdestフォルダにコピーされます。
$actionスクリプトブロックの変数スコープが問題だと思うんですが、
どうすれば前者でもdestフォルダにコピーされますか? >>645
すみませんPowerShellに不慣れなものでして
どのような構成にすればよろしいでしょうか PowerShell初級者です
コマンド プロンプトから呼び出しできません
ご教示よろしくお願いいたします
コマンドライン
powershell -ExecutionPolicy RemoteSigned -Command $a=New-Object Media.SoundPlayer(`"%SystemRoot%\Media\Windows Error.wav`");$a.PlaySync()
エラー内容
式に終わりの ')' が存在しません。
発生場所 行:1 文字:70 >>650
ファイル名を括ってるのバッククォート?
シングルクォートで試してみたら? >>651
ありがとうございました。m(_ _)m >>650
とりあえずエラーの直接原因は
SoundPlayer(`" … `");
だろうね
PowerShellのバージョン書いてないけどWindows10とかなら
New-Object Media.SoundPlayer("`%SystemRoot%\Media\Windows Error.wav`");
じゃなくて
[Media.SoundPlayer]::new('%SystemRoot%\Media\Windows Error.wav');
ってやった方がコンストラクタのパラメータの指定がやり易い >>655
そういうのウザいだけです。
間違ってると思うなら訂正してください。 「powershell バッククォート」でぐぐればすぐに正解が出てくるのに… [Regex]::Replace("hoge123","([^ \d])(\d)","$1 $2")
「hoge 123」ではなく「hog 23」になります
ご教示よろしくお願いいたします
PS2.0 "$1 $2" は正規表現以前にPowershellとして文字列への変数$1と$2の挿入になるんじゃないか
単引用符にすればいけそう パターンが悪い。
あと$はエスケープ文字`が要る
パターン…"([^\d]+)(\d)"
置換指定"`$1 `$2" >>663,662
「$」のエスケープ「`$」で希望動作になりました
ありがとうございました。m(_ _)m C:\Users\nanashi\Desktop\aaa\bbb
C:\Users\nanashi\Desktop\aaa\ccc
C:\Users\nanashi\Desktop\aaa\bbb\eee
C:\Users\nanashi\Desktop\aaa\bbb\eee\eee01.txt
C:\Users\nanashi\Desktop\aaa\bbb\eee\eee02.txt
C:\Users\nanashi\Desktop\aaa\ccc\fff
C:\Users\nanashi\Desktop\aaa\ccc\fff\fff01.txt
C:\Users\nanashi\Desktop\aaa\ccc\fff\fff02.txt
こういう階層構造があって。フォルダを再帰的に aaa 直下に平坦に並べたいとします。
ls C:\Users\nanashi\Desktop\aaa -r | ?{$_.PSisContainer} | %{mi $_.FullName C:\Users\nanashi\Desktop\aaa -Force}
C:\Users\nanashi\Desktop\aaa\bbb
C:\Users\nanashi\Desktop\aaa\ccc
C:\Users\nanashi\Desktop\aaa\eee
C:\Users\nanashi\Desktop\aaa\fff
C:\Users\nanashi\Desktop\aaa\eee\eee01.txt
C:\Users\nanashi\Desktop\aaa\eee\eee02.txt
C:\Users\nanashi\Desktop\aaa\fff\fff01.txt
C:\Users\nanashi\Desktop\aaa\fff\fff02.txt
できました。あとはいらなくなった空のフォルダを消すだけです。
ワンライナーでも書けて目的も達成できるんですが。この場合ソースパスとターゲットパスを同じにできませんというエラーがでてしまいます。元々 aaa 直下にフォルダがあり、同じフォルダに動かそうとしたせいですね。
このようなコードをよく使うんですがいつもエラーを無視しています。エラーを回避するために複雑なコードを書きたくないからです。もしエラーを簡単に消せる方法があったら教えてください。
コード自体になにか問題があれば合わせて教えてください。 あの。大変申し訳ありません。書き込んですぐなんですけど。2文字追加するだけでいけました・・・。
ls C:\Users\nanashi\Desktop\aaa\* -r | ?{$_.PSisContainer} | %{mi $_.FullName C:\Users\nanashi\Desktop\aaa -Force} あるフォルダに
Movie_00_(<肝心のファイル名>).mp3
Movie_01_(<肝心のファイル名>).mp3
Movie_02_(<肝心のファイル名>).mp3
以下続く...
というファイルがあって
このフォルダで
Get-ChildItem | ForEach-Object {Rename-Item -Path $_ -NewName $_.Name.Remove(0, 1)}
これを実行すると
一回目はファイル名の最初3文字が消えて、ie_00_(<肝心のファイル名>).mp3 に
この状態で再度実行すると今度は一文字だけ消えて、e_00_(<肝心のファイル名>).mp3
この状態で再度実行すると今度は二文字消えて、00_(<肝心のファイル名>).mp3
ってなっちゃうんですがなぜでしょうか。
以前この手のファイル名置換はうまくできてたんですけど。
すごくあほな勘違いかミスだと思うのですが
もうずっと考えてもわからないので助けてください。 >>669 ですが、
Get-ChildItem Movie* としてフィルタをかけた状態でやったらうまくいきました。
どうして? Forループの途中で名前が変わってるのがミソ
ループの列挙子が_A〜Za〜zの順にファイルをピックアップする
Mで始まるファイル名を一通り拾って置換した後
置換後の名前はoで始まるから同じループ内で再度ピックアップされてしまう
M, o, v まで文字コード昇順に並んでるから1回のループで1文字ずつ3回置換されてる
次のiはvよりも若い文字だからもう走査済みなのでそこで止まる おー、そういうことなのか
ありがとう。
単純にファイルのリストを作って次のループに渡すんじゃないのね、
今後もはまることありそうだわ。 一つのコマンド処理が終わるのを待ってパイプで受け渡してたら
メモリと時間がうなぎのぼりに増えていく オブジェクトを渡せるメリットとのトレードオフなので素人ではないよ いやむしろそれこそがパイプラインだろと
一体誰が素人って話なんだ PwerShellをbuildしようとしてるんだけど
DotNetEventingStrings
がコンテキストに含まれていないと叱られます
これはどのモジュールに含まれてるんでしょうか? 共有フォルダ(\\192.168.0.1\hoge)上でpower shellを動かしたいんだけど
証明書なしだから実行出来ないというエラーが出てしまう
オレオレ証明書での実行の仕方もいまいちわからんのですが
参考なるところ教えてくれませんか
社内で使うとかで、makecert.exeとかは無い状態です
助けてお願い 実行ポリシーは何にセットされてるの?
変えて良いなら変えるのが手っ取り早いと思うけど リモートホスト上で走らせたいのか、クライアント上で走らせたいのか?リモートなら当然認証や権限の問題を適切に処理せんとどうしようもない すみません
調べても分からなかったのでご教示ください
標準出力をパイプに渡してエラーのみをファイルにリダイレクトということはできるのでしょうか
2> file 1| command
にすればいいんでしょうか? よく意味がわからない
パイプはエラーを通さない。通すのは標準出力のみ
エラーをファイルにリダイレクトするには
command 2>a.txt
のようにする powershellでcpu100%になれば下げたり何かのタスク終了したりできますか? たぶんそのような機能はあるはずだが
Windows でその種の機能って実用的な動きしないこと多いしな CPU100%だからpowershell動けないんじゃw ありがとう。なんかアプリでありそうですね。
電源管理で100%押さえれますわ。
60%とかにしときました。 GPOの設定を自動化したいんですけどGPMCとかいうの入れずにやる方法ありませんか? ポリシーってのはセキュリティ周りのを除けば基本的にレジストリの設定集と思えばいい
逆説的に言えばポリシーで設定されるレジストリ値を設定してしまえばいいだけ
ドメインポリシーみたいな強制性が欲しいとか
そういう管理面での要件があるなら別だけどパンピーなら
該当するレジストリを設定すりゃ間に合うはず
もちろんすべてがすべてそうという訳じゃないが powershell v2でテキストの文字列置換する方法教えて
(gc a.txt).replace("aaa","bbb") |Out-File b.txt
ってやるとv3では通るんだけどv2だとエラーになっちゃいました >>696
エラー内容が「[System.Object[]] に 'replace' という名前のメソッドが含まれない」なら、これ↓じゃない?
https://stackoverflow.com/questions/35641714/system-object-doesnt-contain-a-methodnamed-replace
[IO.file]::ReadAllText('C:\a.txt').replace("aaa","bbb")|Out-File b.txt >>697
ありがとうございます。
やってみたのですが[IO:file]という型がありませんとか表示されちゃいました
因みにosはwindows2008r2です すみません頭に[System.IO.file]とやったらいけました powershell2.0で教えてください
単純にフォルダをネットワークドライブ配下に移動したいのですがいい方法はありませんでしょうか
何故かファイル単位だとうまくいきます
↓な感じです
Move-Item "元ファイル" -destination \\server\log
3.0だと同じ処理をやってもうまくいくのに何故2.0はこんな簡単なことも出来ないのか半泣き状態です >>700
どんなエラーが出るとか、どういう結果になったとか書くとアドバイスもらいやすいよ
2.0でも Move-Item -Path "元フォルダ" -Destination \\server\log でOKなはずだけど
Windows Server 2008でもWindows Management Framework 3.0でpowershell 3.0が使えるようになるけど、サーバだと他の影響が怖くて変更しにくいのかな? -Forceつけてダメだったら
Move-Itemあきらめて
PS> Copy-Item "元ファイル" -destination \\server\log\ -recurse
PS> Remove-Item "元ファイル" -recurse
かな
原因は突き止めた方がいいと思うけど
PS> gi "元ファイル" | % {$_.MoveTo(“\\server\log\“)}
でもダメなんだろうなあ >>702
スマホから書いたら全角混じっちゃった
失礼 >>701-703
ありがとうございます
エラー内容については仰るとおりです
失礼いたしました
なおエラーは↓が出ていました
Move-Item:ソースとターゲットのパスは同一のルートを持たなければなりません。[移動]操作はボリューム間で行えません。
個人的にはpowershellv3を入れないのですが商用サーバーということもありそうも行かず…
頂いた内容でまず試してみます >>702
試してみたところcopy-item、remove-itemでうまくいきました!
何故move-item出来ないのか謎ですが一旦これでいきます
ありがとうございました スクリプトで
VPNセッションを張って、opensshでLinuxサーバーにログインしたいんですが、クレデンシャル情報ってどう引き渡せば良いですかね Announcing Windows 10 Insider Preview Build 19037
https://blogs.windows.com/windowsexperience/2019/12/06/announcing-windows-10-insider-preview-build-19037/
Windows PowerShell ISE is now a Feature on Demand (installed by default), and you will see it in the list in Optional Features Settings. コマンドプロンプトでcopy /b file1 + file2 out
でバイナリ結合できるけど
Get-Contentではどう頑張ってもできない?
結局cmd /c copy 〜 でやってる copy xcopyをpowershellで完全に置き換えられるレベルまでMSには頑張って欲しかったなぁ xcopyで出来るものならxcopy使うけど
なんたってrobocopyとは速さが桁で違ってて比べ物にならない ファイルコピーに野良ライブラリーは使いたくない
コマンドプロンプトからの移行をMSが本気で考えていたならファイルコピー機能はまず最初に実装すべきなのに robocopyをPowershellから実行できるから別にいいや
リッチなコピーコマンドをまた覚えるのも面倒だし >>715
「コマンドプロンプトの外部コマンド」じゃなくて「OSに標準搭載されてるコンソールアプリ」だと考えろ
Get-Command xcopyやGet-Command robocopyを実行するとCommandTypeがApplicationになってるんだし
PowerShellは名前の通りシェルであって
シェルからアプリを起動するのを躊躇する理由は全くない えっ、PowerShell 7ってMicrosoft Storeでリリースされるの
https://github.com/microsoft/terminal/pull/4273/files
Windows Terminalのプルリクエストだがそれらしき記述が >>712
>なんたってrobocopyとは速さが桁で違ってて比べ物にならない
xcopy遅いですよね 名前にブラケットとか入ってるディレクトリをカレントディレクトリにして
適当なファイルにGet-Item -LiteralPath hogeとかするとObjectNotFoundになる。
内部で絶対パスを生成するときにカレントディレクトリのパスをエスケープしているようだ。
LiteralPath使ってんだから勝手にエスケープすんなやアホか。 新しいクロスプラットフォームの PowerShell をお試しください Microsoft、「PowerShell 7.0」を一般公開 〜三項演算子やnull結合演算子をサポート
「.NET Core 3.1」ベースとなり、3年間のLTSサポートが付属
ttp://forest.watch.impress.co.jp/docs/news/1238950.html .net特化型スクリプト言語、って割りきってるのかなとも思ったけど
どうも開発陣はこの言語構文が優れているという信念を持ってるらしい
Python と似た芳ばしさを感じる
あんまり近寄りたくない 7って管理者モードで起動しているかいないかがコンソールウィンドウのタイトルで分からなくなってる? 7.0.0はMicrosoft Storeでのリリースはなしか
7.0.0-rc.3ではGitHubにあった.msixもない フォルダ内のjpgの画像データを一括でリサイズするとき、拡張子をjpegではなくjpgのままで変換したいのですが可能なのでしょうか >>726
UNIXシェルの構文はもっと糞だけどな >>730
正直、余計なことしてない分シェルとしてはUnix シェルの方が使いやすい
言語として貧弱なのはあくまでもシェルが本文と割りきってるからで
言語機能を強化するためにシェルとして分かりにくくなってるPowerShell よりもツールとしては百億倍合理的 echoの仕様すら統一できてないくせに合理的だの使いやすいだの
なんのギャグやら PowerShell のように奇妙キテレツな挙動じゃないからなそこまで実害がないもの 言語としての機能はPowerShell の方が上だよ
でも単純にShell として考えた場合の実用性はbashどころかcshにも劣る まあ裏返せばCLIの使い勝手しか改善のしようがなくなっちゃっただけなんだけどね
多分10年20年先も*shの読みづらさは変わらんだろうし 読みづらさなんて最初だけ
Unix の世界は慣れれば同じルールで一貫してやっていけるから楽
PowerShell なんてパイプラインの挙動がオブジェクトや文脈で変わりまくって、かなりの経験者でも動かしてみるまでどうなるか予想できないだろ?
Unix ならしばらく勉強すればログから複雑な条件で問題行を抽出するとかできるようになる
同じ期間PowerShell 学習した奴が同じことしようとしたら、自動書式化回避するために丸一日潰すことになる
Unix でせっかく克服した
Multicsのバッドプラクティスを
ご丁寧に復活させようとしてるのがWindows だろ ということは、もう一回りすれば、良い物ができるかもしれないのだな
トンプソンみたいな人がいれば...だが > PowerShell なんてパイプラインの挙動がオブジェクトや文脈で変わりまくって
意味が分からないんで解説お願い >>738
わからないから使えてる(気がしてる)んだろう
>>739
そういうのは挙動に一貫性があって言えること
慣れたところでその慣れが極めて局所的にしか役に立たないんじゃたいして役に立たない
MSの製品はアプリもAPI もみんなそう デバッグの第一歩がいきなりログ解析じゃ話にならない・・・原始的すぎる・・・ >>742
結局丸一日考えてその程度のことしか言えないのか >>736
> PowerShell なんてパイプラインの挙動がオブジェクトや文脈で変わりまくって
具体例よろしく
まあ笑える例しか出てこないと思うけどw >>740
一貫性がないのはUNIXシェルだろ
偉そうなこと言うのはechoの挙動くらい統一してからにしろ
何のためのPOSIXなのやら >>744
昔外部コマンドをパイプでつないだらバイナリデータが化けてイーッてなった覚えがあるんだけど
あれからだいぶバージョン上がったが、そろそろ直ってる? PowerShellでパイプに流せるのはテキストかオブジェクト
バイナリ流すとテキストだと思ってUnicodeに変換しちゃうらしい 外部コマンド呼んでstderrになんか出るとエラーになるのマジでうざい
cmdletちゃうんやからLASTEXITCODEだけで判断せえよ stderrは乱用されすぎなんだよ
PowerShellのWrite-VerboseやWrite-Debugはもっと評価されるべき Windows10にPowerShell7入れたんだがGet-Clipboardが
The term 'Get-Clipboard' is not recognized...
ってなるんだけどなんで?
ちなみにSet-Clipboardは使えた なんでだろ
gmo "Microsoft.PowerShell.Management" | % exportedcommands
の出力にGet-Clipboardあるか探してみて なんか知らんが今やったら使えた
>>751 のコマンド入れたから?
できなかった時から起動しっぱなしのシェルだからそれぐらいしか考えられない & hogehoge.exe 2> "hoge[1].txt"
なんてことをたいんだけど、これだとブラケットをワイルドカード展開しようとしてエラーになる。
[WildcardPattern]::Escape()使うとエラーにはならないけどファイル名にバッククォートが入る。
どうすればいいですか?
もしくはstdoutは捨ててstderrだけパイプラインに流す方法とかありますか? (& hoge.exe 2>&1|?{$_ -is [System.Management.Automation.ErrorRecord]}).Exception|Out-File -LiteralPath 'a[1].txt'
でできた 6.0以降はWindows powerShellじゃないんだが、このスレで話してもいいの? 外部コマンドの出力をパイプラインでつないでごにょごにょしようとしたら
外部コマンドが終わらないと次の処理に行かないんだが、どういうこと?
MS-DOSに先祖返りしたんか? 7.0.1が出て.appxが復活したもののなぜかPreview扱いになってるな
Windows TerminalでもPreviewとみなされてる(アイコンがPreview版) ググると文字列は+で繋げるとありますが、
$word="坂本"
echo $word+"竜馬"
だと坂本+竜馬と表示されるのですが?
$word="坂本"
echo $word"竜馬"
だと坂本龍馬と表示される。 >>764
ありがとうございます。
分かりました。 >>763
PowerShell流にやるならechoはいらないので
$word="坂本"
echo $word+"竜馬"
としないで
$word="坂本"
$word+"竜馬"
とすれば望まれた結果になりますよ >>766
関数でも最後ならreturn要らないの? >>767
要らない
他の言語のように return $a とか書けるけど
$a
return
と同じ意味 PSでは代入などの文にせずに式を書くだけでコンソールに出るから基本echoは要らない
echoにはおそらく互換性のために、式モードと引数モードというのがあって、引数モードだと引用符が要らない
最初から
echo 坂本竜馬
と書ける
式モードにするなら
echo ($word+"竜馬")
のようにかっこで囲む
>関数でも最後ならreturn要らないの?
最後だけでなく途中に書いた式による出力も全部戻り値としてパイプに渡される
PSにおいてreturnは戻り値を返すというより関数を抜ける役割で使うもの >>763
で、簡単じゃんと思ってディレクトリもこれで繋がると思ってみたり
ディレクトリはJoin-Path使う罠 7.0.2, 6.2.6が出た
7.0.2の.msixは相変わらずPreview版扱い Previewになってるのは7.1で修正するらしい Invoke-CommandでリモートPCのGUIコマンドを実行し、かつGUIの出力先を
そのリモート上の任意のセッション(consoleやrdp-tcp)にすることってできますか? そのguiアプリがコマンドラインオプションで出力先を指定できる仕組みを持っていればできるんじゃない? ググりまくってようやく答えを見つけました↓
https://serverfault.com/questions/690852/use-powershell-to-start-a-gui-program-on-a-remote-machine
LinuxみたいにXアプリを他ディスプレイに飛ばす(xhostで許可設定して -display :N オプションをつける)
みたいな真似は、やはり仕様上困難のようです。そりゃそうですね。
というわけで、PSToolsのpsexecを使うとやりたいことができました。
@qwinstaで出力したいセッションのIDを調べる
psexec \\リモートホスト -u ユーザ名 -p パスワード qwinsta
A-iオプションにそのIDを指定
psexec \\リモートホスト -u ユーザ名 -p パスワード -i セッションID notepad
(ちなみにOpenGLみたいにローカルのコンソールセッションでないと起動できないプログラムの場合は
事前にtsconコマンドでコンソールセッションをActiveにしておくのが必要です) Powershellでディレクトリ内も含めてファイル名だけ取得することってできますか?
Get-ChildItemのオプションで-Recursiveと-Nameだとディレクトリ名もついてくる Get-ChildItem -Recursive | %{$_.Name} Get-ChildItem -Recurse -Name -File 最適解は>>780なんだろうけど
いつも Get-ChildItem -File -Recurse | % Name としてしまう ありがとう。結果は
-Nameだとディレクトリ名も入ってしまう
| %Nameだとエラー
|%{$_.Name}だとファイル名のみ表示できた
でした なんで書いたとおりに試さないの?
%Name でなく、 % の後に空白の入った % Name
% は ForEach-Object の alias だから ForEach-Object Name ってこと ついでに言っとくと -File がないとディレクトリ名も表示される >>783
エイリアスわかんない相手にエイリアスつかっちゃ駄目な奴では コマンドラインでは gci -File -Recurse | % Name だな
Get-ChildItem なんて補完するのも面倒過ぎる dirでもlsでもgciでも手になじんてるのでいいよ Get-ChildItemdirちょー手になじんてる >なじんてる
日本語は馴染んでないようだね
そういう人にしか使えないから、いまいち普及しないんだろうね 濁点のミスはスマホ入力でよくあるから気にならない
けどGet-ChildItemdirっていうワードが謎で文意がまったく掴めねぇー
エスパーすると本命は、Get-ChildItemと書きたかったけどdirを消し忘れた
対抗は、Get-ChildItem手になじんでる!と言いつつコマンドレット名間違ってましたテヘペロという高度なボケ 私はたかがPowerShellすら使えない無能ですまで読んだ >>795
お前はWin7環境を強いられている民を全員敵に回した コンソールにかき捨てならエイリアスでいいけど
スクリプトになんでもエイリアス仕込む奴のコードは扱いたくない
コードゴルフじゃないんだし あっっっっっったりまえのことだな
>>797 にもあるけど
>When working interactively at the Windows PowerShell console, the primary purpose is to accomplish something. I want to get the task completed accurately, and timely. I do not want to expend any extra effort to accomplish the task.
こういう時はaliasを使うし、
>On the other hand, when I write a Windows PowerShell script, the purpose is to have something I can use over and over again.
>The goal here is reusability, not speed of development and execution. Therefore, I do not want to use aliases in my script because it hinders readability and understanding.
こういう時はaliasを使わない
gci | ? LastWriteTime -ge 2020/8 | sort LastWriteTime
( gci | ? lastw[TAB] -ge 2020/8 | sort lastw[TAB] )
とか結構使うけど、スクリプトでは絶対こんな書き方はしない
>>787 だって
>コマンドラインでは gci -File -Recurse | % Name だな
と断りを入れてあるんだからaliasの適切な利用だと思う CodeGolfして
gci | ? L*r*e -ge 2020/8 | sort L*r*e
でも動く 7.1.0-preview.6
Microsoft Storeに来たな VBAとかC#もこの板にスレ立てた方が盛り上がるんじゃないだろうか >>805
お前は何年前の話をしてるんだよ
FileSystem の Get-Content
https://docs.microsoft.com/ja-jp/previous-versions/windows/powershell-scripting/hh847788(v=wps.640)
-Stream <文字列>
このパラメーターは、Windows PowerShell 3.0 で導入されました。 PowerShell単体でBluetooth LEとか変なことやろうとしてるけど、
最後の最後で機器からのNotifyを受け取るのにWindows Runtimeのイベントを扱う必要が出てきて、PowerShellでは対処できそうにないなあ
Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicオブジェクトのValueChangedイベントをRegister-ObjectEventしようとすると
Windows PowerShell cannot subscribe to Windows RT events.とか怒られる .NET 5.0が出たってことはPowerShell 7.1の正式リリースももうすぐか >>811
Microsoft Storeにも正式版が来たな
Previewと共存も可能 >>807
マジだ…知らんったわ
-asbytestreamとか見てあー最近こんなのあるんだ進歩してるなーとか思ってた ps1を隠蔽化しようと思ったらどうするのがいいんだ
Ps2exeでは簡単にデコンパイルされちゃうのは分かったんだけど >>814
難読化なら Invoke-Obfuscation ってのがあるよ >>815
サンクス!
こういうのが欲しかった!
これとExe化とか併用したら結構隠蔽力強いかな >>810
iOSやAndroidにも必要になるぞ Windowsの設定でアプリをリセットできますが、これを行うコマンドはあるのでしょうか?
インストール/アンインストールはAdd/Remove-AppxPackageでできるので、Appx関係を見てみましたが、分かりませんでした Remove-AppxPackage -PreserveApplicationData
の逆で、設定をクリアしたいと考えております ttps://winaero.com/reset-a-store-app-in-windows-10-using-powershell/ >>824
ありがとうございます。
まだ、1909から上げてないので、Reset-AppxPackageがありませんでした。
アップデートするか、別の方法へのリンクもありましたので、そちらも検討したいと思います。 「ごみ箱を空にする」の自動化はググればけっこう見つかるけど、実際やってみるとCMD窓が出てきてしまう。
これを出さずにサイレントで実行させるショートカットが作りたいんだけどなあ。 >>828
前者はVC++の導入が必要ゆえ、少しハードルが高いな。
後者は使いこなせば強力そうだ。チャレンジのしがいがあるな。後者でいってみよう。 今のwin10はcsc.exeが入ってるのでc#のラッパーでもいいと思う
いまどきnetでもたつかないし 多分C♯より前からあるcsc.exe(chicken scheme compiler)が潰されて困る Windows10環境で使用しています。
膨大なログファイルから「error」を含む一文と、
| ではじまる一文を抜粋したいので、Select-String を使えばよいということまでわかりました。
Get-Content *.log | Select-String " Error "
でなんとか「error」を含む一文を拾うところまではできました。
その先の2点で詰まってます。
[質問1]
| ではじまる一文をor検索する為、
sls " Error ","エラー","^| " (dir -recurse *.log)
とすると、意図していない大量の文章が抽出されてしまいます。
おそらく "^| " 部分が正しくないと思われますが、
「〜という文字で始まる」という指示がどうすればよいのでしょうか。
[質問2]
・そのままSelect-String をすると、「ファイル名:行番号:検索結果」という表示になってしまいます。
・Get-Content *.log だと検索結果だけが表示されます。
以下のようなイメージで、ファイル名とその検索結果一覧をまとめて表示させたいのすが、可能でしょうか。
(そもそも Select-String では難しいのでしょうか)
---------------------------
File001.log
2021/02/01 なんとかかんとかErrorなんとかかんとか
| なんとかかんとか
| なんとかかんとか
---------------------------
File002.log
2021/02/01 なんとかかんとかErrorなんとかかんとか
| なんとかかんとか
--------------------------- 正規表現のエスケープは\
正規表現使わないなら -SimpleMatch 正規表現はこんな感じになるかな
sls "¥berror¥b|エラー|^¥| "
結果の書式についてはファイル名や検索結果を変数に入れてifやforで古典的な処理を書けばどうとでもなる >833さん、834さん
ご返信いただきありがとうございます。
試行錯誤した結果、以下が希望に近くなりそうです。
sls "error|エラー|^\|" (dir -recurse *.log)
書式については、上記の結果に合致するファイル名を変数に入れて・・・
とfor分をまわす感じで、ちと考えてみます。 バッチにすりゃ済む事なのに手を抜いて一行で済まそうとするから嵌まるのではないのかよ? 便乗して Select-String について質問よろしいでしょうか
「特定の文言が記録されているtxtファイル」のフルパス一覧を取得したいンですが
sls "error" (dir -recurse *.log)
とすると「パス、行番号、該当の行」が出力されますよね
ここでパスだけの一覧を出力することは可能でしょうか
もちろんバッチでもOKでございます powershellは、iniファイルの中のデータを変数に入れたりとかはできますか? >>838
powershell iniファイル読み込み
あたりでググれば色々出てくるよ
ちょっと制限あるけど XML に変換しちゃうとかなかなか面白い
http://nmksb.seesaa.net/article/473354419.html >834 さんのアドバイスに従って、自分なりにいろいろ試行錯誤してみました。
おそらくあと一歩で理想形になるのですが、躓いてしまっております。
以下の内容で「PS1」ファイルを作成します。
---------------------------
#検索して"error"に合致するファイル一覧を取得し、合致したファイル名を[$fileList]へ入れる
$fileList = Get-ChildItem -recurse | sls -pattern "error" | group path | select name
#ファイル毎にループ
foreach($fileTmp in $fileList)
{
#ファイル名と"error"を含む検索結果を表示する
write-host $fileTmp.Name,(Get-Content *.* -Encoding UTF8 | sls "Error" $fileTmp)
}
---------------------------
[出力結果]
sls : 入力オブジェクトをコマンドのパラメーターにバインドできません。コマンドがパイプライン入力を受け入れないか、または
入力とそのプロパティが、パイプライン入力を受け入れるいずれのパラメーターにも一致しません。
---------------------------
おそらく
(Get-Content *.* -Encoding UTF8 | sls "Error" $fileTmp)
このあたりの処理に問題があると思われるのですが、どのように記載すればパイプライン入力が受け入れられるのでしょうか。 843さん、844さん、845さんありがとうございました。
パイプで渡すのをやめたら、それなりにいい感じになりました。
ここでアドバイスいただいたことはとてもいい勉強になりました。
精進します。 エスケープシーケンスで困ってます
Select-String hoge.txt -Pattern "$hoge2"
などで$hoge2にエスケープシーケンスがあると当然上手く行きません
毎回、関数を作ってエスケープシーケンスを処理してるのですが
上手くくくるなどもっとスマートな方法は無いでしょうか? >>848
-SimpleMatchオプション付けて文字列にすれば? >>848
ごめん変数なんだね
自分で関数作らなくても
$hoge2 = ([regex]::Escape($hoge2))
で正規表現クラスにエスケープさせちゃえばどうかな? うわお!
こんなのが欲しかったんです
やっぱりこういうスマートなのありますよね
ありがとうです 行を反転させる方法はないですか?
例えば1行目を最後の行に、最後の行を1列目にしたいです
[最大行数..1]
でも出来るのですがもっと綺麗に書けそうなので
よろしくお願いします Powershell ver 5.1で動かすスクリプト内の特定のコマンドレットのみPowershell ver 2.0で動かす事は可能でしょうか?
5.1で動かす部分と2.0で動かす部分で変数の受け渡しも必要です。 新しい側でGet-CommandしてDLL属性見てみれば本体のパスは取れる
互換性あるか不明だけどやってみたら PowerShellから可能なWindows設定の一覧とかどこかにないですかね?
WIndowsのインストール後に行う各種設定を自動化したいです windowsの設定を直接powershellでイジることは不可能だけどレジストリとかをイジることは可能
というかwindows10の設定同期はマイクロソフトアカウントが1番楽で安心だと思う 全部の設定が可能だろ
でないとguiなしのwindowsは設定が出来ない 具体的に何の設定を移行したいのか「全部」書いてほしいけど
物によってはpowershellでいちいちオブジェクト考慮してやるよりレジストリいじる方向のほうが楽だったりするだろうし、適材適所で 唐突にchdir HKML:してファイルシステムみたいにレジストリ探索できるの楽しい
regeditはインポートエクスポートでカルマが溜まるし、専用cmdletもドライランしなきゃ怖いし
普通のファイルみたいにダンプや検索もできるから、インタラクティブに探索するのが良いと思うよ linuxから移行した人としては、winは何でも仮想デバイスなのが進んでるなと思いました
unix系では/devが相当するけど、直下にファイルとしてズラリで階層化されてなくて、仮想ファイルでしかない
階層化しないなら、ファイルである意味ってぶっちゃけ無いよね C:\
20210413
D.mp3
E.mp3
F.mp3
20210227
A.mp3
D.mp3
E.mp3
20210118
A.mp3
B.mp3
C.mp3
20201125
A.mp3
B.mp3
↑こんなフォルダ構成があって、↓こんな風に全ファイルをALLフォルダにコピーしたいのですが
C:\
ALL
A.mp3
B.mp3
C.mp3
D.mp3
E.mp3
F.mp3
どういうコマンドを書けば良いか見当もつきません。アドバイス頂けないでしょうか? ↑すみません、最初の1行は「C:\」じゃなくて「C:\音楽\」でした。 * で検索して全部ALLフォルダにコピーすればいいんじゃないの
エクスプローラで コピーではなくプレイリストの使い方を覚えたほうがいいような気もする Get-ChildItem C:\ -Filter *.mp3 -Recurse | Move-Item -Destination C:\ALL -Confirm 返信遅れてすみません。
>>869さんのコマンドでいけました。(移動でも問題ありません)
みなさんどうもありがとうございました。 import-excelでExcelファイルを読み込んで
配列内の文字列を検索して、見つかったインデックスを取りたいのですが、
うまく検索できません。なぜでしょうか。
ソース
$excel = Import-Excel .\hostname.xlsx
$excel
[Array]::IndexOf($excel,'server3')
結果
host
----
server1
server2
server3
server4
server5
server6
-1
↑2が返ってきてほしいのになぜか-1になるのです。 >>872
[Array]::IndexOf($excel.host,’server3')
または
$excel.host.IndexOf('server3') >>873
ありがとうございます
上手くできました! 今までコマンドプロンプトを使っていましたが、windows power shellに乗り換えました。
コマンドプロンプトでは、エクスプローラーからドラッグ&ドロップでファイルパスが入力できましたが、
windows power shellではできませんでした。
ファイルパスを楽に入力する方法はないんでしょうか? 7.2.2のpwshだけどできたよ
でもCUIでドラッグ&ドロップしようという発想はなかった
ファイラからパスコピーするかファイラからpwsh呼び出してるわ ドラッグアンドドロップはできる
別スレでも同じ質問あったけど管理者として実行しているとダメ
コマンドプロンプトも同じ del /f %appdata%\microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt 可能な限りログというログを消すバッチ
コマンドプロンプト管理者モード実行用だけど
https://pastebin.com/raw/7PYwDkDr Windows Management Framework 4.0が落とせなくなってる powershellって.netオブジェクトを扱うために作られたシェルと知って愕然とした
bashやzshのように(慣れは必要なものの)ほぼCUI操作で完結できるようになるかと思いきや、そういう方向じゃないんだな
Windowsユーザでもマウス使いたく人だっているのにな .netオブジェクトを扱うためってのは誰のどういう立場での発言?
どこぞのYouTuber?
仮に公式見解だとして、CUI操作で完結できるようにというゴールと排他だとする理由は? Exposing the Power of .NET in a Admin-friendly way
https://learn.microsoft.com/en-us/archive/blogs/monad/exposing-the-power-of-net-in-a-admin-friendly-way
> One of our primary goals for Monad was to: "Expose the power of .NET in an Admin-friendly way" 新しいバージョン 7.3.3 をここから
ttps://github.com/PowerShell/PowerShell/releases/tag/v7.3.3
これを
PowerShell-7.3.3-win-x64.msi
インストールしたのですが、
Win+x メニューから管理者として起動しても、古いものが立ち上がるんです
新しいものが起動するようにするにはどうしたらいいのでしょうか >>888
よくわからんけど、Win+Xのアレは「Windows PowerShell(5.1系)」でFixされていて、「PowerShell Core(6.x以降)」への変更は無理なのでは? >>889
どうもありがとうございます
一般メニューのほうから起動することにしました 手っ取り早いのはwinキー, p, w, s, Enter
必要に応じて矢印キーでrun as administratorを選ぶ
Windows11なら「設定」で標準のコンソールを変えることができる
Windows10なら %LOCALAPPDATA%\Microsoft\Windows\WinX の中身を手で書き換える
desktop.ini も隠れてるので書き換え忘れずに
ミスってメニュー壊しても知らんので自己責任で わざわざWin+Xを書き換えなくてもwinキー, p, w, s, Enterが早いしどんなコマンドにも応用が効くのでおすすめ 応用が効くと書いたので蛇足しとく
Win+R でコマンドをフルに打たなくても最近はスタートメニューにフォーカスがあるときコマンドのインクリメンタルサーチができる
古いほうは powershell.exe、新しいほうは pwsh.exe という実行ファイル名なので pws まで打ち込むと候補が絞れる 15年前以上前からできるのに「最近」とは一体... PowerShell でxmlファイルをtxtファイルに
返還することはできますか?
自動化したいんです。 >>898
手動化できているのなら、変換元と変換結果をどこかにあげて例示しよう では読み込んで、クリップボードにコピー
する事はできますか? はい、できます。$cp::SetText(変数)
最初にSystem.Windows.Formsを読み込んでね scoop入れてみたけどすごくいいな。使ってる人いない?
てかロクにpowershellのコマンドを知らないものだから irm get.scoop.sh | iex でなんでインストールできるのが不思議だった
賢いなこれw Get-Contentみたいにテキストファイルを一行毎に配列にしてくれるのを
ファイルじゃなくて標準入力からテキストデータを受け取って配列にする方法はありますか? セットしたい配列変数が $ary の場合
ヒア文字列で
@"
aaa
bbb
ccc
"@ -split "`n" | tee -Variable ary
とすれば $ary に配列がセットされるけど
画面表示がいらないなら | 以降を
| % {$ary=@()}{$ary+=$_}
としてください
ヒア文字列ではなくてクリップボードの内容を受け取りたい場合は
(Get-Clipboard) | % {$ary=@()}{$ary+=$_.ToString().Trim()}
の様にすれば行毎の文字列の先頭・末尾の空白を消して配列に取り込むことが出来るでしょう >>898
txtファイルに変換の意味が改行マークの挿入+字下げで良いのなら
xmlファイルの文字コードがUTF8であれば
$f = "$Env:LOCALAPPDATA\Programs\app_foo\config.xml"
$x = New-Object xml; $x.Load($f); $x.Save($f); Remove-Variable x,f
$f のところは xml ファイルのフルパスを入れて下さい
運用する場合
アプリのフルパスが "$Env:LOCALAPPDATA\Programs\app_foo\bar.exe"
テキストエディタが "C:\Program Files\Notepad++\notepad++.exe" であるなら
C:\tools\edit_xml.ps1 の内容
Set-Alias bar "$Env:LOCALAPPDATA\Programs\app_foo\bar.exe"
Set-Alias editor "C:\Program Files\Notepad++\notepad++.exe"
$f = "$Env:LOCALAPPDATA\Programs\app_foo\config.xml"
ps bar -ea SilentlyContinue | % {$_.CloseMainWindow();$_.WaitForExit()}
$x = New-Object xml; $x.Load($f); $x.Save($f); Remove-Variable x
write "編集が終わったらリターンを押してください"
editor $f
pause
Remove-Variable f
start bar
実行する際は & C:\tools\edit_xml.ps1 で
[x] 押したらトレイに遷移するアプリは手動で終了させる or kill に書き換える必要があるでしょう >>905
ありがとうございます。
あんたは神ですか?! n番目の履歴の実行をInvoke-Historyではなくbashみたいに「!n」ってやる方法ありませんか? なお、腐れChatGPTの回答はなしでお願いします
聞いたら↓でできるとかデタラメ回答よこしてきたし
function global:history-command { Invoke-History $args[0] }; Set-Alias -Name ! -Value history-command -Option AllScope PowerShellでは!ではなくrを使う
あとrと番号の間に空白文字をれる
r 3
みたいな感じ
>>910の場合は!の前に&を付ける必要がある
PowerShellの!は論理否定演算子だからな
&! 3 文句ばっかし言っていないで、さっさと変数の中身くらいはデバッグで間違いに気付くようになれ >>911
ありがとうございます
遅レスですいません カレントフォルダにあるファイルをタブ補完したら頭に.\がつくのがうざい
つかないようにできん? ここのコード試したらできたわ
ttps://superuser.com/questions/1741125/prevent-powershell-autocomplete-from-adding-dot-prefix
中身はさっぱりわからんけどw powershellではカレントディレクトリにある.exeや.ps1を実行するときには先頭に .¥ を付ける必要がある
だから補完時に .¥ を付けることだけを抑制するのはちぐはぐな対応で普通はデメリットが大きい
.¥ が必要になったのはセキュリティを考慮した仕様で、ネット等から入手したzip等の中にnotepad.exe等の既知のアプリと同名のマルウェアを仕込んで騙して実行させるようなトラップの類のリスクを低減するもの >>917
.\notepad.exeを起動させるんですね
それって安全なの? notepad.exeでカレントディレクトにあるやつが実行されるよりは
ファイル名だけで.¥まで補完すなってのはある
bashなんかは./からタイプしないと補完しないよな >>920
自ら補完して気づかず起動したらそれまで
この仕様変更によって守られるケースもあるし守れないケースもある
何事にも完璧はないし100じゃないから0じゃないか意味ないと腐すのは愚か者の考え方
セキュリティと利便性はいつだってトレードオフ >>922
>セキュリティと利便性はいつだってトレードオフ
馬鹿言ってんじゃない。cmdとの互換性なんて要らないのにいまだにカレントディレクトリが探索パスの先頭にあるのが頭おかしいだけ ん、ちょっと変な書き方になった
要はコマンドライン先頭のコマンド名の箇所の補完でカレントディレクトリのファイルが一番最初にしかも丁寧に.\付きで出てくる仕様自体が
.\を付けないと実行できないようにされてる意味すら無くしてるわけで、毎回ユーザーに目視確認させるんじゃないよって話だ oh my poshって今知ったけどかなりイケてるなこれ
powershell専用と思いきや色んなOS、シェルに対応してる
Windows Terminalでpowershell7とwsl2を両方使う人はこれ使うとプロンプトラインに統一感出ていい感じよ
逆に統一感ありすぎてどっちがどっちか区別つかないかもしれんけど function hoge { echo "fuga" }
Set-PSReadLineKeyHandler -Chord Ctrl+u -Function hoge
としたらエラーになった
キーバインドでユーザ定義関数は指定できないの? 何年目かでいうなら今年3年
アイスタイルふざけんなよ上げろや死ね ~がhomeに展開されなくて困る
早いとこ対応してくれ サブディレクトリの下のファイル数をカウントして回るスクリプト
dir -attr D | %{ (dir $_.FullName -attr !D).Count }
おおむね動くんだけどディレクトリ名にスペースがあると0になってしまう
(dir $_).FullName的な挙動になってる気がするんだけどどう書けばいいの? >>932
こういうのもあるけど
(Get-ChildItem [Path] -Recurse | Measure-Object).Count Get-ChildItem <target> -Directory | % {"{0}: {1}" -f $_.Name,$_.GetFiles().Count} でどうでしょうか こう変えるだけでいいよ
dir -attr D | %{ (dir "$($_.FullName)" -attr !D).Count } dir -attr D | %{ (dir -LiteralPath $_.FullName -attr !D).Count }
dir -attr D | %{ ($_ | dir -attr !D).Count } パイプを使って渡しているだけだからそのような結果となってしまう
横着して一行で済ませようとしなけりゃいいんだよw PowerShellでもIF構文とかも利用出来るんだからねw ファイルフルパス中に含まれるスペースなどはコマンド区切り文字として扱われてしまうので実行時にエラーとなってしまう
for %%1 in ("%MediaPath%") do (set MediaPath=%%~s1)
短いファイル名へと一旦変更するなど工夫をして利用する >>932
具体的にどんなディレクトリ名なの?
軽く検証してみたけどディレクトリ名にスペースを含んでも普通に動作する
角括弧を含むとダメで >>936 みたいに-LiteralPathを使う必要がある
っていう感じだった レス数が900を超えています。1000を超えると表示できなくなるよ。