【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
アセンブリ読み込む前にクラスが見えたり見えなかったりするのはどういう理屈なん? http://i.imgur.com/Aev8NFz.png 二回目の入力は あれ切れた・・・ 二回目の入力は "[system.draw" + tab補完試す→何も起きない + "ing.image]" というキー入力してるんだが、こうやると何故か見えるようになるみたい 大人しくアセンブリ読み込めばいいだけだしおま環事象かもしれないけどこうなるメカニズムが気になる あーよくわからんが理由はなんとなくわかった tab補完試したら勝手にアセンブリが追加されて増えてたみたい powershellの仕様ってことかな、よくわからんけど >>22-23 2chのバグだろう 書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。 " の代わりに、\" とエスケープすれば、どうだろう? それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった rubyとかpythonのラッパーないの?とか言ってたやつまだいるのかね じゃあ。 rubyとかpythonのラッパーないの? rubyとかpythonのラッパーって何? IronRubyやIronPythonの事? 今度、職場がオフライン環境となり、 これまで使っていたcygwin(シェル、ruby)をインストール出来なくなりそう。 powershellならWindows標準でついてくるみたいですが 代用になりそうですかね? 用途はテキスト加工がメインです .NET CLIのregexpが使えるから何とかなるんじゃない .NETインストールされてる環境ならC#の方がいいでしょ あえてps使う理由ってあるの? >>29 PSもシェルスクリプトだからシェルは問題なく代用できる Rubyは本格的なOOPとかメタプログラミングとか 難しいことやらなければおおむね代用可能だと思う 説明不足ですみません。 非プログラマー職なので、 powershell、エクセルvba、wsh(vbs,js)、バッチファイルみたいな 最初からWindowsに入ってる プログラミング環境しか使えないという状況でした。 >>31 オフラインって書いてあるのにどうやって開発環境を揃える気なんだろう... 一応Add-TypeでC#やVB.NETも使えないことはないがVS無しで書くのは本当に苦行だからおすすめしない ファイルがダウンロードされたものか、ローカルで作成されたものかってどうやって判別してるんだろ Get-Content -Path hoge -Stream Zone.Identifier >>44 プログラム技術@2ch掲示板 この板はプログラムを作る人のための板です。 PS ISE以外に開発環境ってある? テンプレート、シンタックスハイライト、入力補完、デバッガあたりが揃ってるやつ パスの扱いがよくわからん System.IOを使うときはフルパスで渡すのが基本なのか? 普通にカレントディレクトリからの相対もできたと思うが... なんか変な挙動あったっけ? PowerShellってみなさんどうやって覚えてる? 必要になったものをググって都度対応してるけど、 なんかおすすめの学習方法ないですか? >>51 よくあるのはPowerShell自身とCLRでカレントディレクトリの管理が別々なせいで祖対パスが通らない、とかかな VBSみたいにchmファイル的なオフラインヘルプって作れないの? >>55 CLR のカレントディレクトリなんてあるの? 詳しく教えてほしい >>57 そういう言葉で表現があってるかは分からないけど スタティックメソッドに相対パスを渡すとそのメソッドはGetCurrentDirectoryメソッドで返ってくるパスをカレントディレクトリとして認識するよって話 ttp://stknohg.hatenablog.jp/entry/2015/04/30/232255 >>58 ほえー、これは知らんかったわ ひとつ勉強になった サンクス >>60 Get-Help の GUI 版みたいな感じじゃね うちはまだ Version 2.0 使ってるからよくわからんが 会社の人が意地悪してRestrictedから変えてくれない(´;ω;`) OSのLocalSystemアカウントでWinRMコマンドは動かないんですよね? 変数 $? について質問です。 コマンドレットの終了ステータスを$?で取得する分にはいいんですが、 functionで定義した関数の終了結果を$?に反映するのはどうしたらいいんでしょうか? コマンドレットは Cmd -hoge の直後に $? で判定できますが、 これが関数だと $result = Cmd -hoge とか Cmd -hoge ([ref]$result) とかやってわざわざ結果を受け渡さないといけないのがダルくて・・。 true/falseぐらいなんとかならないんですかね・・ 無理やりやる場合、 throw "error" とかやれば、$? にfalseは入りそうですが、trueの場合は・・? 何かスマートな解決方法がありましたら教えてください。 >>68 ああ、変な書き方してますね。すいません。 戻り値ではなく、関数実行の成否を コマンドレットと同じように扱いたい、という意味です。 戻り値になるとWrite-Hostするとかいろいろあると思いますが、 呼び出し側で受け取らないといけないですし、 要は、おおざっぱに書くと function hoge() { //なんかの処理 if ( exec ) { // 成功 $? = true } else { // 失敗 $? = false } } みたいにできると hogeの呼び出し側で $?を見て判断できるので、 コマンドレットと統一したいなぁ、と。 関数やコマンドレットを別のテーブルにつっこんで、 連想配列呼び出しなどを行いたいので、 実行の成否判定を一つの方法に統一したいのです。 成功や失敗の定義が分からないけど、普通の関数呼び出しでも$?は更新されるでしょ http://i.imgur.com/Xi3hIf9.jpg >>70 例外発生させずに $false に設定したいんでしょ 定数じゃなくて読み取り専用だった Set-Variable -Force で値を変更できるけど、 値を変更したっていう「処理に成功」したことを処理系が感知して上書きしちゃうから意味ない http://i.imgur.com/oCyQDIB.jpg みなさんInvoke-WebRequestって正しくダウンロードできますか? 以前は50MB程度のファイルでも正しく落とせていたのですが、 最近実行してみたら、50kB程度しかダウンロードしないですぐコマンドが完了します。 しかも終了ステータスはTRUEで、 try/catchで挟んでもなにも検出されないという・・・。 まったく同じURLで Start-BitsTransferやbitsadmin msys2のwgetなどでは正しくダウンロードできました・・。 こういうのって何が原因として考えられますかね? ちなみにURLはこちらです。 http://jaist.dl.sourceforge.net/project/msys2/Base/x86_64/msys2-base-x86_64-20161025.tar.xz PSでセルオートマトン作ってみた ヒマな時に実行したってや $x = 79;$L = 1,(2..$x|%{0}) 0..36000|%{ ($L|%{if($_){'@'}else{' '}}) -join '' $L = 0..($x-1)|%{$L[$_] -xor $L[($_+$x-1)%$x]} sleep -Milliseconds 100 } C#でOkというような PowerShellとC#一緒にしてるような人ってなに? 使い分けもわからん人かな なんでもExcelで作ろうとしちゃうおっさんと同じじゃなの 開発環境に恵まれてるんでしょ ぼくはiseさんだけがたよりです "$($a='abc')$a" ってやったら abc が表示される で、 "$($a=')abc(')$a" ってやろうとしたら 文字列の終端記号 ' がありません って怒られるんだけどなぜなんだろ? とりあえず今は $b = ')abc(' "$($a=$b)$a" ってやってるんだけどなんかいい方法ある? >>81 なるほど、これは気づかなかったわ サンクス 結局PSプロバイダとかPSドライブが良くわからないので 環境変数の見方やセットの仕方が未だに覚えられない >>75 俺もそこに詰まってた。 Invoke-WebRequestが弾かれるから、Start-BitsTransfer使ったりしてかなりごちゃまぜな感じだけど、 Start-BitsTransfer使うと今度はHTTP ステータス 403: クライアントは要求されたサーバー オブジェクトに対する十分なアクセス権がありません 出てね。 最近余計な追加ばかりしやがる。 ・先頭までBSすると妙にでかいBeepが鳴る。 ・curlへのエイリアス >curlへのエイリアス これって最近じゃないよね? >先頭までBSすると妙にでかいBeepが鳴る Set-PSReadlineOption -BellStyle None >curlへのエイリアス Remove-Item alias:\curl まだpowerGUIってどこかでダウンロードできませんか? ps1をexe化したいんですが 質問です。 コマンドプロンプト経由でPowershellを使って、 既存のxlsxファイルの複数シート(もしくは全シート)を選択した状態にしてセーブ/終了したいのですが、 複数シート(もしくは全シート)を選択した状態にするコードが分かりません。 方法があれば、ご教示いただけるとありがたいです。 >>92 全選択ならこれでできるよ $book.Sheets.Select() 指定したものを選択だとなんかださい書き方になった $sheet_number = 1 $selected_count = 0 foreach($sheet in $book.Sheets) { if((1,2,4).Contains($sheet_number)) { # 1、2、4番目を選択 if($selected_count -eq 0) { $sheet.Select($true) $selected_count++ } else { $sheet.Select($false) } } $sheet_number++ } 指定シート選択の方法で動きました。 ありがとうございました。 Excelのシートの背景色をまとめて変えたいです。 セルで範囲を指定する方法は分かるのですが、Excelだと左上のボタンを押すと全指定になるように全てのセルを対象にして背景色を変えたいです。 Powershellでそういう方法ってあるのでしょうか? $book.ActiveSheet.Cells.Interior.ColorIndex = 20 タイトルバー右クリック→プロパティ→画面の色 の16色カラーパレット各色の値を変更するコマンドってありますか? >>98 ありがとう。でも設定は永続ではなく現在のプロセスだけ有効であれば良いです。 >>96 遅ればせながら。 今日試して、うまくいきました。感謝。 PowerShellだけでローカルhttpサーバーって建てれる? PythonとかNode.jsみたいにお手軽にローカルhttpサーバーを起動したいんだけど余計な開発者用wikiをローカルで動かしたいんだけど(コンテンツはリポジトリで共有) 余計なものをインストールするなって怒られるからPowerShellでやりたい >>101 PowerShellでもできると思うが普通にC#でいいんじゃね? >>102 Visual Studioが無い環境なのでc#はちょっとめんどくさい JDKとEclipseがインストールされてるWindows 7環境 ツールのインストールは殆ど却下されるけどゼロから自作するのは問題ない 何も入れなくてもC#の機能呼び出せるからそれでHttpListener呼べば >>103 > Visual Studioが無い環境なのでc#はちょっとめんどくさい メモ帳 + csc.exe でできるだろ ゼロからの自作ならなにもインストールする必要はないよ Windows PowerShell を使用する場合とコードを記述する場合を判断する https://msdn.microsoft.com/ja-jp/library/office/hh537936 (v=office.14).aspx 明らかに Windows PowerShell が現実的な選択肢とならないシナリオもあります。 たとえば、Windows PowerShell を使用してカスタム アプリケーション ページ、 Web パーツ、または Web サービスを作成することは、通常、考えられません。 同様に、デザイン性に優れたユーザー インターフェイスを作成する場合に Windows PowerShell はおそらく役に立ちません。 全体がコードであるソリューションを必要とする 1 つの具体的なシナリオは、 Windows PowerShell でできることを拡張する方法です。 SharePoint チームが Microsoft.SharePoint.PowerShell モジュールを使用して行ったように、 使用する独自のコマンドレットを作成できます。 >>108 残念ですが今はそれが現実的な選択肢なんです 何でもかんでもインストールできる環境とは違います 放置でいいだろ インストールしちゃダメって言うならC#でもいいって書いてあるのにガン無視だし 開発環境揃えられないのにC#のコンパイラだけじゃ現実的じゃないでしょ >>104 C#じゃなくて.NET Frameworkだろ。 >>112 PowerShell でサーバー作るよりは現実的だよ w >>114 アホか notepadやサクラエディタでプログラミングとか正気じゃないわ >>115 はPowerShell のソースを何で書くつもりなんだろう w 単純なものだよ psでhttpリクエストを待ち受ける シンプルなルーティングルールでコンテンツに振り分ける コンテンツをテンプレートに従い変換してレスポンスを返す これで十分 他の言語なら10数行で書けるしpsでも大差ないだろ このアイデアに比べたらNotepadでc#なんてバカバカしいよ >>119 メモ帳を使っているやつなんかいるかよw 学生? >>120 世の中は君が思うようなゆとり環境ばかりではないということ 厳しい制限の中で何ができるか模索することができないと君が卒業後キツいぞ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる