X



PowerShell -Part 3
■ このスレッドは過去ログ倉庫に格納されています
0332デフォルトの名無しさん
垢版 |
2018/12/07(金) 12:42:27.81ID:TQVSWTyy
>>326
それを実行している自分自身のユーザ名が欲しいだけなら、わざわざそんなことしなくても
$env:USERNAME
で引っ張ってこれる。

出し惜しみ、小出しにしないで前後関係も話さないと的確なアドバイスが出来ないよ。
0335デフォルトの名無しさん
垢版 |
2018/12/07(金) 17:53:23.13ID:TQVSWTyy
>>334
だね。
どうやら ID:x9ea9mMQ ID:d/eT01GS はネットワークドライブのマウントがやりたいようだけど、
dos batch で使うべき net use や whois を PowerShell で使おうとすることに
無理がある。出来なくもないけどエレガントじゃない。

PowerShell でやるなら New-PSDrive だな。
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-psdrive
-Credential で任意の(自分以外の)クレデンシャルも指定できるから、
ID:x9ea9mMQ の要件も(たぶん)満たせるだろう。
0336デフォルトの名無しさん
垢版 |
2018/12/07(金) 18:35:56.11ID:fTv51LPz
コマンドレット使える所を外部コマンド使うなよとは思うね
出力から値をテキスト抽出で取り出すとかもエレガントではないな

あとlsとかcatとかdirとかのコマンドエイリアス使うのも微妙に感じる
0337デフォルトの名無しさん
垢版 |
2018/12/07(金) 19:53:53.63ID:iBsL10N5
Get-ChileItemに-Depthなんてオプションあったんだな。
うちの会社は↓みたいな整然としたフォルダ構成だから
こういうオプションあるとすごく助かるわ


プロジェクト管理
 └2018年
  └1Q
   └プロジェクトA
   └プロジェクトB
  └2Q
   └プロジェクトC
  └3Q
   └プロジェクトD
  └4Q
   └プロジェクトE
   └プロジェクトF
 └2019年
  └1Q
   └プロジェクトG
0341デフォルトの名無しさん
垢版 |
2018/12/07(金) 21:00:51.64ID:hrhTiXxm
清濁併せ呑んでこそのPowershell
なんたって名前からしてパワーだからな
力業もどんとこい
0342デフォルトの名無しさん
垢版 |
2018/12/08(土) 11:14:58.74ID:j0zdr08g
.NET Core 3.0 Preview 1でWPF、Windows Forms, WinUIが組み込まれてオープンソース化したんか
ほえー
0343デフォルトの名無しさん
垢版 |
2018/12/08(土) 15:04:34.50ID:8f5a0RKW
>>342
Preview出てたんだ
早速使ってみたい
0346デフォルトの名無しさん
垢版 |
2018/12/10(月) 21:47:33.54ID:PtRqcV9k
Linqっぽいことはできる
(1..10).ForEach({ $_ + 100 }).Where({ $_ -gt 105 })

Linqメソッドも呼べるけどC#のようにインスタンスメソッドな感じでは使えない

[Linq.Enumerable]::Where(1..10 -as [int[]], { param($x) $x -gt 5 } -as [Func[int,bool]])
0347デフォルトの名無しさん
垢版 |
2018/12/10(月) 22:38:26.51ID:vOOk2a2h
必要な箇所でC#コード書けばいいじゃん
外人のコード読むと皆そうやってるよ
0351デフォルトの名無しさん
垢版 |
2018/12/14(金) 21:21:08.51ID:xmsOh7Vk
UWPスレが死んでるのでこっちで聞き直すね
起動してるUWPアプリの列挙ってpowershellでどうやればいいですかね?
全く出てこないんですが
0353デフォルトの名無しさん
垢版 |
2018/12/16(日) 12:08:41.16ID:PkDIN57F
>>345
具体的にどんなことをやりたいか書いていただくと
PowerShellでLINQ利用した場合の例を挙げられると思うけど
0354デフォルトの名無しさん
垢版 |
2018/12/16(日) 21:18:15.54ID:XltMT+7i
職場のPC(セキュリティ上の理由でネットに繋がらない)がWin7→Win10になったんだが
PowerShellのヘルプがオンラインヘルプだけになって見れないのでつらい
0356354
垢版 |
2018/12/20(木) 22:28:30.63ID:MSiR3oAq
>>355
遅くなった & 説明が間違えてたごめん

