【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/11/26(土) 06:30:02.67ID:pZYy6q7Y
前スレ
【最強CUI】PowerShell -Part 1
http://echo.2ch.net/test/read.cgi/tech/1378978504/
2016/11/30(水) 08:14:04.76ID:ycotJF0t
あーよくわからんが理由はなんとなくわかった
tab補完試したら勝手にアセンブリが追加されて増えてたみたい
powershellの仕様ってことかな、よくわからんけど
2016/11/30(水) 13:19:03.28ID:3Q1IinyT
>>22-23
2chのバグだろう

書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" の代わりに、\" とエスケープすれば、どうだろう?

それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった
2016/12/01(木) 00:50:22.04ID:KhJS093x
rubyとかpythonのラッパーないの?とか言ってたやつまだいるのかね
2016/12/03(土) 00:13:22.41ID:55Oi6B7P
じゃあ。
rubyとかpythonのラッパーないの?
2016/12/03(土) 14:13:51.52ID:kCQb0c0Q
rubyとかpythonのラッパーって何?
IronRubyやIronPythonの事?
2016/12/08(木) 13:37:02.95ID:MkJf2qz2
今度、職場がオフライン環境となり、
これまで使っていたcygwin(シェル、ruby)をインストール出来なくなりそう。
powershellならWindows標準でついてくるみたいですが
代用になりそうですかね?
用途はテキスト加工がメインです
2016/12/08(木) 13:56:17.78ID:0Yf63N90
.NET CLIのregexpが使えるから何とかなるんじゃない
2016/12/08(木) 19:32:39.61ID:3zYsuSQR
.NETインストールされてる環境ならC#の方がいいでしょ
あえてps使う理由ってあるの?
2016/12/08(木) 19:36:26.58ID:WR2cMfp2
>>29
PSもシェルスクリプトだからシェルは問題なく代用できる

Rubyは本格的なOOPとかメタプログラミングとか
難しいことやらなければおおむね代用可能だと思う
2016/12/08(木) 21:42:22.05ID:q5VqGHc1
>>31
VS入れられない環境でも使える
3429
垢版 |
2016/12/09(金) 02:40:50.47ID:rHK/kpVD
説明不足ですみません。
非プログラマー職なので、
powershell、エクセルvba、wsh(vbs,js)、バッチファイルみたいな
最初からWindowsに入ってる
プログラミング環境しか使えないという状況でした。
2016/12/09(金) 06:40:12.38ID:CLppIZfJ
>>31
オフラインって書いてあるのにどうやって開発環境を揃える気なんだろう...
2016/12/09(金) 13:50:08.79ID:wCfW6wuS
いやだから世の中プログラマばっかじゃないんだよ
2016/12/09(金) 21:13:49.63ID:EGB1gDys
>>36
そう言う人が来る板じゃないんだが...
2016/12/10(土) 10:58:52.86ID:m8d8Cjww
確かに、ここの存在価値は

