X



【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0002デフォルトの名無しさん垢版2016/11/26(土) 08:38:40.61ID:bM77xh/N
> http://echo.2ch.net/test/read.cgi/tech/1378978504/995
お前がそう思うならお前の中ではそうなんだろう
ただ、前スレ972,984が主張しているのは同じ系列か違う系列かとは別次元の主張だと思うけどね
前スレ972,984は言語の違いに具体性をあげて主張し、お前(995)は「言語系が違うから考えるだけ無駄」と一刀両断してる
「言語系が違う」とは「具体的に何が違ってどう問題なのか」まで詰めないと反論にはならない
0005デフォルトの名無しさん垢版2016/11/26(土) 13:32:13.97ID:mgzn+G7H
前スレのやりとり(一部抜粋)

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

(俺注)変な横やりが入る
0014デフォルトの名無しさん垢版2016/11/28(月) 06:23:35.13ID:d2SeRThv
こういうのはOS標準で入ってるバージョンでそれなりのことができないと意味がないと思う
0015デフォルトの名無しさん垢版2016/11/28(月) 20:04:04.40ID:69hXfWEY
それなりのことはできるけどPSv2でやるのは辛すぎる…
batだのWSHに比べたら万倍マシなんだけどさ
0018デフォルトの名無しさん垢版2016/11/29(火) 03:34:35.62ID:5xImsroJ
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で
> すでに入れ替えが実施されたと説明がある。
0021デフォルトの名無しさん垢版2016/11/30(水) 02:32:30.35ID:PeC/aWZc
imgur.com/a/XVI2u.jpg
0023デフォルトの名無しさん垢版2016/11/30(水) 07:47:24.54ID:ycotJF0t
あれ切れた・・・

二回目の入力は
"[system.draw" + tab補完試す→何も起きない + "ing.image]"
というキー入力してるんだが、こうやると何故か見えるようになるみたい

大人しくアセンブリ読み込めばいいだけだしおま環事象かもしれないけどこうなるメカニズムが気になる
0024デフォルトの名無しさん垢版2016/11/30(水) 08:14:04.76ID:ycotJF0t
あーよくわからんが理由はなんとなくわかった
tab補完試したら勝手にアセンブリが追加されて増えてたみたい
powershellの仕様ってことかな、よくわからんけど
0025デフォルトの名無しさん垢版2016/11/30(水) 13:19:03.28ID:3Q1IinyT
>>22-23
2chのバグだろう

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

それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった
0029デフォルトの名無しさん垢版2016/12/08(木) 13:37:02.95ID:MkJf2qz2
今度、職場がオフライン環境となり、
これまで使っていたcygwin(シェル、ruby)をインストール出来なくなりそう。
powershellならWindows標準でついてくるみたいですが
代用になりそうですかね?
用途はテキスト加工がメインです
0031デフォルトの名無しさん垢版2016/12/08(木) 19:32:39.61ID:3zYsuSQR
.NETインストールされてる環境ならC#の方がいいでしょ
あえてps使う理由ってあるの?
0032デフォルトの名無しさん垢版2016/12/08(木) 19:36:26.58ID:WR2cMfp2
>>29
PSもシェルスクリプトだからシェルは問題なく代用できる

Rubyは本格的なOOPとかメタプログラミングとか
難しいことやらなければおおむね代用可能だと思う
003429垢版2016/12/09(金) 02:40:50.47ID:rHK/kpVD
説明不足ですみません。
非プログラマー職なので、
powershell、エクセルvba、wsh(vbs,js)、バッチファイルみたいな
最初からWindowsに入ってる
プログラミング環境しか使えないという状況でした。
0039デフォルトの名無しさん垢版2016/12/12(月) 18:53:22.19ID:GhP5dmpO
一応Add-TypeでC#やVB.NETも使えないことはないがVS無しで書くのは本当に苦行だからおすすめしない
0040デフォルトの名無しさん垢版2016/12/29(木) 03:05:33.41ID:KJUJiytz
ファイルがダウンロードされたものか、ローカルで作成されたものかってどうやって判別してるんだろ
0044デフォルトの名無しさん垢版2016/12/31(土) 16:47:59.77ID:i7Y8czLd
>>37
別に来ていいと思うけど...
0048デフォルトの名無しさん垢版2017/01/21(土) 18:05:10.76ID:W/zpHkC+
PS ISE以外に開発環境ってある?
テンプレート、シンタックスハイライト、入力補完、デバッガあたりが揃ってるやつ
0050デフォルトの名無しさん垢版2017/01/24(火) 20:10:15.91ID:fUCXytHT
はい
0051デフォルトの名無しさん垢版2017/01/24(火) 20:49:09.93ID:HHZbO6eg
普通にカレントディレクトリからの相対もできたと思うが...
なんか変な挙動あったっけ?
0052デフォルトの名無しさん垢版2017/01/24(火) 20:53:59.82ID:QirY2NrM
PowerShellってみなさんどうやって覚えてる?
必要になったものをググって都度対応してるけど、
なんかおすすめの学習方法ないですか?
0055デフォルトの名無しさん垢版2017/01/24(火) 23:12:30.12ID:vfnHFTTm
>>51
よくあるのはPowerShell自身とCLRでカレントディレクトリの管理が別々なせいで祖対パスが通らない、とかかな
0058デフォルトの名無しさん垢版2017/01/25(水) 22:51:46.01ID:t2eusvsp
>>57
そういう言葉で表現があってるかは分からないけど
スタティックメソッドに相対パスを渡すとそのメソッドはGetCurrentDirectoryメソッドで返ってくるパスをカレントディレクトリとして認識するよって話
ttp://stknohg.hatenablog.jp/entry/2015/04/30/232255
0065デフォルトの名無しさん垢版2017/02/27(月) 21:46:23.66ID:62PirtiY
OSのLocalSystemアカウントでWinRMコマンドは動かないんですよね?
0066デフォルトの名無しさん垢版2017/02/28(火) 04:23:14.83ID:9miyuyTg
age
0067デフォルトの名無しさん垢版2017/03/15(水) 03:25:58.68ID:mD7g4mUz
変数 $? について質問です。

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

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

