【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
> http://echo.2ch.net/test/read.cgi/tech/1378978504/995
お前がそう思うならお前の中ではそうなんだろう
ただ、前スレ972,984が主張しているのは同じ系列か違う系列かとは別次元の主張だと思うけどね
前スレ972,984は言語の違いに具体性をあげて主張し、お前(995)は「言語系が違うから考えるだけ無駄」と一刀両断してる
「言語系が違う」とは「具体的に何が違ってどう問題なのか」まで詰めないと反論にはならない pascalとobject pascalが同系統でないと言うなら一部くらいは認めてもいい 前スレのやりとり(一部抜粋)
972:
VBよりPythonとかのモダンなヤツの方が言語として使いやすいのはあると思う
(俺注)この人はモダンなやつの方が使いやすいと言っている
983:
>>972
言語系が違うから
同じ系統と使っていた人はそちらが使いやすい
(俺注)この人は、モダンかどうかより「系統」だと言っている
984,985:
>>983
レスが付いたので一応返すけど。
自分が列挙したのは機能不足の例であって、あなたが言うような言語系の違いでは無いと思う。
自分はVBAの文法は不足点が多いと思うけど、後継のVBA.netにはそういう不足は感じない。
VBA.net→VB.netのtypo
(俺注)やっぱりモダンなやつの方が使いやすいと言っている
(俺注)VBAには不足があるがVB.netはそうじゃない(別もの)とも言っている
986:
>>984
VBA と VB.net じゃ全然違う言語だろ w
(俺注)変な横やりが入る >>8
PowerShellでOOPせざるを得ない人達はほんとご愁傷様だと思う こういうのはOS標準で入ってるバージョンでそれなりのことができないと意味がないと思う それなりのことはできるけどPSv2でやるのは辛すぎる…
batだのWSHに比べたら万倍マシなんだけどさ ネタあるやつ、誰か参加してやれよww
PowerShell Advent Calendar 2016
http://qiita.com/advent-calendar/2016/powershell >>16
タネも用意せずにネタ振れとか何を考えてるんだよ w Windows 10 次期アップデートでコマンドプロンプト廃止
http://hayabusa8.2ch.net/test/read.cgi/news/1479719509/
> fossBytesに11月19日(米国時間)に掲載された記事「Microsoft Replaces Command Prompt
> With PowerShell As Windows 10 Default Shell」が、Windows 10のデフォルトシェルが
> コマンドプロンプトからPowerShellに変更されると伝えた。Windows 10 Insider Build 14971で
> すでに入れ替えが実施されたと説明がある。 >>18
この嘘ニュースでAdvent Calendar一本書けるやん。 アセンブリ読み込む前にクラスが見えたり見えなかったりするのはどういう理屈なん?
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
遅ればせながら。
今日試して、うまくいきました。感謝。 ■ このスレッドは過去ログ倉庫に格納されています