前スレ
【最強CUI】PowerShell -Part 2
http://mevius.5ch.net/test/read.cgi/tech/1480109402/
探検
PowerShell -Part 3
■ このスレッドは過去ログ倉庫に格納されています
2018/10/09(火) 17:46:48.32ID:G4IJkzod
309デフォルトの名無しさん
2018/12/05(水) 20:58:21.39ID:x9ea9mMQ たとえばですが
$pass = test123"45
net use c:¥temp ¥¥192.168.1.10 $pass /user:testuser
とした時にパスワードに含まれている"が文字列として認識されずコマンドが実行されないのです
これをエスケープしようと
$pass = test123"""45
$pass = test123'"45
などとしてもうまくいかない感じです
$pass = test123"45
net use c:¥temp ¥¥192.168.1.10 $pass /user:testuser
とした時にパスワードに含まれている"が文字列として認識されずコマンドが実行されないのです
これをエスケープしようと
$pass = test123"""45
$pass = test123'"45
などとしてもうまくいかない感じです
310デフォルトの名無しさん
2018/12/05(水) 20:59:28.32ID:0urcwekh net useはpowershellのコマンドプロンプト用、powershellではNew-Psdriveコマンドレット、powershellのエスケープ文字は基本バックスラッシュ`
311デフォルトの名無しさん
2018/12/05(水) 21:00:28.08ID:0urcwekh WSHとごっちゃにしないでね
312デフォルトの名無しさん
2018/12/05(水) 21:01:52.08ID:0urcwekh 1行目間違えた
net useはコマンドプロンプト用
net useはコマンドプロンプト用
313デフォルトの名無しさん
2018/12/05(水) 21:03:52.33ID:x9ea9mMQ net use ではなく new-psdriveだとバクスラでエスケープ可能なんですか?
net useだとエスケープできなかったので、ちょっとやってみまふ
net useだとエスケープできなかったので、ちょっとやってみまふ
314デフォルトの名無しさん
2018/12/05(水) 21:08:28.49ID:x9ea9mMQ ちなみにパワーシェルからcmd /cでコマンド呼び出すときのエスケープキーはバクスラと^のどちらですか?
315デフォルトの名無しさん
2018/12/05(水) 21:10:17.22ID:0urcwekh 本件は
$pass='123"45'
とすればいいだけ
$pass='123"45'
とすればいいだけ
316デフォルトの名無しさん
2018/12/05(水) 21:16:36.03ID:x9ea9mMQ シングルコーテートでくくってもエスケープできるんですね
ありがとうございます
ありがとうございます
317デフォルトの名無しさん
2018/12/05(水) 21:23:21.81ID:0urcwekh エスケープじゃなくて、Powershellでは文字列は必ず'か"どっちかで囲う。生身はだめ。'で囲うのは静的リテラルの場合
318デフォルトの名無しさん
2018/12/05(水) 21:25:50.83ID:jRzepDw/ 結局環境変数は関係ないのか?
> " が含まれている文字列を環境変数にいれて
> " が含まれている文字列を環境変数にいれて
319デフォルトの名無しさん
2018/12/05(水) 21:30:22.57ID:0urcwekh 本当の初学者で変数もコマンドプロンプトと同じ概念なんだろ
320デフォルトの名無しさん
2018/12/05(水) 21:57:08.28ID:x9ea9mMQ なるほどそういうルールあるんですね
プログラムやったことないんでしらんかったす
リテラルってのも意味わからんかったくらいや
プログラムやったことないんでしらんかったす
リテラルってのも意味わからんかったくらいや
321デフォルトの名無しさん
2018/12/05(水) 22:13:06.29ID:ix5zH8Lr start-processで終了を待たずにps1実行していくのは疑似並列処理として考えて良いのでしょうか
322デフォルトの名無しさん
2018/12/06(木) 07:24:42.90ID:Ia5EZXvv 「`」はバッククォートだ馬鹿者
バックスラッシュ(\)とは違う
バックスラッシュ(\)とは違う
323デフォルトの名無しさん
2018/12/06(木) 08:11:29.70ID:XlsCLRxJ PowerShell Coreの宣伝始まった
https://twitter.com/Steve_MSFT/status/1070096140010287104
https://twitter.com/5chan_nel (5ch newer account)
https://twitter.com/Steve_MSFT/status/1070096140010287104
https://twitter.com/5chan_nel (5ch newer account)
324デフォルトの名無しさん
2018/12/06(木) 12:49:27.99ID:r+yxrRWT 標準出力に変なもん混ぜるな
325デフォルトの名無しさん
2018/12/06(木) 14:36:39.70ID:8XTishpu326デフォルトの名無しさん
2018/12/07(金) 00:30:59.21ID:d/eT01GS whoamlで取得した実行結果のユーザ名を一行で環境変数に入れるにはどうすれば良いでしょうか
whoami 実行
結果 testpc¥user1
と結果が返ってくる場合、
$test = whoami.split("¥")[1]
と言ったかたちで
$testにuser1を格納させたいのですがうまく行きません
whoami 実行
結果 testpc¥user1
と結果が返ってくる場合、
$test = whoami.split("¥")[1]
と言ったかたちで
$testにuser1を格納させたいのですがうまく行きません
327デフォルトの名無しさん
2018/12/07(金) 01:04:59.92ID:frCtIBO+ 括弧で囲む
(whoami)
(whoami)
328デフォルトの名無しさん
2018/12/07(金) 03:14:11.72ID:0M/LMioQ >>326
昨日と同じ人だと思うけれどpowershellでは変数はコマンドプロンプトとは違い環境変数ではありません。
http://www.atmarkit.co.jp/ait/spv/0709/20/news125_2.html
昨日と同じ人だと思うけれどpowershellでは変数はコマンドプロンプトとは違い環境変数ではありません。
http://www.atmarkit.co.jp/ait/spv/0709/20/news125_2.html
329デフォルトの名無しさん
2018/12/07(金) 07:51:42.00ID:QVqNOX9I 読んでみたけど違いがよくわからん
型を持つってとこ?
型を持つってとこ?
330デフォルトの名無しさん
2018/12/07(金) 08:45:51.25ID:hrhTiXxm 型じゃなく範囲・スコープだよ
環境変数はOSが管理していて、ひとつ値をセットしたら同じ環境内の他プロセス(アプリ)がその値をOSに教えてもらえる
普通の変数はプロセス内で管理されていて、他プロセスは見ることが出来ない
環境変数はOSが管理していて、ひとつ値をセットしたら同じ環境内の他プロセス(アプリ)がその値をOSに教えてもらえる
普通の変数はプロセス内で管理されていて、他プロセスは見ることが出来ない
331デフォルトの名無しさん
2018/12/07(金) 12:18:05.50ID:cSzYN2du Linux では、~/.bashrc に環境変数を書けば、
自分(そのユーザーだけ)が起動するプロセスから、アクセスできる
etc/ 以下なら、PC 全体の設定になる
~/.bashrc は、Windows ではユーザー環境変数。
一方、システム環境変数は、PC 全体の設定で、すべてのユーザーで共有される
例えば、Tで始まる環境変数なら、
ls env: | Where-Object {$_.name -like "T*"}
自分(そのユーザーだけ)が起動するプロセスから、アクセスできる
etc/ 以下なら、PC 全体の設定になる
~/.bashrc は、Windows ではユーザー環境変数。
一方、システム環境変数は、PC 全体の設定で、すべてのユーザーで共有される
例えば、Tで始まる環境変数なら、
ls env: | Where-Object {$_.name -like "T*"}
332デフォルトの名無しさん
2018/12/07(金) 12:42:27.81ID:TQVSWTyy >>326
それを実行している自分自身のユーザ名が欲しいだけなら、わざわざそんなことしなくても
$env:USERNAME
で引っ張ってこれる。
出し惜しみ、小出しにしないで前後関係も話さないと的確なアドバイスが出来ないよ。
それを実行している自分自身のユーザ名が欲しいだけなら、わざわざそんなことしなくても
$env:USERNAME
で引っ張ってこれる。
出し惜しみ、小出しにしないで前後関係も話さないと的確なアドバイスが出来ないよ。
333デフォルトの名無しさん
2018/12/07(金) 16:32:33.86ID:fTv51LPz >>331
.bashrcはPowershellでは$Profileに当たると思うわ
.bashrcはPowershellでは$Profileに当たると思うわ
334デフォルトの名無しさん
2018/12/07(金) 17:14:53.01ID:2MiN5Gqm つーか、Credential使えよ
今時ハードコートとかありえん
今時ハードコートとかありえん
335デフォルトの名無しさん
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 の要件も(たぶん)満たせるだろう。
だね。
どうやら 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 の要件も(たぶん)満たせるだろう。
336デフォルトの名無しさん
2018/12/07(金) 18:35:56.11ID:fTv51LPz コマンドレット使える所を外部コマンド使うなよとは思うね
出力から値をテキスト抽出で取り出すとかもエレガントではないな
あとlsとかcatとかdirとかのコマンドエイリアス使うのも微妙に感じる
出力から値をテキスト抽出で取り出すとかもエレガントではないな
あとlsとかcatとかdirとかのコマンドエイリアス使うのも微妙に感じる
337デフォルトの名無しさん
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
うちの会社は↓みたいな整然としたフォルダ構成だから
こういうオプションあるとすごく助かるわ
プロジェクト管理
└2018年
└1Q
└プロジェクトA
└プロジェクトB
└2Q
└プロジェクトC
└3Q
└プロジェクトD
└4Q
└プロジェクトE
└プロジェクトF
└2019年
└1Q
└プロジェクトG
338デフォルトの名無しさん
2018/12/07(金) 20:47:47.55ID:d/eT01GS treeコマンドやん
339デフォルトの名無しさん
2018/12/07(金) 20:51:06.57ID:0M/LMioQ tree形式で図示しただけ。
gciの-Depth は再帰検索する深さの指定
gciの-Depth は再帰検索する深さの指定
340デフォルトの名無しさん
2018/12/07(金) 20:55:01.67ID:0M/LMioQ ID:iBsL10N5 自身が言うべき事だが
阿呆指摘についカッとなった
阿呆指摘についカッとなった
341デフォルトの名無しさん
2018/12/07(金) 21:00:51.64ID:hrhTiXxm 清濁併せ呑んでこそのPowershell
なんたって名前からしてパワーだからな
力業もどんとこい
なんたって名前からしてパワーだからな
力業もどんとこい
342デフォルトの名無しさん
2018/12/08(土) 11:14:58.74ID:j0zdr08g .NET Core 3.0 Preview 1でWPF、Windows Forms, WinUIが組み込まれてオープンソース化したんか
ほえー
ほえー
343デフォルトの名無しさん
2018/12/08(土) 15:04:34.50ID:8f5a0RKW344デフォルトの名無しさん
2018/12/08(土) 21:38:13.36ID:3Pj/jJ/S Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect(); 2018
https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/
https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/
345デフォルトの名無しさん
2018/12/10(月) 20:42:25.20ID:T1JETwww PowerShellでLINQって使えますかね?
346デフォルトの名無しさん
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]])
(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]])
347デフォルトの名無しさん
2018/12/10(月) 22:38:26.51ID:vOOk2a2h 必要な箇所でC#コード書けばいいじゃん
外人のコード読むと皆そうやってるよ
外人のコード読むと皆そうやってるよ
348デフォルトの名無しさん
2018/12/11(火) 18:45:17.51ID:zooyFZ6f @echo offと同等のコマンドってパワーシェルにありますか?
349デフォルトの名無しさん
2018/12/11(火) 19:50:47.03ID:5HU4XML/350デフォルトの名無しさん
2018/12/11(火) 20:18:20.80ID:pSYvkLmz powershellでメール受信やるならMailkitがいいですかね?
351デフォルトの名無しさん
2018/12/14(金) 21:21:08.51ID:xmsOh7Vk UWPスレが死んでるのでこっちで聞き直すね
起動してるUWPアプリの列挙ってpowershellでどうやればいいですかね?
全く出てこないんですが
起動してるUWPアプリの列挙ってpowershellでどうやればいいですかね?
全く出てこないんですが
352デフォルトの名無しさん
2018/12/14(金) 23:01:55.52ID:unWqZBXJ Get-WmiObject Win32_Process | where Path -like "*\WindowsApps\*" | fl Process Id,Name,Path
とか
とか
353デフォルトの名無しさん
2018/12/16(日) 12:08:41.16ID:PkDIN57F354デフォルトの名無しさん
2018/12/16(日) 21:18:15.54ID:XltMT+7i 職場のPC(セキュリティ上の理由でネットに繋がらない)がWin7→Win10になったんだが
PowerShellのヘルプがオンラインヘルプだけになって見れないのでつらい
PowerShellのヘルプがオンラインヘルプだけになって見れないのでつらい
355デフォルトの名無しさん
2018/12/16(日) 21:48:37.43ID:GDEIwjsa Get-HelpとかISEのコマンドアドオンじゃダメなん
356354
2018/12/20(木) 22:28:30.63ID:MSiR3oAq >>355
遅くなった & 説明が間違えてたごめん
Get-Helpコマンド自体は使えるんだけど-Fullオプション付けても付けない時と同じ内容しか出てこない
つまり使用例が見れないのでPowerShellを最近使い始めた自分にはつらい
ISEもヘルプを見ようとすると「ネットに繋がりません」みたいなエラーになった
もうリファレンス本買うことにするよ・・・orz
遅くなった & 説明が間違えてたごめん
Get-Helpコマンド自体は使えるんだけど-Fullオプション付けても付けない時と同じ内容しか出てこない
つまり使用例が見れないのでPowerShellを最近使い始めた自分にはつらい
ISEもヘルプを見ようとすると「ネットに繋がりません」みたいなエラーになった
もうリファレンス本買うことにするよ・・・orz
357デフォルトの名無しさん
2018/12/20(木) 22:59:49.46ID:PfMwju1x 別PCでSave-Helpでファイルダウンロードして手動で配置したらあかんの?
358356
2018/12/21(金) 01:31:43.78ID:GySz2aRs359デフォルトの名無しさん
2018/12/21(金) 08:22:37.58ID:Lg32FCuG 5.1対応の良い感じの書籍あるんかな
360デフォルトの名無しさん
2018/12/22(土) 07:51:50.03ID:i7ExTGRa 変数展開するときに、
$test
と
${test}
ではなにが違うんですか?
$test
と
${test}
ではなにが違うんですか?
361デフォルトの名無しさん
2018/12/22(土) 12:12:36.07ID:UGqq2IDw >>360
基本一緒でしょう
GetType()
してみるとわかりますと同じですね。
ただし、${}の指定では配列のインデックス指定できない
${a[0]} とかは許されないですね。
なんでこういうのがあるかは分りません。
基本一緒でしょう
GetType()
してみるとわかりますと同じですね。
ただし、${}の指定では配列のインデックス指定できない
${a[0]} とかは許されないですね。
なんでこういうのがあるかは分りません。
362デフォルトの名無しさん
2018/12/22(土) 14:03:56.67ID:YB2ocxbA $test = "TEST"
"test$testtest"
"test${test}test"
こういう時にでも使うんじゃねーの
求める形に適当なのを使えばいいんじゃねーかな
"test$testtest"
"test${test}test"
こういう時にでも使うんじゃねーの
求める形に適当なのを使えばいいんじゃねーかな
363デフォルトの名無しさん
2018/12/22(土) 15:32:06.19ID:TlQhzlLR 中括弧つければ通常使えない文字も使える
${\(^o^)/} = "オワタ"
${ Hello ?? World! `nby powershell } = "hi"
どんな文字列でも変数名として有効であることが保証されるからコード生成とかで使われるらしい
普通は文字列への埋め込み時くらいしか使わんね
${\(^o^)/} = "オワタ"
${ Hello ?? World! `nby powershell } = "hi"
どんな文字列でも変数名として有効であることが保証されるからコード生成とかで使われるらしい
普通は文字列への埋め込み時くらいしか使わんね
364デフォルトの名無しさん
2018/12/22(土) 16:16:19.79ID:VDYmdehC >>360
私はコードの可読性を高めるためになるべく ${hoge} といった形で記述するようにしてます。
あと、文字列をつなぐような場合でも ${hoge} が使われます。
$hoge = "hoge"
echo "${hoge}fuga"
この場合は「hogefuga」が出力されますが、
$hoge = "hoge"
echo "$hogefuga"
これでは$hogefuga という変数を参照することになるので思ったように動作しません。
私はコードの可読性を高めるためになるべく ${hoge} といった形で記述するようにしてます。
あと、文字列をつなぐような場合でも ${hoge} が使われます。
$hoge = "hoge"
echo "${hoge}fuga"
この場合は「hogefuga」が出力されますが、
$hoge = "hoge"
echo "$hogefuga"
これでは$hogefuga という変数を参照することになるので思ったように動作しません。
365デフォルトの名無しさん
2018/12/22(土) 16:37:26.19ID:UGqq2IDw なるほどね
$test="TEST"
"test"+$test+"test"
より次の方がスマートかもね
"test${test}test"
$test="TEST"
"test"+$test+"test"
より次の方がスマートかもね
"test${test}test"
366デフォルトの名無しさん
2018/12/22(土) 16:59:32.04ID:YB2ocxbA >>363
そういえば日本語の変数もできるんでしたね
そういえば日本語の変数もできるんでしたね
367デフォルトの名無しさん
2018/12/22(土) 17:09:04.46ID:HuIkWn7P 【たけしの超常現象特番、本日18時56分】 大槻教授がUFOやマ@トレーヤを見たらどんな反応するかな
http://rosie.5ch.net/test/read.cgi/liveplus/1545444404/l50
http://rosie.5ch.net/test/read.cgi/liveplus/1545444404/l50
368デフォルトの名無しさん
2018/12/22(土) 17:15:32.75ID:uHYOaa0r ダブルコーテーション内で変数を値展開させたい場合空白文字で区切られていないとだめ。つまり
echo "$hoge fuga"
であれば
hoge fuga
にはなる。
hogefugaを得たい場合、俺なら
echo ($hoge+"fuga")
と書く
echo "$hoge fuga"
であれば
hoge fuga
にはなる。
hogefugaを得たい場合、俺なら
echo ($hoge+"fuga")
と書く
369デフォルトの名無しさん
2018/12/22(土) 18:16:02.24ID:UGqq2IDw echoを使う理由はなんかあるのかな?
私はecho自体つかわないので
私はecho自体つかわないので
370デフォルトの名無しさん
2018/12/22(土) 18:17:09.93ID:UGqq2IDw371デフォルトの名無しさん
2018/12/22(土) 18:20:02.63ID:b6CiPLFa ログを標準出力に出力するときに普通に使う
aho=echo `command`
こうやってコマンドの標準出力の結果を環境変数にいれるときにも
普通に使う
echoなかったらなに使えばいいワケ?
aho=echo `command`
こうやってコマンドの標準出力の結果を環境変数にいれるときにも
普通に使う
echoなかったらなに使えばいいワケ?
372デフォルトの名無しさん
2018/12/22(土) 18:30:20.06ID:UGqq2IDw いや、使う場面がないので聞いただけ
通常ログに返すときにはそのままechoなしで書いているもので
上記のやり取りの例だとechoいらないな〜と思ったまで
通常ログに返すときにはそのままechoなしで書いているもので
上記のやり取りの例だとechoいらないな〜と思ったまで
373デフォルトの名無しさん
2018/12/22(土) 19:12:48.17ID:BLULObxH echo使わなくてもコマンドの標準出力の結果を変数に入れられるのでは?
環境変数???
環境変数???
374デフォルトの名無しさん
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
使う機会は-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
375デフォルトの名無しさん
2018/12/22(土) 19:19:11.25ID:b6CiPLFa 失礼した
パワー系池沼シェルについてはオレは知らん
スレタイみずに普通のシェルの話してるかと思ってたわ
パワー系池沼シェルについてはオレは知らん
スレタイみずに普通のシェルの話してるかと思ってたわ
376デフォルトの名無しさん
2018/12/22(土) 19:20:29.55ID:UGqq2IDw そのまま書けば標準出力先への出力ですよね
私も不勉強なのですが、場合によりほかのシェル言語経験の方で
そちらではそれが普通なので、その習慣で書いているとかないですかね?
PSの環境変数にも特段echoいらないと思うし。
私も不勉強なのですが、場合によりほかのシェル言語経験の方で
そちらではそれが普通なので、その習慣で書いているとかないですかね?
PSの環境変数にも特段echoいらないと思うし。
377デフォルトの名無しさん
2018/12/22(土) 19:39:35.63ID:90OqLo7S $env:aho = command で普通に入るね
echoとWrite-Outputの役割はpsに慣れてない人への広い意味でのエイリアスだと思う
シェル言語はツールとしての側面があるから、不使用の方が高尚だと矯正するようなものでもないと思う
echoとWrite-Outputの役割はpsに慣れてない人への広い意味でのエイリアスだと思う
シェル言語はツールとしての側面があるから、不使用の方が高尚だと矯正するようなものでもないと思う
378デフォルトの名無しさん
2018/12/22(土) 20:18:16.73ID:SAN+T+wn ループでWrite-Outputすると遅い気がする
379デフォルトの名無しさん
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倍くらいかかる
$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倍くらいかかる
380デフォルトの名無しさん
2018/12/22(土) 20:27:37.85ID:uHYOaa0r 変数の自動展開は他の言語の経験者が一番最初に気づくPowerShellの特徴だよね
暗黙の|Out-Defaultが常に付いてる処理になっている
詳しくは下記参照
https://technet.microsoft.com/ja-jp/magazine/gg213852.aspx
https://blog.shibata.tech/entry/2016/01/11/151201
暗黙の|Out-Defaultが常に付いてる処理になっている
詳しくは下記参照
https://technet.microsoft.com/ja-jp/magazine/gg213852.aspx
https://blog.shibata.tech/entry/2016/01/11/151201
381デフォルトの名無しさん
2018/12/22(土) 20:30:19.10ID:VDYmdehC >>372
> 上記のやり取りの例だとechoいらないな〜と思ったまで
ぜんぜんそれでも文法&動作的にはオッケーです。
可読性、保守性を上げるためのマイルールです。
自分だけがメンテするスクリプトなら問題ありませんが、複数の人間が
読む可能性がある場合は「何をやろうとしているのか」を
明確にするためにそうしています。
PowerShell に明るくない人が読む可能性もありますから。
なお echo は Write-Output のエイリアスですので念のため。
> 上記のやり取りの例だとechoいらないな〜と思ったまで
ぜんぜんそれでも文法&動作的にはオッケーです。
可読性、保守性を上げるためのマイルールです。
自分だけがメンテするスクリプトなら問題ありませんが、複数の人間が
読む可能性がある場合は「何をやろうとしているのか」を
明確にするためにそうしています。
PowerShell に明るくない人が読む可能性もありますから。
なお echo は Write-Output のエイリアスですので念のため。
382デフォルトの名無しさん
2018/12/22(土) 20:45:17.71ID:uHYOaa0r > なお echo は Write-Output のエイリアスですので念のため。
一言余計、そんなことは誰でも知ってる。勘違い馬鹿なID:b6CiPLFa以外は
一言余計、そんなことは誰でも知ってる。勘違い馬鹿なID:b6CiPLFa以外は
383デフォルトの名無しさん
2018/12/22(土) 20:52:39.16ID:b6CiPLFa ほらな低学歴ドカタまるだし()
384デフォルトの名無しさん
2018/12/22(土) 20:57:41.33ID:2OCHmGHo 流石にこれは酷い
385デフォルトの名無しさん
2018/12/22(土) 21:11:08.80ID:hL+/9mZc この流れで思い出した
PSの出力をログに同時に吐くようにできませんか?
PSの出力をログに同時に吐くようにできませんか?
386デフォルトの名無しさん
2018/12/22(土) 21:18:03.91ID:TlQhzlLR 手っ取り早いのはStart-Transcript
387デフォルトの名無しさん
2018/12/22(土) 21:18:56.31ID:uHYOaa0r Start-Transcript ファイル名 -append
388デフォルトの名無しさん
2018/12/22(土) 21:24:11.29ID:UGqq2IDw >>358
あ、用意されていて簡単にできたはずだ。なんだっけな・・・
あ、用意されていて簡単にできたはずだ。なんだっけな・・・
389デフォルトの名無しさん
2018/12/22(土) 21:47:51.46ID:HBvYruUV $_ っていうのはどういう意味?
390デフォルトの名無しさん
2018/12/22(土) 21:52:10.12ID:SAN+T+wn パイプライン入力の自動変数
391デフォルトの名無しさん
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 が入り乱れる
漏れは、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 が入り乱れる
392デフォルトの名無しさん
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 ← 終了
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 ← 終了
393デフォルトの名無しさん
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 ← 終了
$ ./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 ← 終了
394デフォルトの名無しさん
2018/12/23(日) 00:47:12.06ID:qffc/3mK 改めてパワー系池沼シェルの遅さが実感できたわ
linuxのほうは毎回dateコマンド経由して結果を取得するものすごい悪い条件なのに
パワー系池沼シェルは組込みオブジェクト使ってもこの速度だからな
組込みオブジェクトを使わなかっらどうなるか
つまりそういうことになる
お話にならない。。。
linuxのほうは毎回dateコマンド経由して結果を取得するものすごい悪い条件なのに
パワー系池沼シェルは組込みオブジェクト使ってもこの速度だからな
組込みオブジェクトを使わなかっらどうなるか
つまりそういうことになる
お話にならない。。。
395デフォルトの名無しさん
2018/12/23(日) 00:59:55.54ID:M6Mt1G8k datew
396デフォルトの名無しさん
2018/12/23(日) 01:00:31.45ID:9AXglOVX397デフォルトの名無しさん
2018/12/23(日) 01:02:46.02ID:zuMyhwwp あれ$PSItemと同じなんだっけ
398デフォルトの名無しさん
2018/12/23(日) 01:30:03.97ID:9E3TCu/N PSでテキスト処理する上でそんままやるやつ居るんやな
399デフォルトの名無しさん
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
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
400デフォルトの名無しさん
2018/12/23(日) 02:02:36.44ID:lfndw29D ピラフ大王なんて、PowerShell で、5ch のスレをスクレイピングするよw
漏れは、Ruby でやるけど
漏れは、Ruby でやるけど
401デフォルトの名無しさん
2018/12/23(日) 02:11:53.35ID:M6Mt1G8k 単に出力がネックになってるだけだからな
dateなんて関係ねえw
dateなんて関係ねえw
402デフォルトの名無しさん
2018/12/23(日) 02:26:18.31ID:zuMyhwwp403デフォルトの名無しさん
2018/12/23(日) 02:35:01.23ID:M6Mt1G8k 計算結果をリストに入れるだけなら0.3秒で終わる
つまりほぼ画面出力かかってる時間なのに
それを組み込みオブジェクトがどうのこうの訳わからんこと言ってる馬鹿さよ
つまりほぼ画面出力かかってる時間なのに
それを組み込みオブジェクトがどうのこうの訳わからんこと言ってる馬鹿さよ
404デフォルトの名無しさん
2018/12/23(日) 02:39:37.23ID:9E3TCu/N psちゃんはストリーム出力がやたら遅い上に日本語ロケールだとさらに遅い
405デフォルトの名無しさん
2018/12/23(日) 08:50:16.09ID:z3o8Rgch 初学者と低能アンチが自らおバカを披露するスレはここですか。
にやにや眺めてる
にやにや眺めてる
406デフォルトの名無しさん
2018/12/23(日) 10:21:20.90ID:qffc/3mK 画面出力()
やはりパワー系池沼シェルは
池沼が使ってるだけあるわ
オレの試験をみて画面に出力してると思ってるなら
相当知能に問題がある
というよりなシェルの仕組み自体を理解してない
コマンドでは両方とも標準出力をファイルにリダイレクトしている
しかもdate使ってるのはlinuxだからな
池沼はパワー系池沼シェルがdate使ってると思ってるらしいわ
普通に外部コマンド呼び出しのほうがオーバーヘッドがあるからな
まずシェルの内部コマンドと外部コマンドの違いすら分かってない
つまり、linuxはもともと相当不利
パワー系池沼シェルがこの部分で速いのはアタリマエ
基本的なことがなにもわかってない
所詮、低学歴知恵遅れのオツムの程度は
この程度
低学歴はいちいちいつも自分は低学歴でバカですと
自白するからな
やはりパワー系池沼シェルは
池沼が使ってるだけあるわ
オレの試験をみて画面に出力してると思ってるなら
相当知能に問題がある
というよりなシェルの仕組み自体を理解してない
コマンドでは両方とも標準出力をファイルにリダイレクトしている
しかもdate使ってるのはlinuxだからな
池沼はパワー系池沼シェルがdate使ってると思ってるらしいわ
普通に外部コマンド呼び出しのほうがオーバーヘッドがあるからな
まずシェルの内部コマンドと外部コマンドの違いすら分かってない
つまり、linuxはもともと相当不利
パワー系池沼シェルがこの部分で速いのはアタリマエ
基本的なことがなにもわかってない
所詮、低学歴知恵遅れのオツムの程度は
この程度
低学歴はいちいちいつも自分は低学歴でバカですと
自白するからな
407デフォルトの名無しさん
2018/12/23(日) 10:22:49.86ID:zuMyhwwp いろいろぐじゃぐじゃ言ってるけど、無駄改行も相まって目障りだね
同じ内容で言葉を増やすのはバカでもできて、言葉を減らすには学が必要だ、って誰が言ったんだっけかな
同じ内容で言葉を増やすのはバカでもできて、言葉を減らすには学が必要だ、って誰が言ったんだっけかな
408デフォルトの名無しさん
2018/12/23(日) 10:24:00.28ID:qffc/3mK 低学歴知恵遅れには
一から十までいわないと分からないからな
クソみたいに知能が低い
一から十までいわないと分からないからな
クソみたいに知能が低い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★5 [七波羅探題★]
- 【速報】 米トランプ政権声明 「中国が台湾を奪おうとする、いかなる試みも阻止する」 中国「レッドラインだ」 ★2 [お断り★]
- 元プロ野球選手・堂上隼人(43)を20代女性2人へのわいせつ未遂容疑で8回目の逮捕…これまでの被害者は10代・20代の女性11人に [Anonymous★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 【高校野球】なぜ『7回制』は反対多数でも止まらないか… 高野連が「全員の命」守るために貫く伝統より改革の姿勢 [冬月記者★]
- JAが"政府の備蓄米買い上げ"見越して価格下げず!?「古いコメは食用向きでないなどと理由をつけ...」専門家解説 ★2 [煮卵★]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨😨 [931948549]
- 【悲報】インターネット(光回線)来年度以降値上げか [358382861]
- "メイドさん"が使う武器→ケンモメンの78%が一致に [856387292]
- 【高市速報】中国「このままだと日本が先制攻撃してくる」 [583597859]
- 【悲報】山里亮太(南海キャンディーズ)さん [329329848]
- 【悲報】地銀や生保 長期金利急上昇で含み損が加速 [358382861]