何かスマートな解決方法がありましたら教えてください。
006967垢版2017/03/17(金) 02:14:53.86ID:hRDUDw/w
>>68
ああ、変な書き方してますね。すいません。

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

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

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

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

関数やコマンドレットを別のテーブルにつっこんで、
連想配列呼び出しなどを行いたいので、
実行の成否判定を一つの方法に統一したいのです。
007472垢版2017/03/23(木) 21:20:42.65ID:a5UvHPnh
定数じゃなくて読み取り専用だった
Set-Variable -Force で値を変更できるけど、
値を変更したっていう「処理に成功」したことを処理系が感知して上書きしちゃうから意味ない

http://i.imgur.com/oCyQDIB.jpg
0075デフォルトの名無しさん垢版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
0076デフォルトの名無しさん垢版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
}
0077デフォルトの名無しさん垢版2017/04/07(金) 18:51:24.69ID:qFjL5HdN
C#でOkというような
PowerShellとC#一緒にしてるような人ってなに?
使い分けもわからん人かな
0080デフォルトの名無しさん垢版2017/04/10(月) 22:06:32.07ID:uKsodgl6
"$($a='abc')$a"
ってやったら
abc
が表示される
で、
"$($a=')abc(')$a"
ってやろうとしたら
文字列の終端記号 ' がありません
って怒られるんだけどなぜなんだろ?
とりあえず今は
$b = ')abc('
"$($a=$b)$a"
ってやってるんだけどなんかいい方法ある?
0083デフォルトの名無しさん垢版2017/04/27(木) 16:26:02.68ID:DT2kwFTK
結局PSプロバイダとかPSドライブが良くわからないので
環境変数の見方やセットの仕方が未だに覚えられない
0085デフォルトの名無しさん垢版2017/05/08(月) 11:44:29.24ID:6gSr/ulH
>>75
俺もそこに詰まってた。
Invoke-WebRequestが弾かれるから、Start-BitsTransfer使ったりしてかなりごちゃまぜな感じだけど、

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

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

Set-PSReadlineOption -BellStyle None

>curlへのエイリアス

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

コマンドプロンプト経由でPowershellを使って、
既存のxlsxファイルの複数シート(もしくは全シート)を選択した状態にしてセーブ/終了したいのですが、
複数シート(もしくは全シート)を選択した状態にするコードが分かりません。
方法があれば、ご教示いただけるとありがたいです。
0093デフォルトの名無しさん垢版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++
}
0095デフォルトの名無しさん垢版2017/06/17(土) 22:39:02.28ID:pgT8IBgc
Excelのシートの背景色をまとめて変えたいです。
セルで範囲を指定する方法は分かるのですが、Excelだと左上のボタンを押すと全指定になるように全てのセルを対象にして背景色を変えたいです。
Powershellでそういう方法ってあるのでしょうか?
0097デフォルトの名無しさん垢版2017/06/22(木) 21:05:25.54ID:T+mmOPfg
タイトルバー右クリック→プロパティ→画面の色
の16色カラーパレット各色の値を変更するコマンドってありますか?
009997垢版2017/06/22(木) 22:55:13.89ID:T+mmOPfg
>>98
ありがとう。でも設定は永続ではなく現在のプロセスだけ有効であれば良いです。
■ このスレッドは過去ログ倉庫に格納されています

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