Get-Helpコマンド自体は使えるんだけど-Fullオプション付けても付けない時と同じ内容しか出てこない
つまり使用例が見れないのでPowerShellを最近使い始めた自分にはつらい

ISEもヘルプを見ようとすると「ネットに繋がりません」みたいなエラーになった

もうリファレンス本買うことにするよ・・・orz
0361デフォルトの名無しさん
垢版 |
2018/12/22(土) 12:12:36.07ID:UGqq2IDw
>>360
基本一緒でしょう
GetType()
してみるとわかりますと同じですね。

ただし、${}の指定では配列のインデックス指定できない
${a[0]} とかは許されないですね。

なんでこういうのがあるかは分りません。
0362デフォルトの名無しさん
垢版 |
2018/12/22(土) 14:03:56.67ID:YB2ocxbA
$test = "TEST"
"test$testtest"
"test${test}test"
こういう時にでも使うんじゃねーの
求める形に適当なのを使えばいいんじゃねーかな
0363デフォルトの名無しさん
垢版 |
2018/12/22(土) 15:32:06.19ID:TlQhzlLR
中括弧つければ通常使えない文字も使える

${\(^o^)/} = "オワタ"
${ Hello ?? World! `nby powershell } = "hi"

どんな文字列でも変数名として有効であることが保証されるからコード生成とかで使われるらしい
普通は文字列への埋め込み時くらいしか使わんね
0364デフォルトの名無しさん
垢版 |
2018/12/22(土) 16:16:19.79ID:VDYmdehC
>>360
私はコードの可読性を高めるためになるべく ${hoge} といった形で記述するようにしてます。
あと、文字列をつなぐような場合でも ${hoge} が使われます。

$hoge = "hoge"
echo "${hoge}fuga"
この場合は「hogefuga」が出力されますが、

$hoge = "hoge"
echo "$hogefuga"
これでは$hogefuga という変数を参照することになるので思ったように動作しません。
0365デフォルトの名無しさん
垢版 |
2018/12/22(土) 16:37:26.19ID:UGqq2IDw
なるほどね

$test="TEST"
"test"+$test+"test"

より次の方がスマートかもね
"test${test}test"
0368デフォルトの名無しさん
垢版 |
2018/12/22(土) 17:15:32.75ID:uHYOaa0r
ダブルコーテーション内で変数を値展開させたい場合空白文字で区切られていないとだめ。つまり
echo "$hoge fuga"
であれば
hoge fuga
にはなる。
hogefugaを得たい場合、俺なら
echo ($hoge+"fuga")
と書く
0369デフォルトの名無しさん
垢版 |
2018/12/22(土) 18:16:02.24ID:UGqq2IDw
echoを使う理由はなんかあるのかな?
私はecho自体つかわないので
0370デフォルトの名無しさん
垢版 |
2018/12/22(土) 18:17:09.93ID:UGqq2IDw
>>367
ありがと
それ見たい
0371デフォルトの名無しさん
垢版 |
2018/12/22(土) 18:20:02.63ID:b6CiPLFa
ログを標準出力に出力するときに普通に使う

aho=echo `command`
こうやってコマンドの標準出力の結果を環境変数にいれるときにも
普通に使う


echoなかったらなに使えばいいワケ?
0372デフォルトの名無しさん
垢版 |
2018/12/22(土) 18:30:20.06ID:UGqq2IDw
いや、使う場面がないので聞いただけ
通常ログに返すときにはそのままechoなしで書いているもので

上記のやり取りの例だとechoいらないな〜と思ったまで
0373デフォルトの名無しさん
垢版 |
2018/12/22(土) 19:12:48.17ID:BLULObxH
echo使わなくてもコマンドの標準出力の結果を変数に入れられるのでは?
環境変数???
0374デフォルトの名無しさん
垢版 |
2018/12/22(土) 19:19:04.64ID:TlQhzlLR
オプション付けないなら意味はない
使う機会は-NoEnumerateするときくらいかな
-NoEnumerateすると配列を塊のままパイプに流せる

"1-one","2-two" | foreach { Write-Output ($_ -split "-") } | Write-Host

1
one
2
two

"1-one","2-two" | foreach { Write-Output ($_ -split "-") -NoEnumerate } | Write-Host
1 one
2 two
0375デフォルトの名無しさん
垢版 |
2018/12/22(土) 19:19:11.25ID:b6CiPLFa
失礼した
パワー系池沼シェルについてはオレは知らん
スレタイみずに普通のシェルの話してるかと思ってたわ
0376デフォルトの名無しさん
垢版 |
2018/12/22(土) 19:20:29.55ID:UGqq2IDw
そのまま書けば標準出力先への出力ですよね

私も不勉強なのですが、場合によりほかのシェル言語経験の方で
そちらではそれが普通なので、その習慣で書いているとかないですかね?
PSの環境変数にも特段echoいらないと思うし。
0377デフォルトの名無しさん
垢版 |
2018/12/22(土) 19:39:35.63ID:90OqLo7S
$env:aho = command で普通に入るね
echoとWrite-Outputの役割はpsに慣れてない人への広い意味でのエイリアスだと思う
シェル言語はツールとしての側面があるから、不使用の方が高尚だと矯正するようなものでもないと思う
0379デフォルトの名無しさん
垢版 |
2018/12/22(土) 20:24:16.85ID:SAN+T+wn
(measure-command{
$first = [datetime]"2000/1/1"
$last = [datetime]"2018/1/1"
foreach($t in 0..($last - $first).TotalHours)
{
$first + [timespan]::FromHours($t)
}
}).TotalMilliseconds


$first + [timespan]::FromHours($t)

Write-Output ($first + [timespan]::FromHours($t))
にすると3倍くらいかかる
0381デフォルトの名無しさん
垢版 |
2018/12/22(土) 20:30:19.10ID:VDYmdehC
>>372
> 上記のやり取りの例だとechoいらないな〜と思ったまで

ぜんぜんそれでも文法&動作的にはオッケーです。
可読性、保守性を上げるためのマイルールです。

自分だけがメンテするスクリプトなら問題ありませんが、複数の人間が
読む可能性がある場合は「何をやろうとしているのか」を
明確にするためにそうしています。
PowerShell に明るくない人が読む可能性もありますから。

なお echo は Write-Output のエイリアスですので念のため。
0382デフォルトの名無しさん
垢版 |
2018/12/22(土) 20:45:17.71ID:uHYOaa0r
> なお echo は Write-Output のエイリアスですので念のため。

一言余計、そんなことは誰でも知ってる。勘違い馬鹿なID:b6CiPLFa以外は
0383デフォルトの名無しさん
垢版 |
2018/12/22(土) 20:52:39.16ID:b6CiPLFa
ほらな低学歴ドカタまるだし()
0388デフォルトの名無しさん
垢版 |
2018/12/22(土) 21:24:11.29ID:UGqq2IDw
>>358
あ、用意されていて簡単にできたはずだ。なんだっけな・・・
0391デフォルトの名無しさん
垢版 |
2018/12/22(土) 22:55:05.08ID:84E3pYZa
alias と入力してみ。
漏れは、Linux・コマンドプロンプトのalias を使う

%, ?
cat, cd, chdir, cp, curl, dir, echo, foreach, ls,
man, mv, ps, pwd, ren, rm, rmdir, tee, type, wget, where

たいていは、Ruby からPowerShell(PS) を呼ぶか、
ダブルクリックで起動したい時は、VBScript から呼ぶ

Ruby, PS, VBS が入り乱れる
0392デフォルトの名無しさん
垢版 |
2018/12/23(日) 00:15:24.77ID:qffc/3mK
ps:オレのPC

PS >.\datecount.ps1 > xxx.txt

----

datecount.ps1(>>379)

date
$first = [datetime]"2000/1/1"
$last = [datetime]"2018/1/1"
foreach($t in 0..($last - $first).TotalHours)
{
$first + [timespan]::FromHours($t)
}
date

----

xxx.txt

2018年12月23日 0:02:31 ← 開始
2000年1月1日 0:00:00
2000年1月1日 1:00:00
(-snip-)
2017年12月31日 23:00:00
2018年1月1日 0:00:00
2018年12月23日 0:03:37 ← 終了
0393デフォルトの名無しさん
垢版 |
2018/12/23(日) 00:18:08.99ID:qffc/3mK
bash:オレのPC(>>392と同じ計算機)のvmwareのcentos

$ ./datecount.sh > xxx.txt

----

datecount.sh

#!/bin/bash
date
FIRST=`date +%s -d "2000/1/1 0:00:00"`
LAST=`date +%s -d "2018/1/1 0:00:00"`
A=$((FIRST-=3600))
while [ ${A} -lt ${LAST} ]
do
date -d @$((A+=3600)) "+%Y年%-m月%-d日 %k:%M:%S"
done
date

----

xxx.txt

2018年 12月 22日 土曜日 23:59:44 JST ← 開始
2000年1月1日 0:00:00
2000年1月1日 1:00:00
(-snip-)
2017年12月31日 23:00:00
2018年1月1日 0:00:00
2018年 12月 23日 日曜日 00:01:53 JST ← 終了
0394デフォルトの名無しさん
垢版 |
2018/12/23(日) 00:47:12.06ID:qffc/3mK
改めてパワー系池沼シェルの遅さが実感できたわ

linuxのほうは毎回dateコマンド経由して結果を取得するものすごい悪い条件なのに
パワー系池沼シェルは組込みオブジェクト使ってもこの速度だからな

組込みオブジェクトを使わなかっらどうなるか
つまりそういうことになる

お話にならない。。。
0399デフォルトの名無しさん
垢版 |
2018/12/23(日) 01:52:13.30ID:9E3TCu/N
結果をlogに出力するだけならすぐ終わるべ

2018年12月23日 1:44:41
2000年01月01日 00:00:00
2000年01月01日 01:00:00
2000年01月01日 02:00:00

2017年12月31日 22:00:00
2017年12月31日 23:00:00
2018年01月01日 00:00:00

2018年12月23日 1:44:43
0400デフォルトの名無しさん
垢版 |
2018/12/23(日) 02:02:36.44ID:lfndw29D
ピラフ大王なんて、PowerShell で、5ch のスレをスクレイピングするよw

漏れは、Ruby でやるけど
0402デフォルトの名無しさん
垢版 |
2018/12/23(日) 02:26:18.31ID:zuMyhwwp
>>379は変数への代入とかを想定して書いたんだけどな

値を返すのを関数型言語っぽく式で書けるのはいいけど、
手続き的なコードと混ざる場合もあるからコードの意図が分かりにくくなりがち
0403デフォルトの名無しさん
垢版 |
2018/12/23(日) 02:35:01.23ID:M6Mt1G8k
計算結果をリストに入れるだけなら0.3秒で終わる
つまりほぼ画面出力かかってる時間なのに
それを組み込みオブジェクトがどうのこうの訳わからんこと言ってる馬鹿さよ
0405デフォルトの名無しさん
垢版 |
2018/12/23(日) 08:50:16.09ID:z3o8Rgch
初学者と低能アンチが自らおバカを披露するスレはここですか。
にやにや眺めてる
0406デフォルトの名無しさん
垢版 |
2018/12/23(日) 10:21:20.90ID:qffc/3mK
画面出力()
やはりパワー系池沼シェルは
池沼が使ってるだけあるわ

オレの試験をみて画面に出力してると思ってるなら
相当知能に問題がある
というよりなシェルの仕組み自体を理解してない

コマンドでは両方とも標準出力をファイルにリダイレクトしている

しかもdate使ってるのはlinuxだからな
池沼はパワー系池沼シェルがdate使ってると思ってるらしいわ
普通に外部コマンド呼び出しのほうがオーバーヘッドがあるからな
まずシェルの内部コマンドと外部コマンドの違いすら分かってない

つまり、linuxはもともと相当不利
パワー系池沼シェルがこの部分で速いのはアタリマエ

基本的なことがなにもわかってない

所詮、低学歴知恵遅れのオツムの程度は
この程度

低学歴はいちいちいつも自分は低学歴でバカですと
自白するからな
0407デフォルトの名無しさん
垢版 |
2018/12/23(日) 10:22:49.86ID:zuMyhwwp
いろいろぐじゃぐじゃ言ってるけど、無駄改行も相まって目障りだね
同じ内容で言葉を増やすのはバカでもできて、言葉を減らすには学が必要だ、って誰が言ったんだっけかな
0408デフォルトの名無しさん
垢版 |
2018/12/23(日) 10:24:00.28ID:qffc/3mK
低学歴知恵遅れには
一から十までいわないと分からないからな

クソみたいに知能が低い
0409デフォルトの名無しさん
垢版 |
2018/12/23(日) 10:32:47.68ID:qffc/3mK
ホントなこの板はクソみたいに知能の低いのしかいないのが
よくわかるわ
0410デフォルトの名無しさん
垢版 |
2018/12/23(日) 10:35:50.27ID:M6Mt1G8k
ああよく見たらたしかにリダイレクトしてたわw
でどこがネックになってるの?
内部コマンド使えるpowershellが圧倒的に速かったって言いたかっただけ?
0411デフォルトの名無しさん
垢版 |
2018/12/23(日) 10:43:20.28ID:qffc/3mK
低学歴知恵遅れの池沼は
日付とかmsが事前に用意してくれるオブジェクトしか使わないから
問題ない

低学歴知恵遅れの池沼は
自分で作ったコマンドを標準入出力で組み合わせて使える知能すら備えてないから
問題ない
0413デフォルトの名無しさん
垢版 |
2018/12/23(日) 11:40:26.14ID:M6Mt1G8k
このアスペの相手は無理だわw
低い次元のしょぼい知識でマウントとろうとするし
またそれ自体が目的になってるからみんな戸惑うんだと思うわ
0414デフォルトの名無しさん
垢版 |
2018/12/23(日) 11:57:29.53ID:qffc/3mK
あんな何度もdate呼ぶような、しかもしょうもない処理を何度も使うなら
普通だったらCで書いたコマンドを作るからな

bash:オレのPC(>>392と同じ計算機)のvmwareのcentos

$ ./datecount2.sh > xxx.txt

----

datecount.c

#include <stdio.h>
#include <time.h>

#define FIRST 946652400
#define LAST 1514732400

int main(void) {
struct tm* p_tm;
time_t t = FIRST;
for ( ; t <= LAST; t += 3600) {
p_tm = localtime(&t);
fprintf(stdout, "%d年%d月%d日 %02d:%02d:%02d\n", p_tm->tm_year + 1900, p_tm->tm_mon + 1, p_tm->tm_mday, p_tm->tm_hour, p_tm->tm_min, p_tm->tm_sec);
}
return 0;
}
0415デフォルトの名無しさん
垢版 |
2018/12/23(日) 11:58:06.55ID:qffc/3mK
#!/bin/bash
date
./datecount
date

----

xxx.txt

018年 12月 23日 日曜日 11:49:43 JST ← 開始
2000年1月1日 00:00:00
2000年1月1日 01:00:00
(-snip-)
2017年12月31日 23:00:00
2018年1月1日 00:00:00
2018年 12月 23日 日曜日 11:49:43 JST ← 終了


一瞬で終わる
なんでもシェルスクリプトだけでやる必要ななんかまったくない
こういった出力結果を加工するのは、当然標準入出力になる
0416デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:00:27.02ID:qffc/3mK
マウント()

低学歴知恵遅れが
いちいちオレにつかっかてきたくせに
マウントとかいってるわ

マジで低学歴知恵遅れは
ハジというもんがないらしいな

低学歴知恵遅れは
なんの取り柄もないゴミでクズのくせに
プライドだけは高いからな

ホントな低学歴知恵遅れは
どんだけゴミやねんと
0418デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:07:09.12ID:9E3TCu/N
あの...だからストリーム出力が遅いんですよPSちゃん

date
$log = New-Object System.Text.StringBuilder
$first = [datetime]"2000/1/1"
$last = [datetime]"2018/1/1"
foreach($t in 0..($last - $first).TotalHours)
{
[void]$log.AppendLine(($first + [timespan]::FromHours($t)).ToString("yyyy年MM月dd日 HH:mm:ss"))
}
$log.ToString()
date

これでリダイレクトなら2秒弱だけど
素実行でコンソール出力ありだと10秒ほどかかる
0419デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:07:09.97ID:qffc/3mK
低学歴知恵遅れが
ムリして頭いいふりしようとしても
頭悪いのなんかすぐにバレるからな

残念なことに

本人は気付いてないかもしれないが
いちいち頭悪いですと自己紹介するからな

残念なことに
0421デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:08:19.86ID:qffc/3mK
低学歴知恵遅れって
低学歴なのがバレてないと思ってるからな

レスすればするほど
低学歴の自己紹介してるのが
分かってない
0423デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:12:26.40ID:qffc/3mK
自己評価だけは高い低学歴知恵遅れにありがちな典型的なサンプルといっていい

底辺であるほどその傾向が高い傾向にあることは
この板で多くのサンプルをみてきたからすぐにわかるわ
0424デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:14:04.22ID:qffc/3mK
低学歴知恵遅れは自覚がない

そいつが低学歴知恵遅れなのは
低学歴がみればすぐに分かるからな

残念なことに

すぐにバレるのが分かってない
0425デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:19:40.35ID:qffc/3mK
やっぱりな低学歴知恵遅れは板から排除しないといけないわ
まともな人間がよってこない

低学歴知恵遅れの頭悪いレスでうまってたら
まともなヤツはどんびきするからな
しかも頭悪いことを自信満々でいうからな
そして声だけはでかい


バルサン焚いて低学歴知恵遅れを
この板から駆除しないといけない
0427デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:26:07.38ID:qffc/3mK
ほらな身に覚えがあるのが
わらわらこのスレによってきてるわ

誘虫灯になってるわ

図星だからな
0428デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:30:51.58ID:9E3TCu/N
シェルでやる必要ないってなると
そだねーで話し終わるんですけど…
そういう主張だったの?
bash持ち出してきて着地点そこでいいの?
0431デフォルトの名無しさん
垢版 |
2018/12/23(日) 13:02:32.10ID:qffc/3mK
そうオレ以外のレスはまとめてNGで正解
情報価値のある有益なレスはオレのレスしかない

他の低学歴知恵遅れのレスは
情報価値ゼロ
■ このスレッドは過去ログ倉庫に格納されています

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