Windows PowerShell Part5
http://echo.2ch.net/test/read.cgi/win/1474175184/
2016/12/12(月) 18:53:22.19ID:GhP5dmpO
一応Add-TypeでC#やVB.NETも使えないことはないがVS無しで書くのは本当に苦行だからおすすめしない
2016/12/29(木) 03:05:33.41ID:KJUJiytz
ファイルがダウンロードされたものか、ローカルで作成されたものかってどうやって判別してるんだろ
2016/12/29(木) 03:10:31.23ID:zJOypbPn
ADSのフラグ見てるだけ
2016/12/29(木) 11:00:11.70ID:BD9K+jOv
ZONE
2016/12/29(木) 15:16:02.15ID:fFqM3XL7
Get-Content -Path hoge -Stream Zone.Identifier
44デフォルトの名無しさん
垢版 |
2016/12/31(土) 16:47:59.77ID:i7Y8czLd
>>37
別に来ていいと思うけど...
2016/12/31(土) 17:05:35.32ID:RP5GqFRc
>>44
プログラム技術@2ch掲示板
この板はプログラムを作る人のための板です。
2016/12/31(土) 17:07:39.35ID:MAfU3vVP
マ板は?
2016/12/31(土) 19:44:21.14ID:RP5GqFRc
>>46
自分で調べろよ
2017/01/21(土) 18:05:10.76ID:W/zpHkC+
PS ISE以外に開発環境ってある?
テンプレート、シンタックスハイライト、入力補完、デバッガあたりが揃ってるやつ
2017/01/24(火) 20:07:56.75ID:wqAMcCVq
パスの扱いがよくわからん
System.IOを使うときはフルパスで渡すのが基本なのか?
50デフォルトの名無しさん
垢版 |
2017/01/24(火) 20:10:15.91ID:fUCXytHT
はい
2017/01/24(火) 20:49:09.93ID:HHZbO6eg
普通にカレントディレクトリからの相対もできたと思うが...
なんか変な挙動あったっけ?
2017/01/24(火) 20:53:59.82ID:QirY2NrM
PowerShellってみなさんどうやって覚えてる?
必要になったものをググって都度対応してるけど、
なんかおすすめの学習方法ないですか?
2017/01/24(火) 21:46:31.63ID:ELq8qfcr
コマンドレットって語感が気色悪い
2017/01/24(火) 22:27:48.01ID:LErlSC41
>>52
基本それしかないかな
後はabout_系のヘルプを片っ端から読んでみるとか
https://msdn.microsoft.com/ja-jp/powershell/scripting/core-powershell/core-modules/windows-powershell-core-about-topics
2017/01/24(火) 23:12:30.12ID:vfnHFTTm
>>51
よくあるのはPowerShell自身とCLRでカレントディレクトリの管理が別々なせいで祖対パスが通らない、とかかな
2017/01/25(水) 00:33:26.03ID:09UbFk9J
VBSみたいにchmファイル的なオフラインヘルプって作れないの?
2017/01/25(水) 06:47:08.95ID:fntd/u0o
>>55
CLR のカレントディレクトリなんてあるの?
詳しく教えてほしい
2017/01/25(水) 22:51:46.01ID:t2eusvsp
>>57
そういう言葉で表現があってるかは分からないけど
スタティックメソッドに相対パスを渡すとそのメソッドはGetCurrentDirectoryメソッドで返ってくるパスをカレントディレクトリとして認識するよって話
ttp://stknohg.hatenablog.jp/entry/2015/04/30/232255
2017/01/26(木) 06:59:08.30ID:A4ZgtzRu
>>58
ほえー、これは知らんかったわ
ひとつ勉強になった
サンクス
2017/02/01(水) 03:21:38.21ID:0Q4jk/+z
Show-Commandって何に使うの?
2017/02/01(水) 12:56:50.43ID:kNSk5VZr
>>60
Get-Help の GUI 版みたいな感じじゃね
うちはまだ Version 2.0 使ってるからよくわからんが
2017/02/03(金) 21:42:08.19ID://drF8hq
>>48
PowerShell Script の エディタ と Visual Studio
http://tech.guitarrapc.com/entry/2014/09/29/102211
Visual Studio Code を PowerShell 用にインストールする
http://www.vwnet.jp/Windows/PowerShell/2016111501/VSCode4PS_Install.htm
2017/02/15(水) 21:19:49.53ID:wfPvVi6q
会社の人が意地悪してRestrictedから変えてくれない(´;ω;`)
2017/02/18(土) 03:43:07.08ID:0VkJqvdT
C#でイナフ
65デフォルトの名無しさん
垢版 |
2017/02/27(月) 21:46:23.66ID:62PirtiY
OSのLocalSystemアカウントでWinRMコマンドは動かないんですよね?
66デフォルトの名無しさん
垢版 |
2017/02/28(火) 04:23:14.83ID:9miyuyTg
age
2017/03/15(水) 03:25:58.68ID:mD7g4mUz
変数 $? について質問です。

コマンドレットの終了ステータスを$?で取得する分にはいいんですが、
functionで定義した関数の終了結果を$?に反映するのはどうしたらいいんでしょうか?
コマンドレットは
Cmd -hoge
の直後に $? で判定できますが、
これが関数だと
$result = Cmd -hoge
とか
Cmd -hoge ([ref]$result)
とかやってわざわざ結果を受け渡さないといけないのがダルくて・・。
true/falseぐらいなんとかならないんですかね・・

無理やりやる場合、
throw "error"
とかやれば、$? にfalseは入りそうですが、trueの場合は・・?

何かスマートな解決方法がありましたら教えてください。
2017/03/16(木) 23:01:24.01ID:VxkBx001
関数の終了結果って何?戻り値の事?
6967
垢版 |
2017/03/17(金) 02:14:53.86ID:hRDUDw/w
>>68
ああ、変な書き方してますね。すいません。

戻り値ではなく、関数実行の成否を
コマンドレットと同じように扱いたい、という意味です。
戻り値になるとWrite-Hostするとかいろいろあると思いますが、
呼び出し側で受け取らないといけないですし、

要は、おおざっぱに書くと

function hoge()
{
//なんかの処理
if ( exec )
{
// 成功
$? = true
}
else {
// 失敗
$? = false
}
}

みたいにできると
hogeの呼び出し側で
$?を見て判断できるので、
コマンドレットと統一したいなぁ、と。

関数やコマンドレットを別のテーブルにつっこんで、
連想配列呼び出しなどを行いたいので、
実行の成否判定を一つの方法に統一したいのです。
2017/03/17(金) 09:55:31.77ID:80x1YWgW
成功や失敗の定義が分からないけど、普通の関数呼び出しでも$?は更新されるでしょ

http://i.imgur.com/Xi3hIf9.jpg
2017/03/17(金) 18:48:41.55ID:dpI1G6OF
>>70
例外発生させずに $false に設定したいんでしょ
2017/03/18(土) 14:54:47.02ID:506uEQ55
$?は定数なのでユーザーが値を変更するのは無理
2017/03/18(土) 17:24:00.94ID:1jN6Nl4i
定数?
7472
垢版 |
2017/03/23(木) 21:20:42.65ID:a5UvHPnh
定数じゃなくて読み取り専用だった
Set-Variable -Force で値を変更できるけど、
値を変更したっていう「処理に成功」したことを処理系が感知して上書きしちゃうから意味ない

http://i.imgur.com/oCyQDIB.jpg
2017/03/28(火) 01:25:27.68ID:OfwVHftk
みなさん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
2017/03/28(火) 13:29:30.59ID:eplQq0Of
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
}
77デフォルトの名無しさん
垢版 |
2017/04/07(金) 18:51:24.69ID:qFjL5HdN
C#でOkというような
PowerShellとC#一緒にしてるような人ってなに?
使い分けもわからん人かな
2017/04/08(土) 09:33:30.32ID:MEx1rivP
なんでもExcelで作ろうとしちゃうおっさんと同じじゃなの
2017/04/08(土) 09:40:11.22ID:05fh3MNN
開発環境に恵まれてるんでしょ
ぼくはiseさんだけがたよりです
2017/04/10(月) 22:06:32.07ID:uKsodgl6
"$($a='abc')$a"
ってやったら
abc
が表示される
で、
"$($a=')abc(')$a"
ってやろうとしたら
文字列の終端記号 ' がありません
って怒られるんだけどなぜなんだろ?
とりあえず今は
$b = ')abc('
"$($a=$b)$a"
ってやってるんだけどなんかいい方法ある?
2017/04/10(月) 22:41:24.99ID:gkDuG+d4
>>80
"$($a=(')abc('))$a"
2017/04/10(月) 22:49:14.71ID:uKsodgl6
>>81
なるほど、これは気づかなかったわ
サンクス
2017/04/27(木) 16:26:02.68ID:DT2kwFTK
結局PSプロバイダとかPSドライブが良くわからないので
環境変数の見方やセットの仕方が未だに覚えられない
2017/04/27(木) 18:45:36.36ID:iGwy+Jnn
>>83
おバカ自慢いらない
85デフォルトの名無しさん
垢版 |
2017/05/08(月) 11:44:29.24ID:6gSr/ulH
>>75
俺もそこに詰まってた。
Invoke-WebRequestが弾かれるから、Start-BitsTransfer使ったりしてかなりごちゃまぜな感じだけど、

Start-BitsTransfer使うと今度はHTTP ステータス 403: クライアントは要求されたサーバー オブジェクトに対する十分なアクセス権がありません

出てね。
86デフォルトの名無しさん
垢版 |
2017/05/08(月) 14:30:33.42ID:nASEPquk
最近余計な追加ばかりしやがる。
・先頭までBSすると妙にでかいBeepが鳴る。
・curlへのエイリアス
2017/05/08(月) 21:36:01.77ID:iCbQx90b
>curlへのエイリアス

これって最近じゃないよね?
2017/05/14(日) 10:29:23.44ID:cfnkRKwu
>先頭までBSすると妙にでかいBeepが鳴る

Set-PSReadlineOption -BellStyle None

>curlへのエイリアス

Remove-Item alias:\curl
89デフォルトの名無しさん
垢版 |
2017/05/21(日) 23:32:44.95ID:0rB2bxGq
まだpowerGUIってどこかでダウンロードできませんか?
ps1をexe化したいんですが
2017/05/22(月) 16:03:54.37ID:ZYotF7X4
https://chocolatey.org/packages/PowerGUI
91デフォルトの名無しさん
垢版 |
2017/05/22(月) 20:48:22.27ID:0E7f0azY
>>90
ありがとうございますたすかりました!
2017/06/02(金) 23:41:38.59ID:2Map0wHE
質問です。

コマンドプロンプト経由でPowershellを使って、
既存のxlsxファイルの複数シート(もしくは全シート)を選択した状態にしてセーブ/終了したいのですが、
複数シート(もしくは全シート)を選択した状態にするコードが分かりません。
方法があれば、ご教示いただけるとありがたいです。
2017/06/03(土) 03:19:51.11ID:HOlIYUlS
>>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++
}
2017/06/03(土) 07:02:30.23ID:TQ/e2k0C
指定シート選択の方法で動きました。
ありがとうございました。
2017/06/17(土) 22:39:02.28ID:pgT8IBgc
Excelのシートの背景色をまとめて変えたいです。
セルで範囲を指定する方法は分かるのですが、Excelだと左上のボタンを押すと全指定になるように全てのセルを対象にして背景色を変えたいです。
Powershellでそういう方法ってあるのでしょうか?
2017/06/18(日) 00:00:52.56ID:2/zUBuGb
$book.ActiveSheet.Cells.Interior.ColorIndex = 20
97デフォルトの名無しさん
垢版 |
2017/06/22(木) 21:05:25.54ID:T+mmOPfg
タイトルバー右クリック→プロパティ→画面の色
の16色カラーパレット各色の値を変更するコマンドってありますか?
2017/06/22(木) 21:53:07.57ID:TEp+wKkH
レジストリ編集くらいしか思いつかない

https://technet.microsoft.com/en-us/library/cc957409.aspx
https://technet.microsoft.com/en-us/library/cc957408.aspx
9997
垢版 |
2017/06/22(木) 22:55:13.89ID:T+mmOPfg
>>98
ありがとう。でも設定は永続ではなく現在のプロセスだけ有効であれば良いです。
2017/06/22(木) 23:13:48.36ID:v7Y2NKOi
>>96
遅ればせながら。
今日試して、うまくいきました。感謝。
2017/06/24(土) 10:14:00.84ID:jPQQGq+C
PowerShellだけでローカルhttpサーバーって建てれる?
PythonとかNode.jsみたいにお手軽にローカルhttpサーバーを起動したいんだけど余計な開発者用wikiをローカルで動かしたいんだけど(コンテンツはリポジトリで共有)
余計なものをインストールするなって怒られるからPowerShellでやりたい
2017/06/24(土) 10:59:32.01ID:ikmrOfgV
>>101
PowerShellでもできると思うが普通にC#でいいんじゃね?
2017/06/24(土) 11:24:00.67ID:jPQQGq+C
>>102
Visual Studioが無い環境なのでc#はちょっとめんどくさい
JDKとEclipseがインストールされてるWindows 7環境
ツールのインストールは殆ど却下されるけどゼロから自作するのは問題ない
2017/06/24(土) 11:32:28.31ID:5sdiaxaL
何も入れなくてもC#の機能呼び出せるからそれでHttpListener呼べば
2017/06/24(土) 12:10:39.19ID:ikmrOfgV
>>103
> Visual Studioが無い環境なのでc#はちょっとめんどくさい
メモ帳 + csc.exe でできるだろ
ゼロからの自作ならなにもインストールする必要はないよ
2017/06/24(土) 13:12:03.71ID:M1pK/2YY
PowerShellでWebServerってこういうの?
http://community.idera.com/powershell/powertips/b/tips/posts/creating-powershell-web-server
2017/06/24(土) 13:17:14.14ID:jPQQGq+C
>>106
こういうの待ってた
2017/06/24(土) 14:25:40.31ID:cSElHmPp
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 モジュールを使用して行ったように、
使用する独自のコマンドレットを作成できます。
2017/06/24(土) 14:32:25.36ID:jPQQGq+C
>>108
残念ですが今はそれが現実的な選択肢なんです
何でもかんでもインストールできる環境とは違います
2017/06/24(土) 14:37:33.17ID:Ttx92mnQ
なんでこんなに偉そうなんだこいつは
2017/06/24(土) 17:46:31.14ID:jJP9Xrk7
放置でいいだろ
インストールしちゃダメって言うならC#でもいいって書いてあるのにガン無視だし
2017/06/24(土) 18:01:10.30ID:jPQQGq+C
開発環境揃えられないのにC#のコンパイラだけじゃ現実的じゃないでしょ
113デフォルトの名無しさん
垢版 |
2017/06/24(土) 18:26:10.76ID:AiSsJYjg
>>104
C#じゃなくて.NET Frameworkだろ。
2017/06/24(土) 18:43:37.74ID:ikmrOfgV
>>112
PowerShell でサーバー作るよりは現実的だよ w
2017/06/24(土) 22:08:29.97ID:jPQQGq+C
>>114
アホか
notepadやサクラエディタでプログラミングとか正気じゃないわ
116デフォルトの名無しさん
垢版 |
2017/06/24(土) 22:29:15.94ID:AiSsJYjg
>>115
初心者?
2017/06/24(土) 22:38:29.00ID:5sdiaxaL
>>113
そだな^^;
2017/06/24(土) 22:43:41.40ID:ikmrOfgV
>>115 はPowerShell のソースを何で書くつもりなんだろう w
2017/06/24(土) 22:52:36.56ID:jPQQGq+C
単純なものだよ
psでhttpリクエストを待ち受ける
シンプルなルーティングルールでコンテンツに振り分ける
コンテンツをテンプレートに従い変換してレスポンスを返す
これで十分
他の言語なら10数行で書けるしpsでも大差ないだろ
このアイデアに比べたらNotepadでc#なんてバカバカしいよ
120デフォルトの名無しさん
垢版 |
2017/06/24(土) 22:54:17.14ID:AiSsJYjg
>>119
メモ帳を使っているやつなんかいるかよw
学生?
2017/06/24(土) 22:57:40.88ID:jPQQGq+C
>>120
世の中は君が思うようなゆとり環境ばかりではないということ
厳しい制限の中で何ができるか模索することができないと君が卒業後キツいぞ
122デフォルトの名無しさん
垢版 |
2017/06/24(土) 23:00:55.63ID:AiSsJYjg
>>121
サーバー上でメモ帳しかないならわかるが、わざわざサーバー上で書く必要もない。
2017/06/24(土) 23:04:32.95ID:jPQQGq+C
>>122
発想が貧弱
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況