◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

PowerShell -Part 3 YouTube動画>1本 ->画像>4枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1539074808/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2018/10/09(火) 17:46:48.32ID:G4IJkzod
前スレ
【最強CUI】PowerShell -Part 2
http://2chb.net/r/tech/1480109402/

2デフォルトの名無しさん2018/10/09(火) 18:49:55.04ID:iKGY38Kd
2

3デフォルトの名無しさん2018/10/09(火) 18:50:04.08ID:iKGY38Kd
3

4デフォルトの名無しさん2018/10/09(火) 19:38:35.78ID:cxSCuSqU
>>1
相変わらず潔いテンプレやね

5デフォルトの名無しさん2018/10/09(火) 22:51:28.21ID:o672s7jN
全スレの>>1000って何?
恐くて実行できない

6デフォルトの名無しさん2018/10/09(火) 22:55:38.49ID:06HomXwK
>>5
それくらい読めるだろ?

7デフォルトの名無しさん2018/10/09(火) 23:04:36.73ID:VXCTyrZC
@(1..1000; "complete!") -join " "

8デフォルトの名無しさん2018/10/10(水) 00:49:14.45ID:WXc1B6yp
>>5
実行してもツラツラと数字が表示されるだけ
作った本人だがセンスの無さが絶望的だと思う

9デフォルトの名無しさん2018/10/10(水) 13:22:57.24ID:mDHS4zfs
$popuko='';do{Write-Host ($pipimi = ($pptp = 'ポ', 'プ', 'テ', 'ピピック')[(Get-Random -Maximum 4)]) -No; $popuko += $pipimi; sleep -m 10}while($popuko -notmatch "ポプテピピック");"`r`n竹書房ゥァア゛ーッ"

10デフォルトの名無しさん2018/10/10(水) 18:48:47.75ID:EqFs8WH9
全部縦書きで出したほうがらしいきもする

11デフォルトの名無しさん2018/10/10(水) 20:26:48.74ID:l/74Fmoa
本日ハマったこと
下記スクリプトがWin10上でのv2環境ではエラーになる。5.1環境ならもちろん問題なし

$URL = "適当なURL"
$Client = New-Object System.Net.WebClient
$URL.split('/')|%{$Fname=$_}
$Of = Join-Path (Split-Path $MyInvocation.MyCommand.Path) -ChildPath $Fname
$Client.DownloadFile($URL, $Of)

さんざん悩んだが旧OSの実機で検証したら問題なし
Win10のv2環境は実機と動作が違うんだね…

12デフォルトの名無しさん2018/10/10(水) 20:31:23.38ID:DTc0bT+8
WebClientってたしかブラウザ依存じゃなかったか

13デフォルトの名無しさん2018/10/10(水) 20:49:55.87ID:e4JT9uU/
パワーシェルからプログラムを呼び出してsendkeyでキーを送りたいのですが
呼び出したプログラムをターゲットウィンドウ固定にできないでしょうか

たとえばnotepadを呼び出してキーを送ろうとしても別ウィンドウクリックしてしまうと別ウィンドウにキーが送られてしまいます

14デフォルトの名無しさん2018/10/10(水) 21:00:38.57ID:Vh016oEU
そもそもSendkeyでやることじゃない気がするぞ

15デフォルトの名無しさん2018/10/10(水) 21:19:54.19ID:e4JT9uU/
んなこときーてねえんだが

16デフォルトの名無しさん2018/10/10(水) 21:26:48.73ID:PNSFIUfW
豹変した!

17デフォルトの名無しさん2018/10/10(水) 21:29:15.76ID:Vh016oEU
豹変してて草

Sendkeyなんていう不安定なものを使う意図が本当に分からん

18デフォルトの名無しさん2018/10/10(水) 21:33:58.33ID:KxybdFNG
RPAをPowerShellでやろうってことだろ

19デフォルトの名無しさん2018/10/10(水) 21:55:05.74ID:WXc1B6yp
add-type -AssemblyName microsoft.VisualBasic
$process = Get-Process |? {$_.MainWindowTitle -match "(探したいウィンドウタイトル)"}
[Microsoft.VisualBasic.Interaction]::AppActivate($process.ID)

とかやっとけば良くね?
PowerShell Coreじゃ動かんけどね

20デフォルトの名無しさん2018/10/10(水) 21:58:14.41ID:u0QSMs+t
RPAとか言い出すとほぼCoreで動かない物が出来上がりそう

21デフォルトの名無しさん2018/10/10(水) 21:59:28.00ID:EqFs8WH9
vista以降だとタスクバーペカるだけで最前面に来ないんよね
スクリプト手動実行なら動くんやけどさ

22デフォルトの名無しさん2018/10/10(水) 22:38:55.64ID:l/74Fmoa
Appactivateって結局そのウィンドウフォアグラウンドになるんでは?
背面のアプリに文字入力したいならいずれにせよSendkeysではムリ、
UWSCとかだとsenfstr(ID
,"文字列")とかで出来る

23デフォルトの名無しさん2018/10/10(水) 22:40:28.02ID:l/74Fmoa
Powershell用だと UI Autmation Extentionを使えば出来るのかも。試してはいないが

24デフォルトの名無しさん2018/10/10(水) 22:46:11.90ID:e4JT9uU/
外部ソフトではなく、ウィンドウズ標準が良いです
なのでvbsでも良いですが
もしくはフォーカスでなくても常に最前面表示とかでもキー送れるのかな

25デフォルトの名無しさん2018/10/10(水) 23:14:15.15ID:DK5DBWJW
alt+tab

26デフォルトの名無しさん2018/10/11(木) 00:16:15.07ID:fgwsjZre
$code = @'
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
'@
Add-Type $code -Name Utils -Namespace Win32
Add-Type -AssemblyName System.Windows.Forms

if($ps = Get-Process|? {$_.MainWindowTitle -like "*メモ帳"}|Select-Object -First 1){
do{
[System.Windows.Forms.SendKeys]::SendWait("%+{TAB}")
Start-Sleep -m 100
$hwnd = [Win32.Utils]::GetForegroundWindow()
}while($hwnd -ne $ps.MainWindowHandle)
}

こんな感じ?

27デフォルトの名無しさん2018/10/11(木) 16:11:44.71ID:Jfs/paLB
Powershell使いこなすにはC#の知識にも手を出さないとダメかな
.NET使う時点でライブラリの知識いるけど

プロググラム経験無い自分には結構大変だわ

28デフォルトの名無しさん2018/10/11(木) 17:29:30.69ID:DkVh6b/o
本日ハマり事案
下記スクリプトでは、なぜかRead-Host実行後にGet-Processの結果が表示されてしまう。なーぜだ?

Get-process|?{$_.MainWindowHandle -ne 0}|Select-Object ID,MainWindowHandle,Name,MainWindowTitle
read-host "Enterで終了します"

29デフォルトの名無しさん2018/10/11(木) 18:43:52.29ID:BCqcg04E
>>28
read-host実行前にget-processの結果でるよ
何が問題なのかわかんない

30デフォルトの名無しさん2018/10/11(木) 18:49:10.11ID:DkVh6b/o
>>29
?自分のマシンでは出ないんだよね
Windows10 1803で $PSVersionTable
PSVersion 5.1.17134.228
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17134.228
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

なぜか
Get-Process の行のラストに |Format-Table
付ければ治るんだけど。それが見つかるまでああでもないこうでもないと2時間くらい……

31デフォルトの名無しさん2018/10/11(木) 19:21:50.18ID:fgwsjZre
ふつうにOut-Hostでいいんじゃね

32デフォルトの名無しさん2018/10/11(木) 19:22:00.95ID:oXF4megk
セミコロンで繋げると再現する
Get-process|?{$_.MainWindowHandle -ne 0}|Select-Object ID,MainWindowHandle,Name,MainWindowTitle; read-host "Enterで終了します"

33デフォルトの名無しさん2018/10/11(木) 19:25:28.95ID:oXF4megk
1行目の最後にOut-Hostをはさむと意図通りになる
Get-process|?{$_.MainWindowHandle -ne 0}|Select-Object ID,MainWindowHandle,Name,MainWindowTitle | Out-Host; read-host "Enterで終了します"
なんでかね

34デフォルトの名無しさん2018/10/11(木) 19:36:48.45ID:BCqcg04E
こっちは1809だが-Version 2 指定してもセミコロンで繋いでも問題が再現しないよ
PowerShell core 6.1でも問題でない

$PSVersionTable
PSVersion 5.1.17763.1
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17763.1
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

35デフォルトの名無しさん2018/10/11(木) 19:38:43.55ID:DkVh6b/o
どうも Select-Object のバグっぽい
Get-ChildItem |Select BaseName でも起きる
Selectが後にパイプの別処理か、標準入力から改行受け取らないとコマンド終了判定できないっぽい

36デフォルトの名無しさん2018/10/11(木) 19:39:17.99ID:oXF4megk
>>32-33の$PSVersionTable
Name Value
---- -----
PSVersion 5.0.10586.117
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.117
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

37デフォルトの名無しさん2018/10/11(木) 19:42:49.06ID:DkVh6b/o
>>34
お、そうなのか
5.1.17134.228 単体問題かなあ powershell v 2起動ではこちらも大丈夫だったよ

38デフォルトの名無しさん2018/10/11(木) 19:45:57.86ID:oXF4megk
-Version 2指定で大丈夫だった。ps5のバグだね

39デフォルトの名無しさん2018/10/11(木) 19:46:58.10ID:DkVh6b/o
>>36
Out-Host はこちらでも有効でした。
そちらの環境では; なしのps1スクリプトでは再現しないということだよね

40デフォルトの名無しさん2018/10/11(木) 19:48:49.97ID:oXF4megk
>>39
その通り
複数行 →再現せず
セミコロンで1行 →再現

41デフォルトの名無しさん2018/10/11(木) 19:50:56.75ID:DkVh6b/o
>>40
明瞭な回答ありがとうございました。

色々わかって胸のつかえがとれたよ、ありがとう>All

42デフォルトの名無しさん2018/10/11(木) 19:53:12.89ID:BCqcg04E
地味に嫌なバグだな

43デフォルトの名無しさん2018/10/11(木) 20:12:08.43ID:e56c6hX7
>>27
簡単なコマンドレットだけ使うところから
始めても十分実用になると思う
.NET(の知識)は拡張に便利だけど必須じゃない

44デフォルトの名無しさん2018/10/11(木) 20:17:09.29ID:GeJE+9Ij
PSって時々変な挙動する
逐次処理型のコンソールプログラムを直接実行した時はなんの問題もないのに
PSコンソールから同じ物を呼ぶとたまに固まる現象は未だに原因不明
しかも何故かエンターキー押したら進み出すから意味わからん
一見するとそのコンソールプログラムの問題かと思うけど違うプログラムでも発生するからPSが原因なのは確か

45デフォルトの名無しさん2018/10/12(金) 13:57:06.10ID:Vm21lImY
PowerShell 6.1って既存のPowershell 5.1 Desktop版と共存できる?
できるなら入れてみようかな

46デフォルトの名無しさん2018/10/12(金) 14:49:07.51ID:LyO2C2Nx
別物やから気にせず入れればええ

47デフォルトの名無しさん2018/10/12(金) 17:23:13.60ID:Vm21lImY
>>46
ありがとう、やってみます

48デフォルトの名無しさん2018/10/12(金) 18:16:36.74ID:tfCNN8gU
パワーシェルやバッチから汎用資格情報を利用してリモートデスクトップを起動・接続したいのですが、パワーシェルのcuiでパスワード入力が必ず要求されてしまいます
資格情報は正常に登録されています
これはどう回避すれば良いでしょうか?コマンドではなく、セキュリティポリシーの問題ですか?

49デフォルトの名無しさん2018/10/12(金) 18:50:34.83ID:VxeOAG4j
>>48
RDP接続部分どんなコードなのさ

50デフォルトの名無しさん2018/10/12(金) 18:58:42.49ID:tfCNN8gU
cmdkey /generic:ipアドレス /user:ユーザ名 /password : パスワード
のコマンドで資格情報登録後、
mstsc /v ipアドレス
のコマンドでリモデ呼び出しています

リモデ呼び出してcuiでパスワード入力要求されてしまうので、入力すれば起動するような感じになってしまってます

51デフォルトの名無しさん2018/10/12(金) 19:06:14.75ID:VxeOAG4j
>>50
>CMDKEY [{/add:ターゲット名 | /generic:ターゲット名}] [/smartcard] [/user:ユーザー名 [/pass[:パスワード]] [/delete{:ターゲット名 | /ras}] [/list[:ターゲット名]]
って構文だけど
>password : パスワード
のところでパス登録できてないんじゃね?
詳しくねーけど

52デフォルトの名無しさん2018/10/12(金) 19:28:53.77ID:tfCNN8gU
あーパスワードじゃなくて、パスか
そこの違いかな

53デフォルトの名無しさん2018/10/12(金) 19:36:20.86ID:VxeOAG4j
やってみたらpasswordでも通ったわ...
関係なさそう

54デフォルトの名無しさん2018/10/12(金) 19:51:45.48ID:Vm21lImY
こっちの問題じゃないの?
「Windows 資格情報を構成すると、接続先サーバーへユーザー名やパスワードを都度入力することなく、RDPなどで接続できるようになります。
しかし、既定では資格情報を利用したRDP接続は無効化された状態です。そのため、ローカルセキュリティポリシーやグループポリシーを利用して、資格情報を利用した接続を許可する必要があります。」
https://mhiroblog.wordpress.com/2016/12/05/windows-%E8%B3%87%E6%A0%BC%E6%83%85%E5%A0%B1%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%9Frdp%E6%8E%A5%E7%B6%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/

55デフォルトの名無しさん2018/10/12(金) 21:45:22.73ID:tfCNN8gU
おお、ポリシーの問題ですかね

56デフォルトの名無しさん2018/10/12(金) 21:53:31.40ID:3rr2tBek
まず問題の切分をしようよ
・GUIで普通に接続する時はログインを省略出来るのか
・コマンドプロンプトでコマンド直打ちした際はどうなるのか
正直言えばPS関係あるの?って話なんだが

57デフォルトの名無しさん2018/10/12(金) 22:03:41.12ID:Vm21lImY
まあ多分関係ないね、下記で訊いた方がいいかもしれん
リモートデスクトップ&リモートアシスタンス 6
http://2chb.net/r/win/1276610475/

58デフォルトの名無しさん2018/10/12(金) 22:51:10.68ID:tfCNN8gU
あ、すみませんでした
そこのスレで同じく聞いてみます

59デフォルトの名無しさん2018/10/15(月) 20:17:08.40ID:amvePWoq
バッチファイルのコードをパワーシェルに変換できるツールってないんでしょうか?

60デフォルトの名無しさん2018/10/15(月) 20:44:11.37ID:iq0D/NFF
本買って勉強しろ

61デフォルトの名無しさん2018/10/15(月) 21:34:07.14ID:E6pr56BO
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。

62デフォルトの名無しさん2018/10/16(火) 00:47:27.56ID:J45RURl2
>>59
環境変数Pathの設定ですら書き方が微妙に違うからな
一括変換は無理

63デフォルトの名無しさん2018/10/16(火) 00:49:24.42ID:J45RURl2
>>58
過疎スレに聞きに行ってなくてワロタで

64デフォルトの名無しさん2018/10/16(火) 07:15:58.35ID:CAcWp+n6
過疎スレに誘導しといてあんまワロえないわ

65デフォルトの名無しさん2018/10/16(火) 11:41:07.30ID:7RIuHdb8
こういうインフラ系の疑問ってQAサイト無いのかな?
teratailはプログラム関係以外お断りっぽいし、stackoverflowかね、知恵遅れは質が悪くて

66デフォルトの名無しさん2018/10/16(火) 12:07:46.38ID:s3pweWJX
パワーシェルのifで数字を比較するとき、 1<5>10
のように複数の演算子使うことできますか?

67デフォルトの名無しさん2018/10/16(火) 12:28:15.06ID:G4QqtY7K
できません

68デフォルトの名無しさん2018/10/16(火) 12:41:57.06ID:CgKK5Phn
できないよ
1 -lt 5 -lt 10とかやっても、1 -lt 5がTrue、True -lt 10でFalse

69デフォルトの名無しさん2018/10/16(火) 14:04:55.30ID:7RIuHdb8
if (1 -lt 5 -and 5 -lt 10)

70デフォルトの名無しさん2018/10/16(火) 19:33:54.39ID:h2O8wdlC
パワーシェルなんで不等号使えないんでしょなね

71デフォルトの名無しさん2018/10/16(火) 20:10:31.71ID:cDpTxUsb
リダイレクトに不等号使ったから

72デフォルトの名無しさん2018/10/16(火) 20:23:24.10ID:h2O8wdlC
ああ、そういやそうか

73デフォルトの名無しさん2018/10/16(火) 20:41:51.75ID:7RIuHdb8
DOSコマンドプロンプトの伝統を引き継いだ説
equ → -eq
neq → -ne
lss → -lt
leq → -le
gtr → -gt
geq → -ge

74デフォルトの名無しさん2018/10/16(火) 20:45:56.62ID:7RIuHdb8
DOSの時中途半端にUnix真似たのを今度は揃えたっていうのが正しいか

75デフォルトの名無しさん2018/10/16(火) 20:58:38.76ID:tHbhOnY/
コマンドプロンプト互換用にリダイレクトは要るけどPowerShell的には使い道あんまり無い気がする

76デフォルトの名無しさん2018/10/16(火) 23:56:23.47ID:VMcjBADQ
普通にfortranの比較演算子だからな

77デフォルトの名無しさん2018/10/17(水) 04:23:05.21ID:fXyyO1tZ
いやFortranでもDOSでもなくてシェルスクリプトを意識してるでしょ
Fortranなら.GT.とかだし<>=も使える

78デフォルトの名無しさん2018/10/17(水) 22:05:24.45ID:Ny9Q/0jK
また低学歴知恵遅れの知ったかがテキトーなこといってるわ。。。
昔のfortranは<>=なんか使えない

あとな、シェルスクリプトなんかよりfortranのほうが
はるかに歴史が古い

79デフォルトの名無しさん2018/10/17(水) 23:43:13.88ID:uJo2tnoC
やっとPowershell core 6.1入れてみた。
defaultがUTF-8に変わって
sjisテキストの入出力は難しくなった。
-encoding ([System.Text.Encoding]::GetEncoding(932))と書くか-encoding oemならまだ通るんだね

80デフォルトの名無しさん2018/10/18(木) 17:54:54.30ID:VXAXqhVo
非常に浅学で申し訳ないんだがScreenshot_2017-09-14-00-32-38では下のURLのプログラムは機能するんだけどScreenshot_20170914-003238ってファイル名だとどうイジれば対応させられますかね…?
1日あれこれ調べたけどregexの正規表現の羅列あたりが特によく分からなかった。出来ればご教示お願いします。

http://bannan.hatenadiary.jp
/entry/2018/04/10/210807

81デフォルトの名無しさん2018/10/18(木) 19:03:43.40ID:RGjTx9dN
>>80
これでいいよ
下手に汎用性もたせようとするとそんな風に失敗してるものができる

ls -file | where name -match "Screenshot_(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\d{2})" |
foreach { $_.CreationTime = $_.LastWriteTime = "{0}/{1}/{2} {3}:{4}:{5}" -f $Matches[1..6]; $_ }
read-host "何かキーを押すと終了"

82デフォルトの名無しさん2018/10/18(木) 19:36:40.46ID:vpgDyIt0
代入の二段重ねなんて出来るんだw

83デフォルトの名無しさん2018/10/18(木) 19:53:20.76ID:nSVk5plj
$a = $b = 1ってできるじゃん

84>>802018/10/18(木) 23:03:06.79ID:AkEYj+KW
>>81
おお、サンプルまで作って頂きありがとうございます!!
瞬く間に1000枚に情報入力出来ました!
where nameの働きと-f $Matchesの左右の表現が調べても最後までピンと来なかったのでもっと学んで見たいと思います

85デフォルトの名無しさん2018/10/23(火) 11:35:11.62ID:Hcq+1RfE
PowerShellってキャリア採用の条件で提示するようなもん?
・PowerShellができる方
ってどこまで理解していればこれに該当するかな

86デフォルトの名無しさん2018/10/23(火) 12:52:00.21ID:0PL1FVew
案件列挙すればいいんじゃね

87デフォルトの名無しさん2018/10/23(火) 19:08:54.72ID:R3+D42hK
パワーシェル単体ではちょっと弱い

パワーシェル扱ってるということはインフラ系だと思うからプラスアルファでvbaやvbsなどインフラ系スクリプト言語やAJSなどのバッチサーバの経験がほしい

88デフォルトの名無しさん2018/10/23(火) 21:27:43.17ID:JY03xd2e
いらんわそんなの

89デフォルトの名無しさん2018/10/23(火) 21:36:09.49ID:Cxf5lQdo
パワーシェルだけじゃ仕事ないっていう観点はあっている

90デフォルトの名無しさん2018/10/23(火) 21:56:38.39ID:xD54VN5l
クセと多いがpowershell好きw
できるだけ小文字で書きたいのだが、インテリセンスが大文字混ぜるのをなんとかしたい、なにか手はある?
あとパラメータとか短縮表記になったのを伸ばすツールある?

91デフォルトの名無しさん2018/10/24(水) 07:53:58.83ID:XShW8ZKK
>>90
補正のないエディタを使う

92デフォルトの名無しさん2018/10/24(水) 08:55:14.55ID:paw2wRgq
PowerShellEditorServicesはオープンソースだから改造すればえんちゃう

93デフォルトの名無しさん2018/10/24(水) 15:40:32.38ID:+Ub61VYb
クリップコマンド使うとなぜか改行がはいってしまいます、改善策ないでしょうか?

"test" |clip
で、メモ帳などに貼り付けると改行ついていて不都合があります!

94デフォルトの名無しさん2018/10/24(水) 17:13:32.82ID:K/10T0Yf
set-clipboardコマンドレット使えば行けそう
今はテスト出来ないしPowershell5.0以降が必要だけど(Windows10なら標準)

95デフォルトの名無しさん2018/10/24(水) 18:07:46.88ID:+Ub61VYb
Windowsサーバ2012r2なんですがそのコマンドあるかな・・・

96デフォルトの名無しさん2018/10/24(水) 18:33:39.42ID:+Ub61VYb
ちなみにですがバッチファイルだと下のコマンドで改行なしにできるのですが、パワーシェルからからこのコマンド呼び出すと<がリダイレクトマークなのでつかえません!ってエラーがでます
このコマンドをパワーシェルで使う方法などありますか?

set /p <nul="test" | clip

97デフォルトの名無しさん2018/10/24(水) 18:49:21.75ID:TznUYXv0
>>96
cmd /c 'set /p <nul="test" | clip'

98デフォルトの名無しさん2018/10/24(水) 19:01:25.53ID:+Ub61VYb
コマンドプロンプト部分をシングルコーテートでくくってcmdのオプションで/cつければ他のコマンドも実行できるんですか?
試してみます、ありがとうございます

99デフォルトの名無しさん2018/10/24(水) 19:04:05.43ID:SZPDhNVG
>>95
2012R2だとPowerShell4.0だね。5.0にするならWMF5.1のインストールが必要みたい

ちなみにset-clipboardだと改行は入らなかった

100デフォルトの名無しさん2018/10/24(水) 20:12:04.59ID:SZPDhNVG
Win10 1809のWin Powershellなんだけど
powershell -Version 3.0
でも$PSVersionTableで3.0にならない
2.0だと変わる、バグかな

101デフォルトの名無しさん2018/10/25(木) 03:52:38.91ID:BKSYttF8
基本的なことですいません。
tab補完で、最初にカレントディレクトリの./がつくのをつかないようにできませんか。
javaを実行するときjava ./hogehogeとなって、いちいち./消すのが面倒なもので

102デフォルトの名無しさん2018/10/25(木) 06:11:52.99ID:IIA5RA/7
>>101
意味わからん
カレントフォルダのJavaプログラムを実行するのだから./は要るだろ

103デフォルトの名無しさん2018/10/25(木) 17:13:59.66ID:ehGwymsw
PowerShellはコマンドプロンプトと同じように使おうとしてハマる奴多いな
コマンドプロンプトとは別物として考えた方が良いと思うんだけど

104デフォルトの名無しさん2018/10/25(木) 20:14:57.95ID:UAZv//mL
javaはファイル名じゃないでしょ

105デフォルトの名無しさん2018/10/25(木) 23:48:32.38ID:BKSYttF8
>>102
>javac hogehoge.java
>java hogehoge
としたいんです。
javaで実行くるときはファイルではなく、クラスを指定するので、カレントディレクトリの指定があると実行できないんです。

106デフォルトの名無しさん2018/10/26(金) 00:09:24.34ID:AQgJ1GgH
普通はIDE使うんですけどね

107デフォルトの名無しさん2018/10/26(金) 02:42:44.17ID:+qiDmRnL
>>105
java hogehogeって書いたスクリプトファイルを用意したらいいんじゃね?

108デフォルトの名無しさん2018/10/26(金) 03:54:22.79ID:9wT1H/41
>>105
何で./があると実行できないのか俺にはわからんが
そのjavaというプログラムの第一引数は単なるファイル名ではないってことか
PowerShellウィンドウとは相性が悪いプログラムってことだな
上にあるようにIDEを使うか、コマンドプロンプトで使うしかないだろう

109デフォルトの名無しさん2018/10/26(金) 06:31:22.94ID:FXq8Nzbn
Powershellの自動補完のせいじゃないだろ、そんな所でtabを叩く操作がおかしい

110デフォルトの名無しさん2018/10/26(金) 07:44:23.03ID:fUEsFsck
いちいち手作業が面倒くさいときこそシェルスクリプトを書くべきじゃまいか
引数のパスからクラス名を取り出して他の引数はそのままjava.exeに渡す
このスクリプトにパスを通しておく
coかcomまで辿ればパッケージにも対応できるな

111デフォルトの名無しさん2018/10/26(金) 07:45:45.75ID:fUEsFsck
coじゃなくてjpだった

112デフォルトの名無しさん2018/10/26(金) 14:40:25.23ID:9NaxqrWo
>>107
確かに。
ありがとうございます。
そうします。

113デフォルトの名無しさん2018/10/26(金) 14:44:17.82ID:9NaxqrWo
>>109
クラス名をフルで手入力ですか?

114デフォルトの名無しさん2018/10/26(金) 18:35:01.07ID:zbWSKzqB
プログラムとスクリプトとシェルの違いって何ですか?
パワーシェルは何?

115デフォルトの名無しさん2018/10/26(金) 18:46:34.50ID:xBIHPZW8
コマンドプロンプト・PowerShell・bash は、コマンドを入力できるから、シェル

コマンドプロンプト用に、ファイルに書いたプログラムは、バッチファイル。
PowerShell・bash用に、ファイルに書いたプログラムは、シェルスクリプト

116デフォルトの名無しさん2018/10/26(金) 19:16:08.67ID:6wLQ7f7d
>>105
Java11使え。
java ./hogehoge.java

117デフォルトの名無しさん2018/10/26(金) 19:30:22.59ID:FXq8Nzbn
クラスファイルに.class 拡張子は付いてないという前提でラクそうな方法
java -classpath
まで入れて、ファイル名一部入力してtab
.\Hogeが保管されるので
Ctrl+←で一回おすと\の後の文字に飛ぶ。
そこでスペースキー
java -classpath .\ Hoge
Javaは拡張子は見ませんだの、ファイル名見ませんだの、大文字小文字区別だのいろいろ面倒ね

118デフォルトの名無しさん2018/10/26(金) 20:11:54.17ID:AQgJ1GgH
>>113
Linuxでzsh使おうね

119デフォルトの名無しさん2018/10/26(金) 20:14:30.49ID:mtqgcbcu
ComObjectみたいにJavaObjectをNewできたら便利だとおもう
Java相互運用ラッパーを自動生成するコマンドレットない?

120デフォルトの名無しさん2018/10/27(土) 11:50:26.09ID:E3+jW7oE
>>116
11からコンパイルいらないんでしたっけ?便利ですよね。
結局プロファイルでmyjavaっていう11みたいに動作するようにしました。

121デフォルトの名無しさん2018/10/28(日) 22:43:03.45ID:cS/B+JtL

122デフォルトの名無しさん2018/10/29(月) 21:10:57.38ID:UusL+Srb
>>121
最近追ってなかったから知らんかったけど
Markdownに対応してんやね
びっくりやわ

123デフォルトの名無しさん2018/10/30(火) 00:22:31.97ID:LZVff6s3
パワーシェルやバッチってプログラム言語と言えるの?

124デフォルトの名無しさん2018/10/30(火) 04:04:48.57ID:ZaLbntHv
シェルスクリプト(awk sed,perl)含むの記述がプログラムか?と問われたら是非別れるのと同じ気がする。用法、組み方によるのでは?
各種言語を切り貼り利用できるグルー言語資質と、プロトタイピング性に優れてる。
データ扱いが常にオブジェクトというのがそれらと大きく異質。

125デフォルトの名無しさん2018/10/30(火) 06:32:05.32ID:aroewsdA
>>123
あなたのプログラム言語の定義は?

126デフォルトの名無しさん2018/10/30(火) 07:27:28.27ID:H5WVH8ZO
一般的な基準として、チューリング完全な、プログラムを記述するための形式言語ならプログラミング言語
Powershellはbrainf*ckインタープリタを書けるらしいのでチューリング完全
だからプログラミング言語と言って差し支えない

127デフォルトの名無しさん2018/10/30(火) 07:50:51.52ID:wAgTgtJ2
>>122
21世紀のnroffだわな

128デフォルトの名無しさん2018/10/30(火) 19:29:22.59ID:5BbWkodl
WindowsPEのvbsがシステムフォントの変更によって使い物にならなくなったので
PowerShellでフォントを指定したメッセージボックスを使いたいです。

インプットボックスでフォントを指定したサンプルは見つけましたが
メッセージボックス版が見つけられません。

コードを教えていただけますでしょうか。

バッチスレの住人でPowerShellは門外漢なのです。

129デフォルトの名無しさん2018/10/30(火) 20:40:30.78ID:LZVff6s3
よくわからんけどmsgコマンドじゃあかんの?

130デフォルトの名無しさん2018/10/30(火) 21:16:30.95ID:J8L+p3HY
>>129
WindowsのPro版にある「Msg.exe」の事ですか?
WindowsPEに有りませんし、持って来ても動きませんでした。
WindowsPEはx86のexeをx64で動かせないので
x86しかexeが無い場合は使えません。
その点、スクリプトはビット数を選ばないので都合がいいのです。

131デフォルトの名無しさん2018/10/30(火) 21:25:14.89ID:eTO/K+Ns
Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("メッセージ", "タイトル")

で行けるかね?
PEでWindowsForms使えるか分からんけど

132デフォルトの名無しさん2018/10/30(火) 21:41:00.25ID:OyNBi9EH
そもそもPEなんてしょぼ環境にPowershellや.NETランタイム入ってるんだっけ
逆にPSが動作するぐらいならSysWOW64ぐらい入っててもよさそうだが

133デフォルトの名無しさん2018/10/30(火) 21:41:13.95ID:J8L+p3HY
>>131
それは動きました。
でも、フォントサイズとフォントを指定したいのです。

134デフォルトの名無しさん2018/10/30(火) 22:39:58.99ID:ZaLbntHv
インプットボックスのサンプルこれか?
https://docs.microsoft.com/ja-jp/powershell/scripting/getting-started/cookbooks/creating-a-custom-input-box?view=powershell-6

これなら、テキストBOX削ってカスタマイズすりゃいいんじゃ?

135デフォルトの名無しさん2018/10/31(水) 01:30:38.10ID:FlI1cXqx
バッチから引数付きで呼び出す時に、引数 ※param() でエラーが出た時って
%ERRORLEVEL% は 0 ですよね?
trapやtry〜catchもできないし。。。
param での例外を判定する方法はないでしょうか

136デフォルトの名無しさん2018/10/31(水) 10:46:10.57ID:7QmHbGvy
WindowsFormsつかってフォントかえるなら
FormつくってLabelのfontに
Add-Type -AssemblyName System.Drawing
$Font = New-Object System.Drawing.Font("メイリオ",18)
でぶち込むくらいしか知らねい

137デフォルトの名無しさん2018/10/31(水) 19:08:52.44ID:TK2x4mB7
>>135
Powershellをバッチの部品として使うのは非効率だしなぁ
Powershellスクリプトで書けば良くない?
引数のエラー処理なんて関数ごとtry〜catchすりゃいいし

138デフォルトの名無しさん2018/10/31(水) 19:25:39.36ID:zoWehdgp
今更ながらに気が付いた話。
大容量のcsvファイルをimport-csvで読むとメモリーの問題があり・・・・
と思い込んでいたんだけど。
.NETが基本なんで、もしかして中身はIEnumerable利用なんかな?
と思い、ためしに130万件で20項目のデータを使って
import-csv をそのままパイプでgroup-objectにつないで集計してみたら
何の問題もなく結果が得られた。

そうだよね、遅延実行してくれてるんだよね。
処理速度は別として、1億件でもメモリー圧迫なしで処理できるんだ。
自作コマンドレット作ると、デカいデータをPowerShell使った処理が
可能だな。

と気が付いた次第。
皆にとっては当たり前かもしれんけど、いま気が付いたよ。

139デフォルトの名無しさん2018/10/31(水) 20:54:57.34ID:2eQnYqe5
>>134
>>136
すみませんが、その説明でも分からないレベルですので
コードを全て教えて頂けないでしょうか。
Formとかlabelとか全然分からないのです。

140デフォルトの名無しさん2018/10/31(水) 21:31:23.96ID:1CGtBgIK
135です
自己解決しました

>>137
既存の置き換えなのでそうもいかないのです^^;
結局、呼び出したps1ファイルの中で関数化してInvoke-commandでスクリプトブロックを呼び出しました

1411382018/10/31(水) 22:05:02.46ID:zoWehdgp
PCで時間計測してみた
819万件20項目のCSVファイルで2項目を指定したクロス集計。
CSV読み込みからクロス集計まで。
環境はmac mini。OSはwin7
結果:17分16秒
まあ許せるんじゃないでしょうか。
ついでなんでSASで同じことをやってみた、読み込みからクロス集計。
結果:0分9秒

・・・・・・がっくり

142デフォルトの名無しさん2018/10/31(水) 22:11:26.13ID:khMCZPOm
SASって何?

143デフォルトの名無しさん2018/10/31(水) 22:13:11.37ID:7QmHbGvy
>>139
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$form = New-Object System.Windows.Forms.Form
$form.Text = "タイトル"
$form.Size = New-Object System.Drawing.Size(260,180)
$form.StartPosition = "CenterScreen"
$form.MaximizeBox = $false
$form.MinimizeBox = $false
$form.FormBorderStyle = "FixedSingle"

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Point(130,100)
$OKButton.Size = New-Object System.Drawing.Size(75,30)
$OKButton.Text = "OK"
$OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $OKButton
$form.Controls.Add($OKButton)

144デフォルトの名無しさん2018/10/31(水) 22:13:40.92ID:7QmHbGvy
>>139
$Font = New-Object System.Drawing.Font("メイリオ",18)

$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,30)
$label.Size = New-Object System.Drawing.Size(250,30)
$label.Text = "メッセージ"
$label.font = $Font
$form.Controls.Add($label)

$form.Topmost = $True

$result = $form.ShowDialog()

145デフォルトの名無しさん2018/10/31(水) 22:26:30.11ID:zoWehdgp
統計関係で有名なソフト
データ加工がめちゃ便利で速い。値段が高い。
GoogleやAppleが会社(仕事環境:オフィスや会社の環境)は
SASの本社(SAS Institute)を参考にしたそうだ。

146デフォルトの名無しさん2018/10/31(水) 22:30:05.21ID:7QmHbGvy
はぁそうですか

147デフォルトの名無しさん2018/10/31(水) 22:37:39.56ID:zoWehdgp
私のデスクトップ環境で、ソフト年間レンタル初年度120万、次年度60万円
個人じゃ買えないよね〜。でも金融機関や大手の分析BI系(統計やマイニング)は
ほとんどこのソフト。DBもETLもいらないんであとはExcelがあればいいという感じ。
このソフト入れると、DBはただの元データ置き場になっちゃって、皆これをDB代わり
にも使ってしまうことが多い。ただ高いので結構利用部門とか限定される事も多い。

1481382018/10/31(水) 22:50:51.47ID:zoWehdgp
ついでに、機械学習(マイニング・AI)専用のKNIME(これはフリー)で
同じこと(819万件20項目のCSV読み込みと2項目のクロス集計)をやってみた。
結果:3分48秒

PowerShell遅かったけど、十分実用性あると思うわ。
一般のツール使ったらやはり10分位はかかると思うんで。

149デフォルトの名無しさん2018/11/01(木) 00:33:44.20ID:PBz6MbCm
>>138
PowerShell は遅延実行だったのか

Ruby では、外部イタレータのEnumerator なら遅延実行になる

Enumeratorから、to_a して配列の実体を作ると、全部読み込まれてしまうから、
ずっと、Enumeratorを返すメソッドをチェーンしていって、最後にストリーム処理する

Java のStream とか、C# のLinq みたいな感じ

150デフォルトの名無しさん2018/11/01(木) 01:13:45.19ID:c7Wqsl8P
Powershellパフォーマンス計測やってたブログで
パイプラインは遅延実行でメモリ使用は少ないけど遅い
foreach(foreach-objectフィルタじゃなくてコマンドの方)はオブジェクトをメモリに読み込むからリソース使うけど速い
とかテストしていた所があった

ただ結構昔の記事だから最近のバージョンだと違うかも

151デフォルトの名無しさん2018/11/01(木) 06:23:45.61ID:mmcP2r/K
>>149
>Java のStream とか、C# のLinq みたいな感じ
まさにLinqの形なんですね。C#でLinq使ってみて、もしかして・・・と思って
テストしてみたい次第。

>>150
foreach速いのかな?
逆にすげー遅いんじゃないかと思ってだんたけど、どうなんだろう。
場合によると、それはforに対するforeachの話かもしれない。

ちょっとデータが大きくなると、利用していなかったけど、少しくらい大きい
ものなら、PowerShell結構使い物になることが分かったので、ツール作ろうかと
思って来ましたよ。コマンドレットを独自に作れば結構なことが出来そう。

152デフォルトの名無しさん2018/11/01(木) 06:25:15.55ID:mmcP2r/K
>>149
>まさにLinqの形なんですね。C#でLinq使ってみて、もしかして・・・と思って
>テストしてみたい次第。
間違った
「テストしてみた次第」

153デフォルトの名無しさん2018/11/01(木) 09:18:53.50ID:xoDC1qBI
遅延実行とパイプラインは違うよ
遅延実行はオンデマンドの処理で、並行処理になるか一括実行になるかは無関係
イメージとしてはプロキシ
パイプは次を待たずに通常バッファリングされながら並行処理されるもの
イメージはCPUの命令パイプラインそのもの

154デフォルトの名無しさん2018/11/01(木) 09:21:29.14ID:NMd92bWG
>>151
確かここのサイト
http://tech.guitarrapc.com/entry/2013/03/09/010335

Powershell3.0での結果らしい

forとforeachとforeach-object(パイプライン使用)とかの比較
データサイズやら構造で違いはありそう

.foreach()メソッドでも動作は変わるらしい

foreachだけでコマンド、フィルター、メソッドと3種類あるとか自分にはついていけなかった

155デフォルトの名無しさん2018/11/01(木) 09:40:09.66ID:NMd92bWG
>>153
わかってなかったわ

遅延実行やら並行処理やらの勉強やら検証方法やら勉強して出直さないとダメだなぁ

156デフォルトの名無しさん2018/11/01(木) 09:48:43.50ID:mmcP2r/K
>>154
あ〜、これは今回の参考にならないかも
わたしも、ずっと似たような考えをしていたんですよ。
このサイトの例では、一度変数に入れてから、別な処理を
行うという処理なので、遅延実行がされていないです。

私がやったのは、コマンドレットをまたいで遅延実行を
してくれているのだと気が付いてやってみたという例なので。

157デフォルトの名無しさん2018/11/01(木) 19:18:42.62ID:qmW4m+8w
>>143
>>144
ありがとうございます。
動きました。
願わくば、タイトルバーのフォントも変えたかったのですが
おそらく無理ですよね。

158デフォルトの名無しさん2018/11/01(木) 21:15:55.85ID:PBz6MbCm
Ruby では、Enumerator::Lazy で、無限リストを遅延処理できる

(1..Float::INFINITY).lazy.map{ |n| n*2 }.first(5)
# => [2, 4, 6, 8, 10]

これをLazyなしだと、先に無限配列を実体化しようとして、フリーズする

(1..Float::INFINITY).map{ |n| n*2 }.first(5)
# => (実行が終わらない...)

159デフォルトの名無しさん2018/11/01(木) 22:34:36.78ID:j6Caq374
>>158
Rubyの場合も、PowerShellのように、複数のモジュール(PowerShellの場合だとCmdletやスクリプト)をつなげば連動して遅延実行してくれるのでしょうか。
Rubyの方が遅延実行は先駆ということは書かれていたけど。

使うことはないけれども知識として。

160デフォルトの名無しさん2018/11/01(木) 22:35:45.48ID:j6Caq374
その無限リストというのが、その話なのかな?

1611582018/11/01(木) 23:09:51.35ID:PBz6MbCm
Ruby では、内部イテレータのEnumerable と、外部イテレータのEnumerator がある

Enumeratorをメソッドチェーンしている間は、リストが実体化されないから、
Enumeratorで続けていって、最後に実体化する

内部イテレータは、イテレータ自身が繰り返し制御を行う。
一方、外部イテレータは、ユーザーが繰り返し制御を行う

外部イテレータでは、2つの配列を1つずつ進めたり、カスタマイズできる

162デフォルトの名無しさん2018/11/01(木) 23:16:50.68ID:j6Caq374
C#と同じような感じだね

今回はPowerShellで遅延実行すると同じく
実体化されずに次の処理に渡ることが分かったので
こんどはコマンドレットを作ってみようと思う。

163デフォルトの名無しさん2018/11/02(金) 19:41:44.34ID:mjKfpvc8
19,000,000件、20項目のCSVをimpo-csvで読んで、
group-objectで8x8のクロス集計したら
どうも読んでいる途中でおかしくなったようだ。
原因を探らんと・・・・。
800万件では問題なかったんだが。

164デフォルトの名無しさん2018/11/02(金) 22:59:49.69ID:KoqyjIsr
インポならオマエのチンポがおかしい

165デフォルトの名無しさん2018/11/03(土) 21:38:47.42ID:0juc4OvK
遅延実行と聞くとコマンドプロンプトのforが思い浮かぶね
しかし遅延実行じゃなくて困ったことはあるがその逆は無い
遅延実行じゃないほうって何かメリットあるの?

166デフォルトの名無しさん2018/11/04(日) 01:00:07.52ID:EZKDDV0E
遅延実行もsetlocalのオプションで即時展開できるやん

167デフォルトの名無しさん2018/11/07(水) 16:26:31.91ID:64s9hY5n
リモートデスクトップ接続元がわかる方法ないかな?
クライアントPC名、ログインユーザー名、ipを見たいんだけど…

調べたらPSTerminalServicesってモジュールで出来るらしい記事があったんだけどもうインストーラー配布してないみたいで手詰まりです。

168デフォルトの名無しさん2018/11/07(水) 16:30:58.01ID:Y6Npd9Sa
それPowershellと関係ないだろ

169デフォルトの名無しさん2018/11/07(水) 16:33:27.61ID:64s9hY5n
すいませんでした

170デフォルトの名無しさん2018/11/07(水) 17:01:30.70ID:lW8FLp9M
>>167
https://powershelladministrator.com/2015/12/01/get-logged-on-users-and-sessions/

Get-RDUserSession |fl *
で拾えるとは思うから接続元プロパティ名わかったらselect-object UserName,(接続元のプロパティ名)
とかやってみて

171デフォルトの名無しさん2018/11/07(水) 17:04:41.31ID:64s9hY5n
>>170
ありがとうございます!
早速使ってみたいと思います!

スレ汚しすいませんでした。

172デフォルトの名無しさん2018/11/07(水) 17:04:49.71ID:lW8FLp9M
>>168
PowershellとWindowsサービス管理用コマンドレットは関係有りまくり

173デフォルトの名無しさん2018/11/07(水) 19:32:24.46ID:5rQxDZaK
たしかに
もともと、PowerShellが出てきた目的の世界だね

174デフォルトの名無しさん2018/11/07(水) 21:28:10.26ID:0cfzNL20
でもここはプログラム板なので

175デフォルトの名無しさん2018/11/07(水) 21:30:12.65ID:M3d0NYL/
>>174
Windows板にこのスレがない時点で意味ない

176デフォルトの名無しさん2018/11/08(木) 06:31:15.25ID:zJM3NQZE
Windows PowerShell Part5 http://2chb.net/r/win/1474175184/

177デフォルトの名無しさん2018/11/09(金) 13:01:36.92ID:V62EYj3k
FizzBuzz 42文字でかけた

1..100|%{"$_`r"+{fizz}[$_%3]+{buzz}[$_%5]}

178デフォルトの名無しさん2018/11/09(金) 20:47:10.72ID:V62EYj3k
>>177
キャリッジリターンで上書きしてるだけなのでやや反則か
文字列長は(数字桁+1)文字されてる

179デフォルトの名無しさん2018/11/11(日) 03:17:15.29ID:v3JXSoAX
>>177
シンプルで美しい

180デフォルトの名無しさん2018/11/11(日) 07:15:18.30ID:tAZC+CW3
スクリプトブロックに[0]添字で値参照て技があるのか配列なら分かるけどなんか不思議

181デフォルトの名無しさん2018/11/11(日) 10:05:51.56ID:3JRsWB+V
PowerShellは配列の扱いがかなり独特
単なる数値でも配列扱いすると要素1つだけの配列みたいに振舞う
$a = 1
$a[0] ⇒ 1
$a[1] ⇒ $null
まあ>>177はよく思いついたなって思う

182デフォルトの名無しさん2018/11/11(日) 10:15:59.49ID:xoHShG4l
まず{fizz}が文字列になるという部分から読めなかった

183デフォルトの名無しさん2018/11/11(日) 12:45:53.82ID:xpOIALoe
バグみたいな仕様だな
バグだな

184デフォルトの名無しさん2018/11/11(日) 15:05:07.40ID:msMOLK59
powershell -v 2だと動かないな
PowerShell 3.0で配列じゃない変数も要素を取得できるようになったから動く
バグではないっぽい

185デフォルトの名無しさん2018/11/11(日) 18:49:56.37ID:/HpWdlpY
スクリプトブロックでしょ

186デフォルトの名無しさん2018/11/11(日) 19:06:06.81ID:Fk6I1vC1
事務の仕事で、ファイル処理とかテキスト処理のため、たまにPowerShellを使ってます
挙動の予測ができずトライアンドエラーをする機会がVBAなどより少し多くて
素人にはちょっと難しいのかなあと思ってたのですが
理解不能な技>>177を見て、使いこなせる自信がますます無くなりました

187デフォルトの名無しさん2018/11/11(日) 19:37:24.70ID:xpOIALoe
>>184
{abc}[0] #=>abc
これがわかんない
スクリプトブロックで囲むと、なんでabcはエラーにならないの?
普通にabcとやったらコマンドレットじゃないってエラー出るのに

188デフォルトの名無しさん2018/11/11(日) 19:39:58.14ID:JFNgNrbU
スクリプトブロックを文字列にキャストすると中身が実行されずに中のコードがそのまま文字列になる
つまり [string]{ fizz } が暗黙になされてるだけ

189デフォルトの名無しさん2018/11/11(日) 20:33:31.13ID:tAZC+CW3
その説明もピンと来ないが
&[fizz] や $hoge={Fizz};&$hoge
とすればちゃんとエラーになる。
未実行のスクリプトブロックは一種のヒア文字列扱いとなるということなんだろうか…

190デフォルトの名無しさん2018/11/11(日) 20:34:21.67ID:tAZC+CW3
&{fizz} だったすまん

191デフォルトの名無しさん2018/11/11(日) 20:43:37.28ID:tAZC+CW3
powershell -v 2のエラーメッセージ
"型 System.Management.Automation.ScriptBlock のオブジェクトにインデックスを付けることはできません。"
わかるw

192デフォルトの名無しさん2018/11/11(日) 21:03:13.85ID:xpOIALoe
{ abc def ghi} #=> abc def ghi
なんか{}でかこまれた部分がそのまま文字列になってる
なにこれぇ

193デフォルトの名無しさん2018/11/11(日) 21:26:24.30ID:v3JXSoAX
1..100|%{"$_`r"+{fizz}[$_%3]+{buzz}[$_%5]}

1..100 # 範囲演算子で1から100までのint[]を生成
|   # パイプ演算子
%   # Foreach-Object
{   # スクリプトブロック開始(%の引数)
"   # 文字列開始(二重引用符の中ではエスケープシーケンスが展開される)
$_   # パイプラインの入力を受け取る自動変数
`r   # Carriage returnのエスケープシーケンス。後に続く文字で前の文字を上書きする(なにもない場合上書き無し)
"   # 文字列終了→string型
+   # 加算演算子(左辺がstring型なので右辺をstring型にキャストする)
{   # スクリプトブロック開始
fizz  # コマンド/関数名fizzとして解釈されるがスクリプトブロック内なので実行されない
}   # スクリプトブロック終了→ScriptBlock型
[   # []演算子で左辺を要素数1の配列としてアクセスする。
$_%3 # 配列のインデックス。%(剰余)演算子でパイプラインの入力$_を3で割る
]   # 上の結果が0(→3の倍数)の場合のみスクリプトブロックの要素にアクセス、1以上の場合$null
+   # 加算演算子(左辺がstring型なので右辺をstring型にキャストする)。
{buzz}[$_%5] # fizzと同じ。結果としてstringが評価されコンソールに出力される
}   #スクリプトブロック終了。

194デフォルトの名無しさん2018/11/11(日) 21:55:09.88ID:JFNgNrbU
>>189
単にスクリプトブロック型のオブジェクトが中身の生コードを持ってるだけやろ
{fizz}.ToString() しても同じ
ToString()でどういう値を返すかはオブジェクトの種類によって違う
&やコンマやInvokeしたときに初めてスクリプトブロック型オブジェクトが持ってるコードが評価される

195デフォルトの名無しさん2018/11/11(日) 22:21:33.88ID:JFNgNrbU
ちょっと舌足らずだった
スクリプトブロック型はToString()したときに
内部に文字列としてもってる生コードを返すってことが言いたかった
実際ソースを読んでるわけじゃないけど

196デフォルトの名無しさん2018/11/11(日) 23:20:57.99ID:xpOIALoe
スクリプトブロックは&で評価されるまで中身何もチェックされないみたいですね
一応動作は理解しましたがなんていい加減な言語なんだろ
こんなのどこにも書いてないし今後仕様変わる可能性はありそうですね
ありがとうございました

197デフォルトの名無しさん2018/11/12(月) 00:58:57.83ID:3c4TyDT9
こんなのは常識的に理解できる範囲や
パイプラインを考慮した関数をちゃんと作ろうと思ったら頭おかしなるで

198デフォルトの名無しさん2018/11/12(月) 06:17:57.42ID:gZOE16Sc
>>193
たいへんに、ありがとうごわす

199デフォルトの名無しさん2018/11/12(月) 20:33:57.05ID:kM9Cc8DJ
まさにシェル芸

200デフォルトの名無しさん2018/11/12(月) 20:51:57.60ID:ZJicw3nv
しかし、以前に比べて
投稿される内容が良くなってきたね
かつては『○○と比べてなんら』とか
そういう投稿ばかりだったもんね。

201デフォルトの名無しさん2018/11/12(月) 21:10:04.82ID:AMbuBroP
シェル芸ならこんなところ

seq 100|sed 's/.*5$/Buzz/;3~3s/[0-9]*/Fizz/'

202デフォルトの名無しさん2018/11/12(月) 23:49:46.46ID:ZJicw3nv
どちらにしても、見てもわからないね

203デフォルトの名無しさん2018/11/13(火) 05:49:15.96ID:xWZc78Mp
知恵を絞って短縮コードを目指すから、理解容易ではないのはまあ仕方ない

204デフォルトの名無しさん2018/11/13(火) 08:37:24.02ID:6YAdmBBQ
3.0からの文法でできるならだれか思いついてそうだったけど検索しても出てこないな
Anarchy GolfにはPowerShell無いし、StackExchangeで58byte、牟田口氏のコードで51byte

いろいろテクニックが載ってて面白い
what is your fave PoSh version of FizzBuzz? : PowerShell
https://www.reddit.com/r/PowerShell/comments/6r06hg/what_is_your_fave_posh_version_of_fizzbuzz/
code golf - Tips for golfing in PowerShell - Programming Puzzles & Code Golf Stack Exchange
https://codegolf.stackexchange.com/questions/191/tips-for-golfing-in-powershell?page=2&;tab=votes#tab-top

205デフォルトの名無しさん2018/11/13(火) 18:05:14.16ID:hYk6FFU0
IDがバーベキューだね

206デフォルトの名無しさん2018/11/14(水) 08:50:21.40ID:PFpyL5+w
PowerShell Core 6.1.0で日本語が正しく表示されない現象について
https://blog.shibata.tech/entry/2018/11/13/202031

207デフォルトの名無しさん2018/11/14(水) 09:25:00.49ID:JBsUV7Ak
>>206
teratailの質問がトリガーでした
https://teratail.com/questions/157003

208デフォルトの名無しさん2018/11/14(水) 14:34:06.24ID:REddJKuq
PowerShell で全角文字を入力すると表示がおかしくなる問題について
https://blogs.technet.microsoft.com/askcorejp/2018/11/14/powershell-で全角文字を入力すると表示がおかしくなる問/

209デフォルトの名無しさん2018/11/14(水) 20:33:58.55ID:JBsUV7Ak
ISEは問題ないのに、普通のシェルがダメって何年放置されてるのだろう?

210デフォルトの名無しさん2018/11/14(水) 21:42:06.99ID:wbqNTVov
VSCodeでPowershellの色寂しくなった

211デフォルトの名無しさん2018/11/15(木) 00:08:24.89ID:WLDbhFjW
>>209
2か月じゃないか?

212デフォルトの名無しさん2018/11/15(木) 00:38:25.77ID:RLOkjNth
何年も放置されてるぞ

213デフォルトの名無しさん2018/11/15(木) 00:41:50.91ID:WLDbhFjW
>>212
6.0はOKで6.1がだめと書かれてる
6.1が出たのは2か月前じゃないの

214デフォルトの名無しさん2018/11/15(木) 04:26:11.58ID:eQKfIPvp
>>208はデスクトップ版Powershellの話Win10が出て3年かな

215デフォルトの名無しさん2018/11/15(木) 10:35:40.03ID:3jZ436MI
オプションを展開させるうまい方法ってありますか?
たとえば、-WhatIfを付ける/付けないを場合分けしたいときなど。
HogeCmd fuga piyo $whatif
とやると、$whatifは普通の引数になってしまうのでNG。
eval方式(コマンド全体を文字列にしてInvoke-Expressionで呼び出す)もあるけれど、
できれば、オプションのところだけうまいこと展開できればいいな、と。

216デフォルトの名無しさん2018/11/15(木) 13:52:20.43ID:94uNwBee
スプラッティングでやるのが普通かな

217デフォルトの名無しさん2018/11/15(木) 15:12:55.02ID:8dkxddcr
>>216
それ何?

218デフォルトの名無しさん2018/11/15(木) 15:25:38.96ID:VchA8nRa
>>216
横からだが、スプラッティングというものを初めて知って非常に参考になった。ありがとう。

219デフォルトの名無しさん2018/11/15(木) 16:00:23.13ID:4BqFdJaY
>>216
勉強になりました
ありがとう

220デフォルトの名無しさん2018/11/15(木) 17:07:06.05ID:n3jFLh1o
>>216
サンクス

221デフォルトの名無しさん2018/11/15(木) 21:27:16.74ID:cJYjGYCA
スプラッタのスプラッタ

222デフォルトの名無しさん2018/11/15(木) 22:18:43.81ID:sPg3U71k
>>221
よせよ
バケラッタを連呼する某アニメキャラを連想しちゃっただろ

223デフォルトの名無しさん2018/11/16(金) 05:17:03.39ID:7vBGbpbo
スプラピスプラッタ

224デフォルトの名無しさん2018/11/16(金) 10:51:17.32ID:0JdshTdX

225デフォルトの名無しさん2018/11/16(金) 17:17:39.49ID:h/lypBab
実行ユーザーがSYSTEMな場合の
COMオブジェクト利用がうまくいかないのは回避策ないでしょうか

226デフォルトの名無しさん2018/11/16(金) 22:04:34.76ID:bUstU+hr

227デフォルトの名無しさん2018/11/16(金) 22:06:57.09ID:bUstU+hr

228デフォルトの名無しさん2018/11/16(金) 22:55:21.07ID:6qpmN5uX
資格情報・認証とか?

「powershell 資格情報」で検索して

229デフォルトの名無しさん2018/11/17(土) 06:13:16.64ID:bZFmP2aX
>>225
excelとか使うとき普通に使えてるけど
何かうまくいことがあるの?

230デフォルトの名無しさん2018/11/17(土) 07:39:47.70ID:tSr/NeZx
>>229
普通の使い方してたらSYSTEMなんかで動かすことはないからサービスとかで動かしたいとかなんだろうと思う
いずれにせよ状況小出しにする奴の相手してもしょうがない

231デフォルトの名無しさん2018/11/17(土) 07:47:24.60ID:gKTWKNrR
タスクスケジューラで動かしたいのかも。いずれにせよ具体例を書いて欲しいものだ

232デフォルトの名無しさん2018/11/18(日) 00:15:47.54ID:L8Gt0pA8
>>221
スプラッターハウス以外思い浮かばないw

233デフォルトの名無しさん2018/11/19(月) 16:50:05.08ID:g2+fQFFI
WindowsCompatibilityモジュール試してみたけどFormat-table用の情報とか無いから一部コマンドレットの表示が微妙
いちいちモジュール読み込まんとダメだし

234デフォルトの名無しさん2018/11/19(月) 17:10:55.17ID:9fApbElg
>>233
Fomat-Table、モジュールなしだと使えなかったの?

235デフォルトの名無しさん2018/11/19(月) 19:27:11.18ID:xl/gDTc+
>>234
いや、そこまでの問題じゃない
Format-Tableで優先表示するプロパティ情報がないだけ
Format-Tableしても要らんプロパティがでてきたりする
Select-objectとかしてあげれば問題ないよ

236デフォルトの名無しさん2018/11/19(月) 19:59:58.22ID:Qq88xGOU
暗黙のWrite-Host|ft
が効かず、明示的に書かんどダメな感じ?

237デフォルトの名無しさん2018/11/19(月) 21:26:04.01ID:Gl33OQrV
投稿がまともになってきた

238デフォルトの名無しさん2018/11/23(金) 16:20:10.48ID:5fd0Mgpu
Effective PowerShell的な本ってないの?
普段、使う分には問題なく使えてると思う
でもより上手い書き方があるのでは、良いコーディング習慣を守れてるだろうか、と自問自答すると自信を持てない
人に見せるものでもなく、人のを見る機会もないからどうしても自己流になってしまう

239デフォルトの名無しさん2018/11/23(金) 22:10:45.37ID:ZSsoDLJq
本じゃないけど

PowerShell のコーディングスタイル
http://tech.guitarrapc.com/entry/2017/12/03/230119

240デフォルトの名無しさん2018/11/23(金) 22:36:58.28ID:b8tU0Ani
文法詳説はこの前出た貝殻本が扱ってたけど
読みにくい(演算子の説明が130ページくらいから始まる)

241デフォルトの名無しさん2018/11/24(土) 01:01:38.61ID:sK2Z8lS/
バイナリモジュールの情報少ないよなあ
github漁ってもあんまりないし
コマンドレット内でGet-Item呼び出す方法探すだけでだいぶ苦労した
結局ダサいやり方になったけど

242デフォルトの名無しさん2018/11/24(土) 02:06:29.51ID:mWKK19aP
powershell深いなあ。深すぎてちょっと目眩する時がある

243デフォルトの名無しさん2018/11/24(土) 03:37:58.44ID:BKTpjWqm
get-netadapterとか見たいに複数の結果を返すようなクラスが作りたいんだけど
どんな感じで書けばいいん?
思い浮かばねえorz

244デフォルトの名無しさん2018/11/24(土) 03:58:00.19ID:wk1txPAQ
>>243
Function内でWrite-outputでクラスを複数回出力するとか
クラスの配列を返せばいいよ

245デフォルトの名無しさん2018/11/24(土) 04:04:11.42ID:BKTpjWqm
>>244
ちと理解できてない
例えば、get-netadapterの内容を編集して結果をだすクラスを作るとして
インプットが複数なのでそれを都度かえしていくってことでいいのかな?

246デフォルトの名無しさん2018/11/24(土) 05:43:08.48ID:wk1txPAQ
>>245
まず作りたいのはクラスじゃなくてFunction(関数)かメソッドかコマンドレット(外部関数)だよね?
クラスは型であって入力と出力を持つものでは無いし

Get-netadapterも含めて一般的なコマンドレットの出力型は配列で
配列の各要素がクラスになってる

Get-netadapterの結果に編集を加える場合、
入力された値をforeach等で分解して
クラスにAdd-member等で要素(プロパティとか)を加えて毎回出力するとかする

もしくは配列の各要素がPSCustomObjectクラスの変数を作って
それを出力するとかする

サンプルに丁度よい関数とかあればいいけど一端探すのめんどいから割愛
Add-memberとかクラスのメンバーについてはググって調べて下さいな

247デフォルトの名無しさん2018/11/24(土) 09:11:34.28ID:kuH8s62I
この手の話題でクラスとインスタンスの区別をせずに語られるとすごくモヤモヤする

248デフォルトの名無しさん2018/11/24(土) 12:12:31.33ID:+C2yOPuj
PSVersion 5.1.17763.134
PSEdition Desktop
で Windows.Forms.Timer がちゃんと動いてくれぬ
Tickイベント内の変数の変更を保持してくれない?

249デフォルトの名無しさん2018/11/24(土) 12:54:26.03ID:BKTpjWqm
>>246
ごめん、違う

250デフォルトの名無しさん2018/11/24(土) 13:22:16.60ID:BKTpjWqm
途中で切れてしまった
コンストラクタに引数設定できるでしょ
その引数にget-netadapterの結果みたいなのを使う
で、その値で各プロパティの初期値みたいなのをセット
各引数付きのメソッドを実行すると、引数とプロパティを処理した結果を返すんだけども
get-netadapterみたいに複数がコンストラクタのインプットになるから、どうしたもんかと
やっぱ、無理なのかな

251デフォルトの名無しさん2018/11/24(土) 13:44:41.51ID:QuuVAkmI
UTF-8を標準出力に出力するexeの結果を処理したいのですが
特定の文字が入っていると文字コード変換に失敗します
例えば以下の文字列はこのように文字化けします
 「ホスト#01」⇒「ホスチE01」
 「ホスト02」⇒「ホスチE2」

正しくPowerShellで扱える文字列に直す方法をアドバイスいただけないでしょうか

## ソース
$src = [System.Text.Encoding]::UTF8
$dst = [System.Text.Encoding]::Default
$test = & 'C:\test\UTF8.exe'
$bytes = $dst.GetBytes($test)
$result = $dst.GetString([System.Text.Encoding]::Convert($src,$dst,$bytes))


UTF-8を標準出力に出力するサンプルexe(C#)
Console.OutputEncoding = new UTF8Encoding();
Console.WriteLine("ホスト#01\r\nホスト02");

252デフォルトの名無しさん2018/11/24(土) 14:43:41.10ID:2Kjdv9to
>UTF-8を標準出力
でぐぐったら
>これで、UTF-8 を使うアプリとの連携もばっちりだ。
そうだ

253デフォルトの名無しさん2018/11/24(土) 14:43:42.28ID:+C2yOPuj
>>251
PowerShellの内部でのエンコードはたしかUTF16じゃないかな

254デフォルトの名無しさん2018/11/24(土) 16:43:37.74ID:QuuVAkmI
>>252
このスレに書き込んで説明するために標準出力って持ってきたのですが
ググってるときは標準出力って思いつかずサイトに巡りあえませんでした
おかげでなんとかなりそうです
ありがとう

>>253
UTF16だという情報もみて変えてみたりもしたのですが、
余計文字化けがひどくなったのでどう対応すべきか悩んでました

255デフォルトの名無しさん2018/11/25(日) 01:27:52.64ID:bdma9Nzw
文字コードなど、考えたこともない。
UTF-8 しか使わないし

どのOS・アプリでも内部的には、UTF-16 だろうけど、これを扱うことなどない

256デフォルトの名無しさん2018/11/25(日) 01:44:12.14ID:fZE2Z+wN

257デフォルトの名無しさん2018/11/25(日) 10:54:09.80ID:Vpi5v0vn
PowerShellの変数ってちゃんと型指定したほうがいいの?

258デフォルトの名無しさん2018/11/25(日) 19:55:30.63ID:aKGD81aI
パフォーマンス気にして型変換するなら、Powershell使うこと自体が不適
通常は勝手に型変換しないように型付ける

v3のビットシフト演算子が勝手にbyte型をint型にキャストするのマジ糞

259デフォルトの名無しさん2018/11/25(日) 19:55:52.89ID:aKGD81aI
>>258
パフォーマンス気にして型「指定」だわ

260デフォルトの名無しさん2018/11/25(日) 20:30:16.12ID:dc9uTwTH
powershellにintegral promotionは定義されてないのか

261デフォルトの名無しさん2018/11/25(日) 21:22:56.96ID:XYd2EWob
未だにバッチをメインで使っている
ぼちぼちPowerShellメインに変えようかと思っているんだが
WSHもどうか?とおもったり
もうWSHは終わりで、PowerShellが延びると思っていて良い?

262デフォルトの名無しさん2018/11/25(日) 23:19:09.06ID:NeSEBBpr
VBScriptはちょっとオワコン感出てきたけど、WSH自体はJavaScriptがデフォルトで使えるのでしぶとく残りそう

263デフォルトの名無しさん2018/11/25(日) 23:34:35.24ID:tkP11man
>>261
標準で備わってる機能面でwshはPowershellに比べて貧弱だよ
Powershellだとcsv読み込むとかjson処理するとかコマンドレットで用意されてるけどwshだとそれなりのコード書かないと出来ないし
ループ周りもパイプラインに比べると冗長になりがち

ただwshの方がシンプルで学習は楽、Powershellは複雑な部分が多い
学習コストはPythonより高い気がする

264デフォルトの名無しさん2018/11/25(日) 23:48:06.15ID:tkP11man
PowershellはMS系クラウドサービスの管理シェルとして伸びるかな
バッチもwshも消えなそうだけど今後の伸びは無さそう

265デフォルトの名無しさん2018/11/26(月) 02:18:11.89ID:beMkVqx1
手を広げ過ぎて仕様が複雑というより単に雑な印象がある

266デフォルトの名無しさん2018/11/26(月) 02:57:13.19ID:gMbJcsFf
学習コスト高いというか体系的にまとまった書籍等無いからよくわからずに動く状態になる(配列とか)
Pythonのようにすんなり上達するのではなくて、ある程度学ぶとかえってわからなくなるの繰り返し

それでも今更wshやるよりはいいはず

267デフォルトの名無しさん2018/11/26(月) 03:29:58.94ID:x+j35ljp
PowerShellだと学習コストは高いけど
よく使うコマンドレットがそろってる

WSHだとJavaScriptで書けるけど
自作ライブラリみたいの書く手間はある

微妙な勝負だけど今から始めるならもう
Poshを使ってしまった方が良いと思う

268デフォルトの名無しさん2018/11/26(月) 08:10:27.64ID:8ZmTpMnp
>>262
いやちょっとどころじゃねーだろ
いつの時代の話してるんだか

269デフォルトの名無しさん2018/11/27(火) 02:30:28.91ID:tmYINXAW
未だにバッチでこと足りてしまう管理業務というのが想像できない。

270デフォルトの名無しさん2018/11/27(火) 07:41:39.02ID:WLNYjP7B
VBSはバリバリ現役よ
うちの社内システム開発・運用は全てVBS
無料であり
バッチファイルより遥かに強力で
仕様が枯れていてVerUPに振り回されることがなく
Javaのように一企業の思惑でライセンス問題が発生することもない神言語
PowerShellはerUPが止まり仕様が枯れるまでは採用しない

271デフォルトの名無しさん2018/11/27(火) 07:53:06.65ID:wHi5iJt/
>>270
WIN10のストアアプリの削除もVBSで出来るの?

272デフォルトの名無しさん2018/11/27(火) 08:04:37.56ID:WLNYjP7B
>>271
うちはWin7

273デフォルトの名無しさん2018/11/27(火) 09:20:49.19ID:pR/1ZC3V
Win7はあと1年ちょいでサポート終了だしな
その後はWin10のPowershell5.1で標準化するでしょ
今のPowershellは2.0が残ってるのがガンになってる気がする

274デフォルトの名無しさん2018/11/27(火) 09:48:14.11ID:PCREN6ZT
>>270
Windows PowerShellはとっくにバージョンアップ止まってるんだが何が不満なんだ

275デフォルトの名無しさん2018/11/27(火) 13:25:38.77ID:n8g+btBw
>>270
5.1がWinにおける最終バージョンだろ

276デフォルトの名無しさん2018/11/27(火) 17:49:55.92ID:GQ1LL4CF
5.1だと正常に動かなくて
v2オプジョンだとちゃんと動くのとかあるし…

277デフォルトの名無しさん2018/11/27(火) 18:27:04.57ID:7LglyRgp
>>276
どんなのがあったっけ?

278デフォルトの名無しさん2018/11/27(火) 19:10:08.25ID:d01YhI4a
今だとUIフォームつくるならWPF?

279デフォルトの名無しさん2018/11/27(火) 23:03:49.22ID:5h6j1xJ1
JP1のSPTファイルもぶっちゃけVBSみたいなもんだよね

280 ◆QZaw55cn4c 2018/11/27(火) 23:18:31.25ID:X/MEoliS
>>273
win7 はたぶん終了にならないと思います、win10 がクソすぎるからね

281デフォルトの名無しさん2018/11/28(水) 09:58:30.52ID:dGZ6nyrF
>>280
神OS(笑)XPの時も似たような話聞いたわ

282デフォルトの名無しさん2018/11/28(水) 11:20:24.48ID:b089yY0z
Win7はデフォでv2.0しか使えないからこのスレ的にはダメダメ

283デフォルトの名無しさん2018/11/28(水) 12:31:06.61ID:j69eTZ+j
>>282
デフォルトじゃないとだめなの?

284デフォルトの名無しさん2018/11/28(水) 12:57:23.83ID:036JocE6
有償で延長サポートの話が出てる以上
それ以外はバッサリ終了に決まってるでしょ

285デフォルトの名無しさん2018/11/28(水) 19:59:03.72ID:b089yY0z
>>283
出先でWMF入れられないじゃん

286デフォルトの名無しさん2018/11/28(水) 21:40:54.00ID:e3ALQLMX
>>285
なるほどね。仕事内容や立場により、いろいろあるわけね。

287デフォルトの名無しさん2018/11/28(水) 21:55:44.64ID:JxqTGA2g
これが5.1だとちゃんと動かねぇ
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

function ShowInfoMain{
$counter = 0
$timerTestTick = {
$label_timer.Text = "{0} 秒" -f $counter++
}
#タイマーの初期化
$timerTest = New-Object Windows.Forms.Timer
$timerTest.Add_Tick($timerTestTick)
$timerTest.Interval = 1000
$timerTest.Enabled = $TRUE
$timerTest.Start()

#フォーム
$Form = New-Object System.Windows.Forms.Form
$Form.Size = "100,100"
$Form.StartPosition = "CenterScreen"

#タイマー
$label_timer = New-Object System.Windows.Forms.Label
$label_timer.Text = '0 秒'
$Form.Controls.Add($label_timer)

$result = $Form.Showdialog()
$timerTest.Dispose()
$Form.Dispose()
}
. ShowInfoMain

288デフォルトの名無しさん2018/11/28(水) 23:01:00.54ID:b5TbM/Zv
$counter = 0
$label_timer = New-Object System.Windows.Forms.Label
$timerTestTick = {
$label_timer.Text = "{0} 秒" -f $script:counter++
}

289デフォルトの名無しさん2018/11/28(水) 23:05:36.16ID:b5TbM/Zv
順序関係なく単純に $script:counter++にするだけでいいみたいやね

290デフォルトの名無しさん2018/11/28(水) 23:27:13.98ID:JxqTGA2g
んがー
スクリプトブロックでのスコープによるものって
認識でよろしいのだろうか…
2.0だと動くのはなんでなのじゃ

291デフォルトの名無しさん2018/11/28(水) 23:38:49.55ID:JxqTGA2g
>>289
ありがとうございました

初期値の宣言でもやんないとダメみたい
$script:counter = 10

292デフォルトの名無しさん2018/12/02(日) 21:23:25.18ID:u3CI+74z
PowerShell 3.0での破壊的変更まとめ
https://blog.shibata.tech/entry/2018/12/01/113228

デリゲート代わりに使われるスクリプトブロックのスコープ

PowerShell 3.0からデリゲート代わりに使われるスクリプトブロックが独自のスコープを持つようになっています。
たとえば以下の様な例だとPowerShell 2.0では1を、PowerShell 3.0からは0を返す様になります。

Add-Type @"
public class Invoker
{
public static void Invoke(System.Action<int> func)
{
func(1);
}
}
"@
$a = 0
[Invoker]::Invoke({$a = 1})
$a

293デフォルトの名無しさん2018/12/03(月) 14:13:32.11ID:xHLM582p
新しいpowershell では、Get-Clipboard で、クリップボードから文字列も取得できる!

294デフォルトの名無しさん2018/12/03(月) 20:49:19.87ID:9uCJpuZ+
んなもん.NET直接呼んだ方が互換性高い

295デフォルトの名無しさん2018/12/03(月) 21:32:04.89ID:uxAfgW4c
なんでそんなめんどくせーことせなあかんねん

296デフォルトの名無しさん2018/12/03(月) 22:42:10.02ID:YBAcFOR9
>>295
powershellは.netのフロントエンドだから

297デフォルトの名無しさん2018/12/03(月) 22:51:11.92ID:uxAfgW4c
そういう問題じゃないが・・・
支障がない場合はそんまま使うわあほくさ

298デフォルトの名無しさん2018/12/04(火) 02:28:30.75ID:Tn5NKjZ7
なんで今更5.0の話してんのさ

299デフォルトの名無しさん2018/12/04(火) 16:12:13.82ID:eKuwOju4
5ch の文章を、テキストエディタへコピペすると、
各行の先頭・末尾に、空白が付くので、これを除去したい

そこで、Ruby でプログラムを作って、
バッチファイルで、そのプログラムをダブルクリックで起動できるようにした

Windows で、クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

新しいpowershell では、クリップボードから文字列も取得できる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip )

IO.popen( 'clip', 'w:cp932' ) do | clip |
clip.print( ary.join "\n" )
end

300デフォルトの名無しさん2018/12/04(火) 17:07:32.91ID:hkRngAzE
Get-Clipboardの機能は2015年からあるがどう新しいのか

301デフォルトの名無しさん2018/12/04(火) 17:45:54.20ID:xb7Yz2vd
Ruby挟む意味ないじゃん?バッチも画面が目ざわりだしvbsがいいよ

CreateObject("WScript.Shell").Run "powershell ""gcb | % trim | scb""", 0

3022992018/12/04(火) 19:47:12.62ID:eKuwOju4
VBS でも、ダブルクリックで実行できる?

3032992018/12/04(火) 19:58:07.57ID:eKuwOju4
ありがとう。
VBS でも、ダブルクリックで実行できた

ただ、黒い画面が表示された方が、わかりやすくない?
何秒ぐらい待つのか、迷う

304デフォルトの名無しさん2018/12/04(火) 21:38:59.01ID:gx9huxXd
Windows文化は「黒い画面」が出るのを良しとしないのだよ

305デフォルトの名無しさん2018/12/04(火) 22:20:16.69ID:SeIDr86X
>>304
そんなの一部の神経質な奴らだけ

306デフォルトの名無しさん2018/12/04(火) 23:31:35.16ID:RbfFY42H
>>305
Windows 文化と言うより、業務でオツちゃん・オバちゃんに使わせるシステムの場合、
あいだに黒い画面が一瞬出ると「なにこれ?」って無用な問い合わせが入ったり、
場合によっては無理やり閉じられることもある。
fool proof の観点からは黒い画面が無いに越したことはない。

307デフォルトの名無しさん2018/12/05(水) 20:37:03.12ID:x9ea9mMQ
" が含まれている文字列を環境変数にいれてnet useコマンドを使うと" がエスケープされず想定通りに処理されないのですがどうエスケープすればいいんでしょうか
シングルコーテート、バックコーテート、ダブルコーテートで"をくくってもだめでした

308デフォルトの名無しさん2018/12/05(水) 20:49:13.75ID:jRzepDw/
何をしたくて何をしているのかさっぱりわからん

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
などとしてもうまくいかない感じです

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はコマンドプロンプト用

313デフォルトの名無しさん2018/12/05(水) 21:03:52.33ID:x9ea9mMQ
net use ではなく new-psdriveだとバクスラでエスケープ可能なんですか?
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'
とすればいいだけ

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)

324デフォルトの名無しさん2018/12/06(木) 12:49:27.99ID:r+yxrRWT
標準出力に変なもん混ぜるな

325デフォルトの名無しさん2018/12/06(木) 14:36:39.70ID:8XTishpu
>>309
間違いないよう(見間違いも)にだったらヒアストリングつかったらどうでしょう
行は増えますが、エスケープ考える必要もかいから。

@"
test123"45
"@

326デフォルトの名無しさん2018/12/07(金) 00:30:59.21ID:d/eT01GS
whoamlで取得した実行結果のユーザ名を一行で環境変数に入れるにはどうすれば良いでしょうか

whoami 実行
結果 testpc¥user1
と結果が返ってくる場合、
$test = whoami.split("¥")[1]
と言ったかたちで
$testにuser1を格納させたいのですがうまく行きません

327デフォルトの名無しさん2018/12/07(金) 01:04:59.92ID:frCtIBO+
括弧で囲む
(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

329デフォルトの名無しさん2018/12/07(金) 07:51:42.00ID:QVqNOX9I
読んでみたけど違いがよくわからん
型を持つってとこ?

330デフォルトの名無しさん2018/12/07(金) 08:45:51.25ID:hrhTiXxm
型じゃなく範囲・スコープだよ
環境変数は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*"}

332デフォルトの名無しさん2018/12/07(金) 12:42:27.81ID:TQVSWTyy
>>326
それを実行している自分自身のユーザ名が欲しいだけなら、わざわざそんなことしなくても
$env:USERNAME
で引っ張ってこれる。

出し惜しみ、小出しにしないで前後関係も話さないと的確なアドバイスが出来ないよ。

333デフォルトの名無しさん2018/12/07(金) 16:32:33.86ID:fTv51LPz
>>331
.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 の要件も(たぶん)満たせるだろう。

336デフォルトの名無しさん2018/12/07(金) 18:35:56.11ID:fTv51LPz
コマンドレット使える所を外部コマンド使うなよとは思うね
出力から値をテキスト抽出で取り出すとかもエレガントではないな

あと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

338デフォルトの名無しさん2018/12/07(金) 20:47:47.55ID:d/eT01GS
treeコマンドやん

339デフォルトの名無しさん2018/12/07(金) 20:51:06.57ID:0M/LMioQ
tree形式で図示しただけ。
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:8f5a0RKW
>>342
Preview出てたんだ
早速使ってみたい

344デフォルトの名無しさん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/

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]])

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/
>>348
エコー防止したいなら

$null = 式

式 | Out-Null

式 > $null

[void]式

どれでもどうぞ

350デフォルトの名無しさん2018/12/11(火) 20:18:20.80ID:pSYvkLmz
powershellでメール受信やるならMailkitがいいですかね?

351デフォルトの名無しさん2018/12/14(金) 21:21:08.51ID:xmsOh7Vk
UWPスレが死んでるのでこっちで聞き直すね
起動してる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:PkDIN57F
>>345
具体的にどんなことをやりたいか書いていただくと
PowerShellでLINQ利用した場合の例を挙げられると思うけど

354デフォルトの名無しさん2018/12/16(日) 21:18:15.54ID:XltMT+7i
職場のPC(セキュリティ上の理由でネットに繋がらない)がWin7→Win10になったんだが
PowerShellのヘルプがオンラインヘルプだけになって見れないのでつらい

355デフォルトの名無しさん2018/12/16(日) 21:48:37.43ID:GDEIwjsa
Get-HelpとかISEのコマンドアドオンじゃダメなん

3563542018/12/20(木) 22:28:30.63ID:MSiR3oAq
>>355
遅くなった & 説明が間違えてたごめん

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

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

もうリファレンス本買うことにするよ・・・orz

357デフォルトの名無しさん2018/12/20(木) 22:59:49.46ID:PfMwju1x
別PCでSave-Helpでファイルダウンロードして手動で配置したらあかんの?

3583562018/12/21(金) 01:31:43.78ID:GySz2aRs
>>357
セキュリティガチガチの保険会社の現場なんで無理っす><

ってか↓これポチりましたw
https://www.amazon.co.jp/dp/477415542X

359デフォルトの名無しさん2018/12/21(金) 08:22:37.58ID:Lg32FCuG
5.1対応の良い感じの書籍あるんかな

360デフォルトの名無しさん2018/12/22(土) 07:51:50.03ID:i7ExTGRa
変数展開するときに、
$test

${test}
ではなにが違うんですか?

361デフォルトの名無しさん2018/12/22(土) 12:12:36.07ID:UGqq2IDw
>>360
基本一緒でしょう
GetType()
してみるとわかりますと同じですね。

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

なんでこういうのがあるかは分りません。

362デフォルトの名無しさん2018/12/22(土) 14:03:56.67ID:YB2ocxbA
$test = "TEST"
"test$testtest"
"test${test}test"
こういう時にでも使うんじゃねーの
求める形に適当なのを使えばいいんじゃねーかな

363デフォルトの名無しさん2018/12/22(土) 15:32:06.19ID:TlQhzlLR
中括弧つければ通常使えない文字も使える

${\(^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 という変数を参照することになるので思ったように動作しません。

365デフォルトの名無しさん2018/12/22(土) 16:37:26.19ID:UGqq2IDw
なるほどね

$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://2chb.net/r/liveplus/1545444404/l50

368デフォルトの名無しさん2018/12/22(土) 17:15:32.75ID:uHYOaa0r
ダブルコーテーション内で変数を値展開させたい場合空白文字で区切られていないとだめ。つまり
echo "$hoge fuga"
であれば
hoge fuga
にはなる。
hogefugaを得たい場合、俺なら
echo ($hoge+"fuga")
と書く

369デフォルトの名無しさん2018/12/22(土) 18:16:02.24ID:UGqq2IDw
echoを使う理由はなんかあるのかな?
私はecho自体つかわないので

370デフォルトの名無しさん2018/12/22(土) 18:17:09.93ID:UGqq2IDw
>>367
ありがと
それ見たい

371デフォルトの名無しさん2018/12/22(土) 18:20:02.63ID:b6CiPLFa
ログを標準出力に出力するときに普通に使う

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


echoなかったらなに使えばいいワケ?

372デフォルトの名無しさん2018/12/22(土) 18:30:20.06ID:UGqq2IDw
いや、使う場面がないので聞いただけ
通常ログに返すときにはそのまま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

375デフォルトの名無しさん2018/12/22(土) 19:19:11.25ID:b6CiPLFa
失礼した
パワー系池沼シェルについてはオレは知らん
スレタイみずに普通のシェルの話してるかと思ってたわ

376デフォルトの名無しさん2018/12/22(土) 19:20:29.55ID:UGqq2IDw
そのまま書けば標準出力先への出力ですよね

私も不勉強なのですが、場合によりほかのシェル言語経験の方で
そちらではそれが普通なので、その習慣で書いているとかないですかね?
PSの環境変数にも特段echoいらないと思うし。

377デフォルトの名無しさん2018/12/22(土) 19:39:35.63ID:90OqLo7S
$env:aho = command で普通に入るね
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倍くらいかかる

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

381デフォルトの名無しさん2018/12/22(土) 20:30:19.10ID:VDYmdehC
>>372
> 上記のやり取りの例だとechoいらないな〜と思ったまで

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

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

なお echo は Write-Output のエイリアスですので念のため。

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

一言余計、そんなことは誰でも知ってる。勘違い馬鹿な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の出力をログに同時に吐くようにできませんか?

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 が入り乱れる

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 ← 終了

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 ← 終了

394デフォルトの名無しさん2018/12/23(日) 00:47:12.06ID:qffc/3mK
改めてパワー系池沼シェルの遅さが実感できたわ

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

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

お話にならない。。。

395デフォルトの名無しさん2018/12/23(日) 00:59:55.54ID:M6Mt1G8k
datew

396デフォルトの名無しさん2018/12/23(日) 01:00:31.45ID:9AXglOVX
>>390
だけじゃなくてswitch(式)の式の値にも使われてる
意外と便利

397デフォルトの名無しさん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

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

漏れは、Ruby でやるけど

401デフォルトの名無しさん2018/12/23(日) 02:11:53.35ID:M6Mt1G8k
単に出力がネックになってるだけだからな
dateなんて関係ねえw

402デフォルトの名無しさん2018/12/23(日) 02:26:18.31ID:zuMyhwwp
>>379は変数への代入とかを想定して書いたんだけどな

値を返すのを関数型言語っぽく式で書けるのはいいけど、
手続き的なコードと混ざる場合もあるからコードの意図が分かりにくくなりがち

403デフォルトの名無しさん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はもともと相当不利
パワー系池沼シェルがこの部分で速いのはアタリマエ

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

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

低学歴はいちいちいつも自分は低学歴でバカですと
自白するからな

407デフォルトの名無しさん2018/12/23(日) 10:22:49.86ID:zuMyhwwp
いろいろぐじゃぐじゃ言ってるけど、無駄改行も相まって目障りだね
同じ内容で言葉を増やすのはバカでもできて、言葉を減らすには学が必要だ、って誰が言ったんだっけかな

408デフォルトの名無しさん2018/12/23(日) 10:24:00.28ID:qffc/3mK
低学歴知恵遅れには
一から十までいわないと分からないからな

クソみたいに知能が低い

409デフォルトの名無しさん2018/12/23(日) 10:32:47.68ID:qffc/3mK
ホントなこの板はクソみたいに知能の低いのしかいないのが
よくわかるわ

410デフォルトの名無しさん2018/12/23(日) 10:35:50.27ID:M6Mt1G8k
ああよく見たらたしかにリダイレクトしてたわw
でどこがネックになってるの?
内部コマンド使えるpowershellが圧倒的に速かったって言いたかっただけ?

411デフォルトの名無しさん2018/12/23(日) 10:43:20.28ID:qffc/3mK
低学歴知恵遅れの池沼は
日付とかmsが事前に用意してくれるオブジェクトしか使わないから
問題ない

低学歴知恵遅れの池沼は
自分で作ったコマンドを標準入出力で組み合わせて使える知能すら備えてないから
問題ない

412デフォルトの名無しさん2018/12/23(日) 11:12:36.36ID:e1SIJ5NV
いちいち別プロセス起動するのがエレガント
だとでも言いたいのかね

413デフォルトの名無しさん2018/12/23(日) 11:40:26.14ID:M6Mt1G8k
このアスペの相手は無理だわw
低い次元のしょぼい知識でマウントとろうとするし
またそれ自体が目的になってるからみんな戸惑うんだと思うわ

414デフォルトの名無しさん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;
}

415デフォルトの名無しさん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 ← 終了


一瞬で終わる
なんでもシェルスクリプトだけでやる必要ななんかまったくない
こういった出力結果を加工するのは、当然標準入出力になる

416デフォルトの名無しさん2018/12/23(日) 12:00:27.02ID:qffc/3mK
マウント()

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

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

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

ホントな低学歴知恵遅れは
どんだけゴミやねんと

417デフォルトの名無しさん2018/12/23(日) 12:04:59.27ID:M6Mt1G8k
支離滅裂だなこのアスペはw
ある意味見てておもろい生き物だわ

418デフォルトの名無しさん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秒ほどかかる

419デフォルトの名無しさん2018/12/23(日) 12:07:09.97ID:qffc/3mK
低学歴知恵遅れが
ムリして頭いいふりしようとしても
頭悪いのなんかすぐにバレるからな

残念なことに

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

残念なことに

420デフォルトの名無しさん2018/12/23(日) 12:07:55.16ID:M6Mt1G8k
自己紹介乙!

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

レスすればするほど
低学歴の自己紹介してるのが
分かってない

422デフォルトの名無しさん2018/12/23(日) 12:09:55.64ID:M6Mt1G8k
もう頭に血がのぼってる
おもろいやつだわ

423デフォルトの名無しさん2018/12/23(日) 12:12:26.40ID:qffc/3mK
自己評価だけは高い低学歴知恵遅れにありがちな典型的なサンプルといっていい

底辺であるほどその傾向が高い傾向にあることは
この板で多くのサンプルをみてきたからすぐにわかるわ

424デフォルトの名無しさん2018/12/23(日) 12:14:04.22ID:qffc/3mK
低学歴知恵遅れは自覚がない

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

残念なことに

すぐにバレるのが分かってない

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

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


バルサン焚いて低学歴知恵遅れを
この板から駆除しないといけない

426デフォルトの名無しさん2018/12/23(日) 12:24:24.23ID:t7aRRzSS
糖質さんちゃんとお薬飲んでお休みなさいな、ネット耽溺は毒ですよ?

427デフォルトの名無しさん2018/12/23(日) 12:26:07.38ID:qffc/3mK
ほらな身に覚えがあるのが
わらわらこのスレによってきてるわ

誘虫灯になってるわ

図星だからな

428デフォルトの名無しさん2018/12/23(日) 12:30:51.58ID:9E3TCu/N
シェルでやる必要ないってなると
そだねーで話し終わるんですけど…
そういう主張だったの?
bash持ち出してきて着地点そこでいいの?

429デフォルトの名無しさん2018/12/23(日) 12:44:40.56ID:M6Mt1G8k
こいつ的にはいいんだろうw
もう少し観察してみよう

430デフォルトの名無しさん2018/12/23(日) 12:46:02.78ID:4wpzIbqj
まとめてNGした

431デフォルトの名無しさん2018/12/23(日) 13:02:32.10ID:qffc/3mK
そうオレ以外のレスはまとめてNGで正解
情報価値のある有益なレスはオレのレスしかない

他の低学歴知恵遅れのレスは
情報価値ゼロ

432デフォルトの名無しさん2018/12/23(日) 13:18:23.49ID:yKwr45+F
ちなみに、PowerShellらしくこんな感じではどうだろう
私の遅いマシンでもファイル出力いれても2秒ほどで終わる

$first = [datetime]"2000/1/1"
$last = [datetime]"2018/1/1"
$stream = [System.IO.StreamWriter]::new(".\xxx.txt")
$new=0..($last -$first).TotalHours | % {$stream.WriteLine($first.AddHours($_))}
$stream.Close()

433デフォルトの名無しさん2018/12/23(日) 13:23:15.06ID:yKwr45+F
あ〜
$new= はいらんかった。

434デフォルトの名無しさん2018/12/23(日) 13:29:16.66ID:pDu+7nW/
コマンド実行と同じ行でechoってできますか?
例えば、
echo "cドライブ" dir c:¥
みたいな感じで

435デフォルトの名無しさん2018/12/23(日) 13:44:08.05ID:p+GlREN7
>ID:qffc/3mK

それだけ攻撃的な性格で、円滑な社会生活が営めているのか、老婆心ながら心配になってくる。
>ID:qffc/3mK のレスを見て Void (日下部さん) を思い出した俺はもうオッサン

436デフォルトの名無しさん2018/12/23(日) 14:21:43.11ID:p+GlREN7
>>434
セミコロンで区切ればいいです。
echo "cドライブ" ; dir c:\

437デフォルトの名無しさん2018/12/23(日) 14:25:20.11ID:qffc/3mK
シェルらしく書くならこうなる

param (
[string]
$o,
[datetime]
$first = [datetime]"2000/1/1",
[datetime]
$last = [datetime]"2018/1/1"
)

${datecount} = foreach($t in 0..($last - $first).TotalHours) { $first + [timespan]::FromHours($t) }

if (-not ${o}) {
${out} = ${datecount}
} else {
${out} = ${datecount} | Set-Content ${o}
}

${out}

438デフォルトの名無しさん2018/12/23(日) 14:26:52.23ID:yKwr45+F
>>385
>PSの出力をログに同時に吐くようにできませんか?

やっと思い出した。そのための機能がtee-objectだった
get-process |Tee-Object -FilePath dummy.txt

これでコンソール画面とdymmy.txt両方に出力される。

439デフォルトの名無しさん2018/12/23(日) 14:27:56.95ID:qffc/3mK
linuxなら指定したファイルにリダイレクトするのも
デバイス(/dev/stdout)にリダイレクトするのも
同じだからな

低学歴知恵遅れたちはなにをリダイレクトといってるのか
意味不明といっていい

池沼の語彙でのリダイレクトはまた違う意味なのか
わかってないでテキトーなこといってんのかよくわからんというより

> これでリダイレクトなら2秒弱だけど
> 素実行でコンソール出力ありだと10秒ほどかかる


きっとなんも分かってない

440デフォルトの名無しさん2018/12/23(日) 14:33:14.12ID:qffc/3mK
/dev/pts/0の端末

 $ tty
 /dev/pts/0

 $ ls −la /dev/stdout
 lrwxrwxrwx. 1 root root 15 12月 23 08:20 /dev/stdout −> /proc/self/fd/1
 $ ls −la /proc/self/fd/1
 lrwx−−−−−−. 1 xxxxx xxxxx 64 12月 23 14:06 /proc/self/fd/1 −> /dev/pts/0

 $ ls −la /dev/stderr 
 lrwxrwxrwx. 1 root root 15 12月 23 08:20 /dev/stderr −> /proc/self/fd/2
 $ ls −la /proc/self/fd/2
 lrwx−−−−−−. 1 xxxxx xxxxx 64 12月 23 14:16 /proc/self/fd/2 −> /dev/pts/0

 $ ls −la /dev/pts/0
 crw−−w−−−−. 1 xxxxx tty 136, 0 12月 23 14:07 /dev/pts/0

/dev/pts/1の端末

 $ tty
 /dev/pts/1

 (あとは同じで)/dev/stdoutも/dev/stderrも/dev/pts/1になる

441デフォルトの名無しさん2018/12/23(日) 14:35:01.72ID:9E3TCu/N
>>439
PSの出力ストリームはやたら複雑なんです

442デフォルトの名無しさん2018/12/23(日) 14:35:32.50ID:qffc/3mK
例えばこの↓コマンドを/dev/pts/0の端末で打ったらどうなるか
このスレにいるような低学歴知恵遅れに分からないのは分かるわ

$ echo aho > /dev/pts/1

いずれにせよ
池沼たちのレスみてたらパワー系池沼シェルがいかにウンコかよくわかるわ
その点は有益だったといえる

443デフォルトの名無しさん2018/12/23(日) 14:53:35.10ID:e1SIJ5NV
unix哲学の押し売りは結構です

444デフォルトの名無しさん2018/12/23(日) 14:56:40.70ID:yKwr45+F
そだね、Unixのシェル知らないから
何をやっているか自体が分らない
だから答えようもない。

445デフォルトの名無しさん2018/12/23(日) 15:05:50.41ID:9E3TCu/N
あのーここPSスレなんですけどもー?
頭大丈夫ですかー?

446デフォルトの名無しさん2018/12/23(日) 15:10:54.99ID:y1IlhbOh
スレタイを見ずにUNIXシェルと勘違いして見当違いのレスをした上に
恥をかかされたと逆恨みしてスレを荒らす
残念すぎる

447デフォルトの名無しさん2018/12/23(日) 15:12:47.09ID:4wpzIbqj
鎌ってやるなんて暇だな君たち

448デフォルトの名無しさん2018/12/23(日) 15:14:34.38ID:pDu+7nW/
>>436
ありがとうございますできました!
セミコロンはそういう演算子?なのですか?

449デフォルトの名無しさん2018/12/23(日) 15:21:36.51ID:qffc/3mK
荒らしてる?
失敬な

低学歴知恵遅れは
自分が低学歴知恵遅れでなんの役にも立ってないのを
すぐに棚にあげるからな

そもそもオレのレスしか有益な情報がない

分かるやつがスレを読めば
いかにパワー系池沼シェルがウンコか分かる構成のレスになってる

そしてこのスレにも低学歴知恵遅れしかいないことを
十分に証明できるレスの構成になってる

だれかオレ以外にこのスレで有益なレスした?

450デフォルトの名無しさん2018/12/23(日) 15:21:46.66ID:yKwr45+F
>>448
演算子ではなくて
行替えしないで1行で書きたいときの単純な区切り

451デフォルトの名無しさん2018/12/23(日) 15:24:22.01ID:p+GlREN7
>>448
そうです。他の言語でも文の区切りや行末にセミコロンを使うことが多いので、学習コストを下げるため同じ文字にしたのかもしれませんね。

452デフォルトの名無しさん2018/12/23(日) 15:25:34.62ID:yKwr45+F
>>449
そりゃいいんだけど、そのスクリプトが何をやっているかの説明を一緒に
付けてくれないとわからないんで、それを付けて頂戴。

普段UNIX系使っている人ばかりでないし、私は使うことは使うが
普段つかうのがSASなんで、UNIX系のシェルはディレクトリー指定や変更など
本当の基本だけ知っていれば、シェル自体を必要しなくても処理が完結するんで
何を書いているのかがわかんない。

453デフォルトの名無しさん2018/12/23(日) 15:46:34.98ID:qffc/3mK
まずどのスクリプトが分からんといってるのかが分からん
一行のコマンド(>>442)なら書いたが
>>440はシンボリックリンクがどうはられてるかのコマンドログだからな

454デフォルトの名無しさん2018/12/23(日) 15:47:44.56ID:yKwr45+F
最初のttyって何やってるの?

455デフォルトの名無しさん2018/12/23(日) 15:50:21.95ID:qffc/3mK
使ってる端末が
どのデバイスファイルと結びついてるかを返す
これ以上いちいち説明する気はない

やる気があるなら、自分でman読んで覚えたほうがいい

456デフォルトの名無しさん2018/12/23(日) 15:58:49.60ID:yKwr45+F
>>455
だから〜
UnixでSAS使っていればシェル使わなくても、自分たちの処理はすんじゃうので
Unixシェル覚える気はさらさらないのよ。

457デフォルトの名無しさん2018/12/23(日) 15:59:58.24ID:z3o8Rgch
荒らしに構うのも荒らしということでNGIDを増やした

458デフォルトの名無しさん2018/12/23(日) 16:22:49.84ID:qffc/3mK
ちなみにオレもSASデータを作成する処理の対応をしたことがある

dbmsの抽出結果を直接投入したりcsvから投入したりしてる
sasは欠損値や日付の取り扱いにクセがあるから
データ加工をちゃんとしないとそのままでは大体投入できない

当然そういったデータ加工もsasへの投入も日次のJOBとして毎日シェルが呼び出されるようになってる
データセットは毎日更新され続ける

データセットを作成したあとは、ほとんどSASだけで完結できるのは、そのとおりだ

それとパワー系池沼シェルがウンコなのとはなんの関係もない
パワー系池沼シェルからexcel操作するのと変わらん話だからな

まずシェルというもんがなにか分かってない

459デフォルトの名無しさん2018/12/23(日) 16:35:42.95ID:BmCKKXji
【放射線ホルミシス効果】 全部バラしてヤバいよって言った方が、セルフガードするからいいと思います
http://2chb.net/r/liveplus/1545534951/l50
【嘘HK】 放射能と無関係を装って「心筋梗塞激増」
http://2chb.net/r/nhk/1541301264/l50

460デフォルトの名無しさん2018/12/23(日) 16:37:35.74ID:yKwr45+F
そうですか使ってましたか。
私のところでは、DB自体に投入する前加工もSASでやっている。もう30年になるの
で、SASに投入するデータの加工はSAS事態でやっている。SASに渡すために
前処理する必要は全くなく生データからDBローディングまですべてSASで行っている、
UNIX上で扱うデータなら扱えないデータは基本ないので。
といっても、ここはPowerShellの掲示板なので、以降この話は控えます。

461デフォルトの名無しさん2018/12/23(日) 16:59:42.72ID:qffc/3mK
SASなんかで加工してたら
まず限界時間にまに合わない
とてつもない大量のテーブルかつとてつもない大量のレコードがあるからな

SASおいてる計算機では
計算機に休む暇を与えてはいけない
投入以外の余計な処理をしてはいけない
この条件でひたすら投入のみになる
これで限界時間ギリギリになる

こんな状態でも予算つけてくれなかったからな

462デフォルトの名無しさん2018/12/23(日) 17:03:29.12ID:vUOt1bO/
>>461
そりゃ逆、あるいは作りが悪いか作っている人が知らないから
私がUnixのシェルを知らないのと同じようにSASを知らない人が
作ってるからだと思う。

463デフォルトの名無しさん2018/12/23(日) 17:41:39.11ID:9AXglOVX
SAS自慢は別にスレ建ててやってくれ
1ミリも興味ないし

464デフォルトの名無しさん2018/12/23(日) 18:11:00.48ID:vUOt1bO/
みんな知っていたんだろうが、私は今はじめて気が付いたんだが
import-excel
export-excel
などなどが、知らないうちにサポートされていたんだ。

早速使ってみる。
いままで自分でしこしこやっていた。

465デフォルトの名無しさん2018/12/23(日) 18:29:11.84ID:vUOt1bO/
使ってみたが、シートが大きくなるとめちゃくちゃ遅い
う〜〜ん・・・・

466デフォルトの名無しさん2018/12/23(日) 18:59:18.04ID:9AXglOVX
>>464
これ?
https://github.com/dfinke/ImportExcel

標準でサポートしたのかと思ったわ

467デフォルトの名無しさん2018/12/23(日) 19:26:10.52ID:vUOt1bO/
>>466
入れた記憶がないんだけど・・・・それを入れたんだろうな
ボケが始まったかな?

そういえば、excelなしでexcelファイル生成みたいな話でそれをダウンロード
していたかもしれない。ちょっと喜んだんだが、xmlベースでのこの処理は
ちょっと私からすると使い物にならない。

仕方ないんでお手製の、comobject利用で行きたいと思います。

468デフォルトの名無しさん2018/12/24(月) 09:16:30.66ID:dTDa6WWm
しかし、この公開モジュールもったいない。改善すれば大変便利
他のサイトで回答したんだけど、データ大きくなければ、結構使える
次の例はexcelブック読んで、性別(列名)の男子だけ抽出して
新たなブック作成した例

(Import-Excel .\Member.xlsx).Where{$_.性別 -eq "男子"}|
Export-Excel .\NewMember.xlsx

これだけでも便利。自分でコマンドレット作っちゃおうかという気が
ムクムクと・・・・

469デフォルトの名無しさん2018/12/24(月) 17:12:10.50ID:X+oEGSDK
SAS : 睡眠時無呼吸症候群 (Sleep Apnea Syndrome)

470デフォルトの名無しさん2018/12/29(土) 14:12:24.74ID:sblaCsBM
多次元配列$aと$bに数値要素を入れて
それらの要素を同じ要素同士で足したり引いたり掛けたりしたものを
同じ構造の多次元配列$cに入れようとしましたが、

powershellの多次元配列の作り方が分かっていないのか、どうしても1つの成分に1つの数値が入りません

$a=@(@(1,2),@(3,4))
$b=@(@(7,8),@(9,10))

$c = New-Object "object[,]" 2,2
だとダメなんですかね?

471デフォルトの名無しさん2018/12/29(土) 14:18:25.07ID:alN1JQ5R
>同じ構造の
同じ構造じゃない
ジャグ配列で検索してみてからまた来てくれ

472デフォルトの名無しさん2018/12/29(土) 15:15:38.87ID:KNALm1aR
>>470
そういう質問もいいけど
一つ上の層に行って、何をしたいかを聞いてみてもいいかもよ。
そこにもっていかなくても良い手段、あるいは適切なコマンドレットが
すでに存在しているかもしれないので。

余計なお世話で失礼かなとは思ったけど。

473デフォルトの名無しさん2018/12/29(土) 15:46:12.70ID:/U5cTh+v
まぁこれだと「ダメです」としか返ってこないもんね

474デフォルトの名無しさん2018/12/29(土) 17:29:03.55ID:sblaCsBM
$a = New-Object "object[,]" 2,2

$a[0,0] = 1
$a[0,1] = 2
$a[1,0] = 3
$a[1,1] = 4

$b = New-Object "object[,]" 2,2

$b[0,0] = 7
$b[0,1] = 8
$b[1,0] = 9
$b[1,1] = 10

$c = New-Object "object[,]" 2,2

$c[0,0] = $a[0,0] + $b[0,0]
$c[0,1] = $a[0,1] + $b[0,1]
$c[1,0] = $a[1,0] + $b[1,0]
$c[1,1] = $a[1,1] + $b[1,1]

echo $c

出来ました
ありがとうございました

475デフォルトの名無しさん2018/12/29(土) 17:52:09.19ID:sblaCsBM
$a = New-Object "object[,]" 2,2

$a[0,0] = 1.0
$a[0,1] = 2.0
$a[1,0] = 3.0
$a[1,1] = 4.0

$b = New-Object "object[,]" 2,2

$b[0,0] = 7.0
$b[0,1] = 8.0
$b[1,0] = 9.0
$b[1,1] = 10.0

$c = New-Object "object[,]" 2,2

$c[0,0] = 0.4*$a[1,0] + 0.6*$b[0,1]
$c[0,1] = 1.2*$a[0,0] + 0.2*$b[1,1]
$c[1,0] = 0.6*$a[0,0] + 0.8*$b[1,1]
$c[1,1] = 0.3*$a[1,0] + 0.7*$b[0,1]

echo $c

PS [ディレクトリ] .\array3.ps1
6
3.2
8.6
6.5

こういうのも出来ました
ありがとうございました
2乗とか平方根とかも入れてwhileで多数回回して時代遅れのカオス論ごっこで楽しみます

476デフォルトの名無しさん2018/12/30(日) 16:51:48.83ID:Tt0EhWYe
よかったよかった

477デフォルトの名無しさん2018/12/31(月) 02:48:07.85ID:E3GRK6g9
Ruby の行列を使った方が良さそう

478デフォルトの名無しさん2018/12/31(月) 06:10:51.81ID:hv1/uFm+
>Ruby の行列を使った方が良さそう

わざわざRuby使うくらいならR使うでしょうに

479デフォルトの名無しさん2018/12/31(月) 10:17:55.48ID:4o6gq25f
Get-Chlditem の -System オプションて機能してなくね? 5.1と6.1で検証した
https://docs.microsoft.com/ja-jp/powershell/module/Microsoft.PowerShell.Management/Get-ChildItem?view=powershell-6

480デフォルトの名無しさん2018/12/31(月) 10:51:50.10ID:4o6gq25f
使えないのでこんな風にしてる
gci -force |?{$_.Mode -match 's'}

481デフォルトの名無しさん2018/12/31(月) 13:52:03.55ID:i7poOdM+
>>479-480
普通に機能してるけど?
cmd.e xeのdir /asみたいなことを期待してるならGet-ChildItem -Force -Systemでいけるかと

482デフォルトの名無しさん2018/12/31(月) 20:02:41.24ID:4o6gq25f
-force ないと機能しないのか…

483デフォルトの名無しさん2019/01/01(火) 03:34:35.89ID:ssh3fXac
Ruby の行列では、

a = Matrix[[1, 2], [3, 4]]
b = Matrix[[7, 8], [9, 10]]

p a + b

結果
[[8, 10], [12, 14]]

484デフォルトの名無しさん2019/01/01(火) 09:29:48.04ID:HeFEoGOE
>>482
仕様が違うだけ
Get-ChildItem の -System は単なるフィルター
dir の /a オプションは -Force 相当の機能を含んでる

485デフォルトの名無しさん2019/01/01(火) 10:43:40.32ID:ISJZg14N
Rならこんな感じになるのかな?

a <- matrix(1:4, 2, 2, byrow=T)
b <- matrix(7:10, 2, 2, byrow=T)

a <- a[,1]
b <- b[,2]

matrix(c(0.4, 0.6, 1.2, 0.3), 2, 2)
* rbind(rev(a), a)
+ matrix(c(0.6, 0.8, 0.2, 0.7), 2, 2)
* rbind(b, rev(b))

結果をimage関数に渡してループすると綺麗にチカチカするんだろうか

486デフォルトの名無しさん2019/01/01(火) 16:03:09.00ID:T6MHXAKy
SAS/IMLだと

a={1 2,3 4};
b={7 8,9 10};
c=a+b;
print c;

487デフォルトの名無しさん2019/01/01(火) 16:25:47.24ID:BBGreIch
行列系数値計算ならJuliaも使いやすい
a = [1 2; 3 4]
b = [7 8; 9 10]
print(a + b)

488デフォルトの名無しさん2019/01/01(火) 16:57:52.05ID:UIhiNbM3
はっきりしているのは、どれもめちゃ遅い

489デフォルトの名無しさん2019/01/01(火) 16:59:31.69ID:UIhiNbM3
アルゴリズムを考えたり検証したりには
便利という仕組みですね。
これはこれで価値がある。

490デフォルトの名無しさん2019/01/02(水) 00:00:30.28ID:uM4gOpCa
いろんな言語で書いてくれてるけど
元のソースは行列の単純な和なんて求めてないよね
どうせなら元ソースのエレガントな移植が見たい

491デフォルトの名無しさん2019/01/02(水) 07:11:32.67ID:JfU1VO50
元のソースは何らかのルールに沿ってたものなのでしょうか

492デフォルトの名無しさん2019/01/02(水) 15:30:48.31ID:meZPNJeK
rubyガイジのフリにまんまと乗ったアホ共が悪い

493デフォルトの名無しさん2019/01/02(水) 16:52:22.21ID:sVSsgdXZ
まあ、乗ったというより
別にRubyに求めてないし、それが目的なら
もっといいものがあるよいうことを
Rubyフェチの方に教えてあげただけ。
PowerShellはそこを求めたものとちゃうから。

494デフォルトの名無しさん2019/01/02(水) 16:57:28.69ID:PMrmWLAE
一般人の正月:和歌を読んで批評し合う
逸般人の正月:コードを書いて批評し合う

495デフォルトの名無しさん2019/01/02(水) 17:56:16.48ID:Q1TcDhg4
誤)コードを書いて批評し合う
正)コードを書いてマウントごっこ

496デフォルトの名無しさん2019/01/03(木) 09:21:05.05ID:e4doPVb1
コードも書かずにマウントごっこするよりはマシかな

497デフォルトの名無しさん2019/01/03(木) 14:18:46.18ID:EIDJLiBS
出力内容に日本語(2バイト文字)が含まれているとテーブル表示の際にカラムがズレる、ってのは回避方法がないのかな。
PowerShell -Part 3 	YouTube動画>1本 ->画像>4枚
chcp 437 で英語モードに、って小細工も、Win10/srv2016 以降は出来なくなってる。

# 今気づいたが Unicode の時代に「2バイト文字」って表現は正しくないな

498デフォルトの名無しさん2019/01/03(木) 19:10:30.43ID:9E4VKJOH
あきらめてOut-GridViewを使うとか

499デフォルトの名無しさん2019/01/08(火) 18:45:23.42ID:EC3N2/DB
パワーシェルってカテゴリ的にはスクリプト・プログラム言語?それともWindowsのソフトウェア?

500デフォルトの名無しさん2019/01/08(火) 19:49:18.08ID:GRXV3JJ2
どちらも

シェルと言語に同じ名前が付けられてる(後者はPowerShell Scriptと言ったりするけど)

501デフォルトの名無しさん2019/01/08(火) 20:23:14.66ID:twi+nGjw
なるほど
バッチファイルの場合、言語がMS-DOSでソフトウェアの名前がbatって感じかな

502デフォルトの名無しさん2019/01/08(火) 20:34:38.44ID:GRXV3JJ2
全部ずれてる

503デフォルトの名無しさん2019/01/08(火) 20:45:30.53ID:Ri9uFdMr
bashとシェルスクリプト
command.comとバッチスクリプト
コマンドプロンプト(cmd.exe)とバッチスクリプト
powershell.exeとpowershellスクリプト

504デフォルトの名無しさん2019/01/08(火) 21:11:05.43ID:Ri9uFdMr
つかシェルとシェルスクリプト
PowershellとPowershellスクリプト
が一番わかり易かったな

505デフォルトの名無しさん2019/01/08(火) 22:08:03.20ID:twi+nGjw
むずかしい!w

506デフォルトの名無しさん2019/01/09(水) 02:01:23.48ID:9kxsD7dR
別の言い方としてフロントエンドがある
フロントエンドの形態としてシェル、
シェルの機能としてスクリプトの実行という感じ

507デフォルトの名無しさん2019/01/09(水) 14:51:11.50ID:teNQqIfe
PowerShellができるようになると何がいい?

508デフォルトの名無しさん2019/01/09(水) 17:40:53.83ID:iwuLoYXa
>>507
あなたの職業、PCの使いみち次第なので、そこが明らかじゃないとなんとも言えない。

509デフォルトの名無しさん2019/01/09(水) 19:51:08.47ID:nNa8IYsJ
>>507
職業で使わない前提なら、
Windowsへの追加のインストールなしにそこそこリッチなツールをスクリプト言語で作れることかな

510デフォルトの名無しさん2019/01/09(水) 21:58:57.96ID:LPlKYmug
それな
今どきの企業はセキュリティポリシーがしっかりしていて
PythonだのRubyだの入れたくてもできないからな

511デフォルトの名無しさん2019/01/09(水) 22:13:34.50ID:WxZlp6Z9
>>507
事務職の俺が思うメリット・デメリット。

■PowerShellに限らないプログラミングのメリット
PCを使った繰り返し作業を省力化できる。例えば、
ファイルの名前変更と移動を定型で定期的にやるとか、
同じWebサイトにアクセスして毎回似たようなことをするとか、
お客さんとか他の部署から送られてくる使いづらいExcelのデータを
シンプルな表に整形するとか。

■PowerShellならではのメリット
他の人も書いてるけど、Windowsに最初から入ってる。
スクリプトファイルを渡すだけで同僚にも使ってもらえる。
(起動用のbatファイルとか、タスクスケジューラの設定とかは必要だけど)

■デメリット
全くのプログラミング素人には難しいと思う。
初めてなら、Pythonあたりを先に勉強した方がいいかも。
「パイプラインではオブジェクトが受け渡しされる」とかいわれても
初心者には何のことか分からんと思うし(俺もいまだにしっくり来てない)
適当に解説している入門書とかWebサイトには
「retrun文の後ろの値が、関数の戻り値になります」といった、
嘘じゃないけど嘘に等しいことが書いてあって初心者は訳がわからなくなる。
俺もトライアンドエラーばかりで、きちんと習得できてないです。

512デフォルトの名無しさん2019/01/09(水) 22:16:39.66ID:WxZlp6Z9
間違えた
return文でした・・・

513デフォルトの名無しさん2019/01/09(水) 22:17:35.75ID:nNa8IYsJ
すごいHaskell本を借りて100ページくらい読んだら、PowerShellの関数型風な書き方も割と理解できるようになった

514デフォルトの名無しさん2019/01/09(水) 22:19:11.83ID:nNa8IYsJ
関数型風というか勝手にOut-Defaultがつく挙動がそう見えるだけかもしれないけど

515デフォルトの名無しさん2019/01/10(木) 00:11:38.57ID:jhx89QXs
関数型は、Ruby, jQuery(JavaScript)。
map というメソッドを頻繁に使う

PowerShell(PS)の延長線上に、Rubyがある

バッチファイル → PS
シェルスクリプト → Ruby

バッチファイル・シェルスクリプトは、とにかく、ハマリが多い!
プログラミングに適さない

516デフォルトの名無しさん2019/01/10(木) 00:25:40.33ID:mktY/a5R
dosならまだしもwinで無理やり拡腸されたのはちょっとね・・・

517デフォルトの名無しさん2019/01/10(木) 00:28:19.57ID:FheW454d
>>515
この人は何でいつも同じような論調でどこにでも現れるのだろうか。
やたらruby推しするわりには具体的なrubyの良さが全く伝わってこなくて、むしろマイナスイメージをばら蒔いているような気がする。

518デフォルトの名無しさん2019/01/10(木) 00:33:03.30ID:jxmC/C32
>>516
誤字がひどい

519デフォルトの名無しさん2019/01/10(木) 04:58:55.23ID:Pqz/qBav
>>507
batファイルが書けるよりも何が便利かという視点だと、batがひどいからずっとマシというのがある
batでは初歩的な処理もできなかったり、実現までに手間を要したりする
保守性も悪い

520デフォルトの名無しさん2019/01/10(木) 05:25:45.52ID:nf36oLbM
>>519
それを言うなら、batとvbsやJscriptを組み合わせてようやく出来てたことが、よりPowershellでは少ないコーディングで同等以上の機能を実現できる。て書こうよ

521デフォルトの名無しさん2019/01/10(木) 05:57:47.50ID:Pqz/qBav
>>520
処理をちょっと追加・変更したくなったときにすぐほかの言語の利用や外部コマンド調達が必要になることを含めて、実現までに手間を要する、と言ったんだけどね
vbs等を覚えてそちら主体で書く前提なら、別途そういう視点での比較論を語ってくれ

522デフォルトの名無しさん2019/01/10(木) 06:03:49.10ID:nf36oLbM
MSの意図も、現実の普及や活用もvbsはbatの補間機能だよ、それらの一括後継がPowershell、そんなことを今更説明しなきゃならんとは残念至極
つかvbs覚えずにbatだけでwinの管理ワークなんかできなかったよ

523デフォルトの名無しさん2019/01/10(木) 07:54:48.12ID:e7V8oUZV
パワーシェルとrubyは似てる言語なの?
僕とかパワーシェルマスターベーションなのでruby勉強してみようかな

524デフォルトの名無しさん2019/01/10(木) 12:28:31.19ID:8HdqxYaB
>>517
ruby を NG してる

525デフォルトの名無しさん2019/01/10(木) 17:29:11.64ID:jhx89QXs
そりゃ、Ruby がベスト。
Vagrant, Chef, Homebrew, Redmine も、Ruby

JavaScript(JS)は、Ruby に似せてくるから、扱いやすい。
Node.js のnpm, yarn も、Ruby のBundler そっくり。
GUI は、HTML, CSS, JS

再帰的なディレクトリのファイル操作も、glob がある

オブジェクト指向・関数型・Duck Typing・Open Class など、あらゆるデザインパターンの宝庫

Ruby から、PowerShell も呼べる。
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ダブルクリックで起動したい時だけ、VBS を使っている

ピラフ大王は、PowerShellで、5ch をスクレイピングするほどだけど、
漏れは、Ruby, Selenium Webdriver でやってる

「たのしいRuby 第5版、2016」でも読めば?

526デフォルトの名無しさん2019/01/10(木) 17:49:28.58ID:3kN+h5hG
インテリセンスしょぼすぎ

527デフォルトの名無しさん2019/01/10(木) 18:07:50.47ID:vGEkHdSz
>>524
俺もそうする

528デフォルトの名無しさん2019/01/10(木) 18:08:40.70ID:ct6DIWcV
>>525
わざわざ蕎麦好きが集まる蕎麦屋に出向いて、「うどんこそが至高の麺類。なぜなら〜」って
講釈垂れるのと同じくらいヤボだ、って気づくべき。周りは迷惑してるんですよ。

529デフォルトの名無しさん2019/01/10(木) 18:11:49.88ID:SOl/xRps
どんどんrubyの評判を下げてるのがわからんのかねぇ

5305252019/01/10(木) 18:45:39.00ID:jhx89QXs
漏れは、PowerShell で数行書くなら、Ruby で作ってしまう

クリップボードみたいなのは、Rubyから、PowerShellコマンドを呼ぶ。
ダブルクリックで起動したい時は、VBS・bat を使う

Rubyから、Node.js を呼ぶとか、すべての言語を呼び出せるかも

531デフォルトの名無しさん2019/01/10(木) 18:48:24.32ID:ntFiGaUH
なるほどrubyじゃ何もできないってことだね

532デフォルトの名無しさん2019/01/10(木) 19:03:20.25ID:3kN+h5hG
IronRubyってどうなったの?

533デフォルトの名無しさん2019/01/10(木) 20:51:10.85ID:UUY7OixD
(かつて)仕様書が存在しない処理系を複製するなんてやってられなくなったんじゃないか?

534デフォルトの名無しさん2019/01/14(月) 13:22:32.56ID:i1odpryK
powershellのメリットは対話環境とスクリプトが同一の文法て書けること
ISEやVS codeで小さなブロックの挙動を確認しながら、それらを組み合わせて一連のワークフローを構築できる

『トライ&エラーで作ってる』って方がいたけど、まさにそういったやり方が出来ることが、専門職じゃなくて日常業務の効率化に使ってる自分にとって凄く大きな利点

535デフォルトの名無しさん2019/01/14(月) 16:32:26.56ID:mUB6pFvH
>>534
>powershellのメリットは対話環境とスクリプトが同一の文法て書けること

まさに同じ利点なんだけど、TIPS集みたいな感じでテキストファイルに数行のスクリプトをいくつも集めておいて
必要になったらそこからpowershellウインドウにコピペで即実行できるのがいいね

536デフォルトの名無しさん2019/01/14(月) 17:38:40.92ID:i1odpryK
>>535
それもあるね
psreadline有効にしておけば履歴から同じようなことできるし
unix系で当たり前だったことが、やっと出来るようになったともいえるけど

537デフォルトの名無しさん2019/01/15(火) 07:41:15.21ID:PNg+c5Yb
文化の変化には拒絶反応があるもの
過去のシェルでつけられてきた命令等の名前付けルールを見ても、
今のようにIT文化が広がった時のが目の利用者目線でつけられたものではなく、
あくまでOS周りのシステム開発者と利用者が同一だった時代、要は試行段階の
時代につけられが規則で、今の時代に合わなくなっている。
そこに風穴開けたのは大変良いことだろう。

既存の使い方に慣れた人にとっては、新たな流れは「また覚えることが増える」
「使い方が今までと違う」ということへの拒否反応が少なからずある。

やり取りを見ていて思ったのは、すでに旧来Unix系シェルのルールにのっとって
作られてきたものがレガシーに向かっていると思いたくない、気が付かないひとが
多いこと。時代は変化してゆく。

538デフォルトの名無しさん2019/01/16(水) 08:35:02.57ID:8/OmqdoX

539デフォルトの名無しさん2019/01/16(水) 18:21:31.35ID:Y6YhZRdL
>>538
あんがとさん

540デフォルトの名無しさん2019/01/31(木) 21:35:30.95ID:AeQOSKqu
&{
while($true){
(++$i)
sleep -Seconds 1
}
} | Out-GridView

Get-Date

上を実行すると1秒ごとにカウントされた値がウインドウ表示されるけど、
ウインドウを閉じたときにそれ以降のコマンド(Get-Date)が実行されず終了するのどう回避すればいいだろう・・・?

541デフォルトの名無しさん2019/01/31(木) 21:44:25.79ID:AeQOSKqu
Whileの継続判定を

$stop_form = Start-Job {
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
Start-Sleep -Milliseconds 500
[System.Windows.Forms.MessageBox]::Show("計測停止ボタン")
}

のフォームを使って

while($stop_form.state -eq "running"){...}

のようにもしてみたけれどウインドウ2個表示されるので方法として頭悪い・・・

542デフォルトの名無しさん2019/01/31(木) 22:18:49.56ID:xJsSt9Re
Windows では、よく知らないけど、
Linux では、プロセスに親子関係がある

そして親プロセスが終了すると、子プロセスにも終了メッセージが送られて、
それに何も対処しないと、普通は子プロセスも終了する

つまり、親亀こけたら子亀もこける

シェルから起動したプロセスは、シェルの子プロセスになっている

だからデーモン・サービスのように、親プロセスから切り離すか、
親から終了メッセージが送られても、子が終了しないような工夫をする必要がある

また、パイプラインでは、ジョブという処理単位もあり、
ジョブグループにまとめられて、そのグループ全部に対して作用する

543デフォルトの名無しさん2019/01/31(木) 22:20:50.85ID:wdHuOMr6
>>540
while($true){++$i|out-gridview;sleep -seconds 1;get-date}

544デフォルトの名無しさん2019/01/31(木) 22:33:49.84ID:nQoHUWUF
powershell {
&{
while($true){
(++$i)
sleep -Seconds 1
}
} | Out-GridView
}
Get-Date

545 ◆QZaw55cn4c 2019/01/31(木) 23:10:29.40ID:GI5VQ7Hx
>>542
>デーモン・サービスのように、親プロセスから切り離すか
これ、なんか特別なことをしましたっけ…

5465422019/01/31(木) 23:44:01.11ID:xJsSt9Re
Windows では知らないけど、

Linux なら、systemd で、サービスを起動できる

547デフォルトの名無しさん2019/01/31(木) 23:44:18.82ID:AeQOSKqu
>>543
いにしえのブラクラかと・・・

>>544
一応こんな感じで、runspacepoolで実行するようにはしてみたけれど、
現実にはwhileの中で実行する関数とかをASTの構文解析使って渡してやる必要があって、少し手間なんですよね

Out-GridViewによるプロセス中断を制御できればなと思っていました

548デフォルトの名無しさん2019/01/31(木) 23:57:01.76ID:eCrLlhCC
>Windows では知らないけど、
このひとなんなん
こわい

549デフォルトの名無しさん2019/02/01(金) 07:42:04.59ID:92aZjlm0
>>545
>>542はWindowどころかLinuxもよく理解できてないみたいだからスルーするがよろし
親プロセスなんてどうでも良くてたぶん制御端末がクローズされた時にSIGHUPが送られる話と勘違いしてる

550デフォルトの名無しさん2019/02/01(金) 09:45:34.37ID:CxyFcB/M
>>547
パッと思いつきだけで考えたけど、
Start-Job
Workflow
あたりを使うのはどうでしょうね(未確認)。

551デフォルトの名無しさん2019/02/01(金) 10:57:54.88ID:Df7lr2kE
>>547
Out-GridView だけを、あちらで実行するとか。
GridView に表示するオブジェクトは、スレッドセーフでないといけないかも。

$run = [RunspaceFactory]::CreateRunspace()
$run.Open()
$ogv = $run.CreatePipeline()
$ogv.Commands.Add('ogv')
$ogv.InvokeAsync()

$exec = {$i = 0; for (;;) {(++$i); sleep 1}}

try {
 & $exec | % {if ($run.RunspaceAvailability -ne 'Busy') {throw} $null = $ogv.Input.Write($_)}
}
catch {
 Write-Warning 'GridView が閉じました。'
}

Get-Date

552デフォルトの名無しさん2019/02/02(土) 21:37:38.54ID:GDLTgOlM
もうOut-GridView側の処理は別ps1ファイルで別けて
メイン側からStart-Process に -NoNewWindow -PassThru -Wait つけて終了まで待って
終わったらメイン側の処理に戻ればいいんじゃね
ISEじゃ余分に窓出ちゃうけど直起動なら窓増えないし
結果受け取りが必要なら一手間いるけど

553デフォルトの名無しさん2019/02/03(日) 05:19:27.02ID:U6zkwiYj
PowerShell -Part 3 	YouTube動画>1本 ->画像>4枚

型指定した変数に$nullを代入できないの?

554デフォルトの名無しさん2019/02/03(日) 10:45:58.13ID:p2YNM7CO
PS > [bool]""
False
PS > [bool]$s
False

なので$nullではなく空白が代入されてる
代入の時点で型変換されてる?

555デフォルトの名無しさん2019/02/03(日) 11:34:45.18ID:gZVRTEN5
psのnullはnullじゃないってどこかで記事見たな

556デフォルトの名無しさん2019/02/03(日) 12:12:22.77ID:p2YNM7CO
PS > [string]$s -eq $null
False
PS > $s -eq $null
True

557デフォルトの名無しさん2019/02/03(日) 12:17:47.78ID:sBfvPdNi
型変換が定義されてるっぽいね

558デフォルトの名無しさん2019/02/03(日) 12:58:35.28ID:jpAIKS8U
$nullの型が何なのか調べればわかること
$null.GetType()
You cannot call a method on a null-valued expression.
At line:1 char:1
+ $null.GetType()
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

まとめ
結構嫌な感じですね。

559デフォルトの名無しさん2019/02/03(日) 13:06:40.62ID:KnacfqZI
>>553
[string]::IsNullOrEmpty($s)

NullならTrueが返るから
if([string]::IsNullOrEmpty($s)){ "ぬるだよ"}

560デフォルトの名無しさん2019/02/03(日) 13:52:06.12ID:fFxNo4TL
>>559
[string]::IsNullOrEmpty("") もtrueになるんだが

String.IsNullOrEmpty(String) Method
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.isnullorempty
>指定された文字列が null または空の文字列 ("") であるかどうかを示します。

561デフォルトの名無しさん2019/02/03(日) 14:28:24.77ID:gZVRTEN5
うーむ・・・

[string]$s = $null
$s -eq [string]$null
$s -eq $null
$s.GetType()
True
False

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object


Remove-Variable s
$s -eq [string]$null
$s -eq $null
$s.GetType()
False
True
null 値の式ではメソッドを呼び出せません。
発生場所 行:5 文字:1
+ $s.GetType()
+ ~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) []、RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

562デフォルトの名無しさん2019/02/03(日) 14:38:16.60ID:KnacfqZI
>>560
じゃこんな感じで
[string]$s=$null
if($s -eq [string]$null){"ぬるぬるだよ"}

563デフォルトの名無しさん2019/02/03(日) 14:53:04.55ID:KnacfqZI
可能であれば [string]$s=$null
でなく    [object]$s=$null でよければ
ならば、普通に比較ができるんだけどね

564デフォルトの名無しさん2019/02/03(日) 14:53:36.20ID:KnacfqZI
何でフォントが変わったんだろ?

565デフォルトの名無しさん2019/02/03(日) 17:18:00.01ID:gLy6KBGU
stringやintはC#と同じくnull許容型ではないということだな

[string]$s = $null
$s
// 代入時にキャストされ空文字列になる

[int]$i = $null
$i
// 代入時にキャストされ0になる

[Nullable[string]]$s = $null
$s
// $nullが代入できる

566デフォルトの名無しさん2019/02/03(日) 17:37:25.59ID:KnacfqZI
>>565
>stringやintはC#と同じくnull許容型ではないということだな

C#にstringのnull許容型ってないよね。
参照型には?を付けられないよね。

567デフォルトの名無しさん2019/02/03(日) 17:47:48.25ID:KnacfqZI
>>565
>[Nullable[string]]$s = $null
>$s
>// $nullが代入できる

やってみたら、今度は文字代入するとエラーになるぞよ

Unable to find type [Nullable[string]]. Details: 'System.Nullable`1[T]' 上の Gene
ricArguments[0]、'System.String' が型 'T' の制約に違反しています。

568デフォルトの名無しさん2019/02/03(日) 18:06:20.48ID:gLy6KBGU
ああすまん、[Nullable[string]] はダメだったか
intで動作確認してたわ
では訂正
PowerShellのstringはnullを許容しません、だな

569デフォルトの名無しさん2019/02/03(日) 20:22:36.62ID:wQ2AkwMN
>>566
C#8.0

570デフォルトの名無しさん2019/02/14(木) 06:50:42.41ID:EWDxMe0z
今まであまり気にしてなかったけどPesterってめちゃくちゃ便利なんじゃねえか
他言語で書いたプログラムの結合テストがスゴく書きやすい

571デフォルトの名無しさん2019/02/14(木) 09:06:58.55ID:k6/DH+7Z
>>570
いいもの教えてもらった。ありがとう。

572デフォルトの名無しさん2019/02/14(木) 22:51:37.48ID:8Eclc9m3
powershellの標準出力やエラー出力を、自分で作成したフォームのTextBoxにリダイレクトできないでしょうか?
C#単体ではできたのですが、powershellの出力の仕組みがよくわからないので。
C#のConsole.SetOutやConsole.SetError相当のがないものかと。

573デフォルトの名無しさん2019/02/14(木) 23:42:44.14ID:CDGUBW/T
>>572
Powershellから.Net Frameworkを利用できることは解ってる?

574デフォルトの名無しさん2019/02/15(金) 20:32:06.22ID:VV8Lu8eJ
>>570
かんがえてみれば、VSCodeでC#なんかのひな形生成してるのって
PowerShellだね。同じことやってんだろな。

575デフォルトの名無しさん2019/02/15(金) 22:37:05.29ID:JVFXEcJ1
>>573
既にpowershellスクリプト内のC#で出力用フォームを作っていて、
シェル上から
[System.Console]::WriteLine("hello from System.Console")
でフォームへの出力までは確認できてるのですが、
"hello from Write-Host" | Write-Host
とかのpowershellのパイプラインと結びつける方法が判りません。
という状態です

576デフォルトの名無しさん2019/02/15(金) 23:35:43.92ID:BkaZ3+61
Ruby で、1-liner のフィルタ。
ファイル名を大文字で表示する

ls | ruby -lne 'print $_.upcase'

ARGF を1行ずつ読み込んで、変数$_ に格納する。
ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル

ruby -lne 'print $_.upcase' a.txt b.txt

sed -n, awk をエミュレートしたもの

577デフォルトの名無しさん2019/02/15(金) 23:54:24.30ID:I8iEDAq8
sed、awkでいいな。
わざわざ100倍遅くする必要はない。
そして死ね。

578デフォルトの名無しさん2019/02/15(金) 23:55:34.76ID:Y7lTk+zi
>>572
C#単体ではどうやって実現したの?

579デフォルトの名無しさん2019/02/16(土) 12:36:04.55ID:td/FtdQ5
>>572
write-error とか write-warning とか write-output とか他にも
いろいろあるけど、そのこと言ってる?

580デフォルトの名無しさん2019/02/17(日) 16:02:03.17ID:jxo9FooS
powershellのソース読むとOut関係はそんなインターフェースが無いっぽいのが判ったので
全部%{[System.Console]::WriteLine($_)}に通すことにしました

581デフォルトの名無しさん2019/02/19(火) 01:05:58.24ID:rqZOBHxw
(494,500,"`nズン"),(523,300,"ズ"),(494,250,"ン"),(330,600,"ズン"),(330,250,"ド"),(330,250,"コ")|
%{write-host "`nズン♪";Add-Type -a System.speech;$s=[Speech.Synthesis.SpeechSynthesizer]::new();$s.rate=1;[Console]::Beep(330,500);sleep -m:600}{
write-host -n -f:(10..15|random) "$($_[2])♪";[console]::Beep($_[0],$_[1])}{
write-host -f:(10..15|random) "`n`nキヨシ!!`n";$s.Speak("きいっよおっしぃ いいいっ!");$s.Dispose()}

582デフォルトの名無しさん2019/02/19(火) 11:18:15.41ID:jsQqlcaV
>>581
それ、しゃべるの?うちの環境では喋らなかった。

5835822019/02/19(火) 11:20:37.97ID:jsQqlcaV
>>581
喋ったわ、PCの設定の問題だった

584デフォルトの名無しさん2019/02/19(火) 14:42:09.09ID:cO5Algvr
https://dev.classmethod.jp/server-side/problem-about-awspowershell-netcore-not-autoloaded/

> 4000以上のコマンドをエクスポートしているとPowerShell Galleryでの公開がリジェクトされてしまう

585デフォルトの名無しさん2019/02/19(火) 15:26:18.95ID:xz+0XgYy
似たようなのは、VSCodeでもあるね。
たとえば、C#のコンソールモジュール作ろうとして
dotnet new console -o xxx とやると
dotnet-new はありませんみたいな

586デフォルトの名無しさん2019/02/20(水) 14:59:45.45ID:MrRFAFnZ

587デフォルトの名無しさん2019/02/23(土) 20:34:37.39ID:K6odEV0u
WindowsでしかPS使わないんだけど
早めにWindowsPS5.1から、PS6.1に移行した方がいい?

5.1で作ったスクリプトとか、そのままだと6.1でほぼ動かないよね。

5.1でゴリゴリ作って資産を溜め込むと将来的に困った事になるのかな。
でも、6.1はドキュメントが整備されてなくて、調べるのが辛い。

588デフォルトの名無しさん2019/02/23(土) 21:00:34.25ID:mBphVd+l
OSに標準搭載されるならともかく今は現状維持で良いんでない
スクリプトが軒並み動かんような破壊的な変更では無かったと思うけど

589デフォルトの名無しさん2019/02/23(土) 21:10:17.16ID:K6odEV0u
.net flamework呼び出すスクリプトが多くて
ここをCoreに置き換えないといけないんだよね?
そこが上手くいけるのかなって。

PS自体の互換性は割と大丈夫っぽいんだけど。

590デフォルトの名無しさん2019/02/23(土) 21:26:32.03ID:U8qcMvKV
.NET Coreの範囲だったらいいけど、.NET Frameworkと比べるとすごく狭そうだからなあ

591デフォルトの名無しさん2019/02/23(土) 21:41:56.40ID:QCtZNWil
>>590
そんなにかわらんやろ

592デフォルトの名無しさん2019/02/23(土) 22:07:09.64ID:U8qcMvKV
でもCoreには、Windows formsとWPFが無いよ

593デフォルトの名無しさん2019/02/23(土) 22:20:27.28ID:U8qcMvKV
悪い、俺の知識が古かった
Core 3.0ではサポートされるんだな

594デフォルトの名無しさん2019/02/23(土) 22:42:29.56ID:3sqzQkTc
3.0はdnSpyとか既に導入しているアプリもちょくちょく見るね
SCDにできるのが野良配布の開発者には良さげ

595デフォルトの名無しさん2019/02/24(日) 05:23:00.00ID:EIdikGBL
>>587
ほぼ問題なく動いてるよ

596デフォルトの名無しさん2019/02/24(日) 15:29:42.14ID:aT0Lsbsv
>>595
ってことは、WindowsPS5.1で作っても
後々、6.xに移植するのはかなり容易ってことかな?

597デフォルトの名無しさん2019/02/24(日) 16:23:30.62ID:njB6xu8t
OSチームが謎のps推ししてるんだからそう動作が変わるとも思えない(全く信用はしてないが)

598デフォルトの名無しさん2019/02/24(日) 21:05:12.28ID:JgPRA9Sg
分からない所があるなら、まずは公式ドキュメントを読めよ

PowerShell Core 6.0 の重要な変更
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/breaking-changes-ps6
PowerShell Core 6.1 の新機能 - 破壊的変更
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-core-61#breaking-changes

599デフォルトの名無しさん2019/02/24(日) 21:25:21.67ID:njB6xu8t
encoding以外ほぼどうでもいい内容だな

600デフォルトの名無しさん2019/02/25(月) 06:14:15.76ID:WiC9+kGP
>>595
上で言っているエンコードと、サポートされていない画面系(Forms,WPF)以外は
特段の違いはないと思っていいと思う。

601デフォルトの名無しさん2019/02/25(月) 17:25:12.02ID:PrYchFgA
System.Windows.FormsみたいなWindows固有のGUI系はサポートされない。
今のところこれで困ってる。

Core3.0でサポートされるから、将来的には大丈夫なんだろうか。

602誰かスクリプト教えて下さい、、、2019/02/26(火) 08:07:40.70ID:OWiOsoxx
Windowsサーバのディスク断片化を検知するPowerShell

603デフォルトの名無しさん2019/02/26(火) 08:18:02.82ID:OWiOsoxx
誰か教えて下さい
断片化を検知するパワーシェル
一定の断片化でデフラグするパワーシェル

604デフォルトの名無しさん2019/02/26(火) 09:02:46.40ID:dRkGmNcH
>>603
しつこい

605デフォルトの名無しさん2019/02/26(火) 12:06:29.45ID:DYKZ90LU
>>603
とうとうこっちに来たのか…、要件をまとめられない限り、お前さんに仕事は無理、勿論回答も無理。丸投げなどもっての他、はよ仕事降りて病院行け

606デフォルトの名無しさん2019/02/26(火) 12:13:41.62ID:DYKZ90LU
こいつはWindows板のスレに2/12に登場し、周りから色々アドバイス貰っても、壊れたレコードのように「わかりません、教えてください」を繰り返し「もう来ませんさようなら」と言っては再び現れる
http://2chb.net/r/win/1474175184/373-

607デフォルトの名無しさん2019/02/26(火) 12:24:30.73ID:W0wJxBNy
>>606
なんだそりゃワロタwwwww

608デフォルトの名無しさん2019/02/26(火) 12:41:56.50ID:5MxkS3P7
断片化?
そんな難しいプログラムを、書けるわけないだろ

断片化を判定するようなコマンドなんて、無いだろ?

そういうのは、それ専門の会社が作っている、アプリを使う。
自作できるようなものじゃない

609デフォルトの名無しさん2019/02/26(火) 14:04:50.81ID:xyBbmsCy
Win10だと自動でデフラグするけどな。

610デフォルトの名無しさん2019/02/26(火) 14:29:41.52ID:n1GswSmU
defrag コマンドあるからできるよ

611デフォルトの名無しさん2019/02/26(火) 14:47:12.84ID:iHcW87Sg

612デフォルトの名無しさん2019/02/26(火) 19:16:16.83ID:OWiOsoxx
PS C:\Users\user> Optimize-Volume -DriveLetter C -Analyze -Verbose
Optimize-Volume : Access denied
Activity ID: {dcf03f92-726b-4adb-a208-4f620c23ef63}
発生場所 行:1 文字:1
+ Optimize-Volume -DriveLetter C -Analyze -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (StorageWMI:ROOT/Microsoft/...age/MSFT_Volume) [Optimize-Volume], CimE
xception
+ FullyQualifiedErrorId : StorageWMI 40001,Optimize-Volume

613デフォルトの名無しさん2019/02/26(火) 19:17:18.94ID:OWiOsoxx
PS C:\Users\user> Optimize-Volume -DriveLetter C -ReTrim -Verbose
Optimize-Volume : Access denied
Activity ID: {fd9e0378-9517-49a9-874f-49fdbbafec31}
発生場所 行:1 文字:1
+ Optimize-Volume -DriveLetter C -ReTrim -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (StorageWMI:ROOT/Microsoft/...age/MSFT_Volume) [Optimize-Volume], CimE
xception
+ FullyQualifiedErrorId : StorageWMI 40001,Optimize-Volume

614デフォルトの名無しさん2019/02/26(火) 19:41:44.80ID:4qbJwUeH
これも前ググれと言われてるだろ?
"PermissionDenied"だから原因は明確、PG言語を学ぶ以前の問題

615デフォルトの名無しさん2019/02/26(火) 20:11:15.34ID:OWiOsoxx
考えても分からないから寝ます

616デフォルトの名無しさん2019/02/26(火) 20:12:11.17ID:c/a6AL8h
>>606が警告してるのになんで相手するかな…

617デフォルトの名無しさん2019/02/26(火) 20:20:24.56ID:OWiOsoxx
分からなくてどうしようもないから質問しているのに
要するにスクリプトの構文の意味から分かっていない

618デフォルトの名無しさん2019/02/26(火) 20:43:08.57ID:SZnduWSg
いやPSのエラーは判り難いと思うね
そもそもコマンドライン置き換えたいなら日本語で出すべき

619デフォルトの名無しさん2019/02/27(水) 06:31:25.86ID:KDd7+K01
>>618
UNIX系のシェルに比べたら圧倒的にわかりやすいでしょ

620デフォルトの名無しさん2019/02/27(水) 07:06:27.77ID:KDd7+K01
>>617
みてると、まるきり一切調べようとせずに
出来上がったコーディング教えろという
感じですよね

しかも、PowerShellだけでなく、使用するユーティリティーに
ついてもどちらもまるきり分らないし調べないでの質問。

621デフォルトの名無しさん2019/02/27(水) 07:58:43.59ID:9BuZTaoV
やる気なく、能力も無いと漏らしてるクセに辞退もせず、数ヶ月居座ろうという腹です。
後任に苦労かけるだけ。正常な社会人の要件まとめ能力、調査能力すら失ってるのは精神病としか思えないため、はやく病院に行けと勧めてます

622デフォルトの名無しさん2019/02/27(水) 21:51:13.40ID:KyKRLtdw
数十GBのバイナリファイルを2GB毎に分割したいのですがpowershellで効率よい方法あったら教えてください
C#コード埋め込みでも可です

623デフォルトの名無しさん2019/02/28(木) 14:47:18.94ID:jurbU8zc
>>622
GNUの split コマンドでええんちゃう?
$ split -d -b 2G src dst.

こんな感じに分割される。
dst.01
dst.02
...
dst.99

結合は、
$ cat dst.* > dst
で終わり。

624デフォルトの名無しさん2019/02/28(木) 16:39:52.64ID:bHx/l7mF
>>622
https://stackoverflow.com/questions/4533570/in-powershell-how-do-i-split-a-large-binary-file
に良さげなサンプル関数作ってくれてる奴居るよ

625デフォルトの名無しさん2019/02/28(木) 21:16:57.85ID:VwWxMUG7
ありがたごましうた

626デフォルトの名無しさん2019/02/28(木) 22:01:42.89ID:FWfO9yYH
>>620
なんか日本語ちょっとおかしいし、日本人じゃないのかもな

627デフォルトの名無しさん2019/03/01(金) 00:11:45.93ID:GEdFntp5
byeとか再見とか毎回言う外国人居る??

628デフォルトの名無しさん2019/03/01(金) 05:49:41.07ID:vonrkHCa
『Youは何しにPowerShellに』の撮影かな?

629デフォルトの名無しさん2019/03/01(金) 15:20:53.71ID:o7q1IFCw
powershellでチャットできないですか?

630デフォルトの名無しさん2019/03/02(土) 09:51:56.69ID:iF6Iyi4r
Manage chat rooms in Persistent Chat Server in Skype for Business Server 2015
https://docs.microsoft.com/en-us/skypeforbusiness/manage/persistent-chat/chat-rooms

631デフォルトの名無しさん2019/03/02(土) 12:30:51.54ID:k1Nl7LaS
>>630
ありがとう。結局サーバー借りた方が楽ですね。
あとtermsとかも無料だし使えそう。
pcからpcってリモデス使用でできそうですね。
なかなか勉強になりますわ。

632デフォルトの名無しさん2019/03/02(土) 17:10:56.38ID:J6Ykyvz8
最近プログラムでわからないことググるとQiitaってサイトがやたら出てくるなと思ってたら
いつの間にか日本最大のプログラマーコミュニティになってたんだな
PowerShell -Part 3 	YouTube動画>1本 ->画像>4枚

633デフォルトの名無しさん2019/03/21(木) 21:13:15.16ID:Kce5LZBI
>>570
業務でps1ファイルを大量に使ってるような現場だと
今後標準のテストツールとして採用するところが増えそうだね

634デフォルトの名無しさん2019/03/23(土) 14:31:45.42ID:zukmvcaU
>>632
調べ物があってググると結構な確率で Qiita でヒットするけど、
「初心者がとりあえずやってみた系」「自分だけが理解できる作業メモ系」が
大部分で、間違ってることも少なくない。
(日本語の IT 系個人ブログの大多数がそうだとも言えるが)

なので、最近はググる際のキーワードは極力英語のみにして、
海外のコンテンツから優先して探すようにしてる。

635デフォルトの名無しさん2019/03/23(土) 15:05:59.87ID:AczqyFo9
俺は最初は日本語かな
日本語なら数秒で記事全体を眺めて概要と筆者の腕前を判定できる
そこからちゃんと読むか次のサイトを見るかの見極めが楽
英語だと仮に真実を語っててもそれが期待してた内容と違う場合にそれに気付くまで少し時間がかかる
そもそも英語でも間違ってる記事は少なくない

636デフォルトの名無しさん2019/03/23(土) 18:54:02.90ID:sans/OC7
Qiitaが云々っていうより、最近のgoogleで上位に来るのはgoogleのアフリエイトが
使われているものが優先されていて、特に意図的にアフリエイトだけが目的の
コピペサイトが上位に来るので検索エンジンとして役に立たなくなってきてる

まぁ、キーワードうまく絞れば見つかることも多いし、なれと面倒くささも手伝って
google日本語2ページ、google英語2ページ、bing、duckduckgoって感じで最近は
検索してるかな

637デフォルトの名無しさん2019/03/23(土) 18:57:03.05ID:sb/buXjf
euの脅しのお陰でchromeのデフォルト検索エンジンにduckduckgo選べるようになってるなw

638デフォルトの名無しさん2019/03/23(土) 20:27:48.56ID:9w+Nt8ul
>>634
第三者の情報を利用しているのに、
コミュニティなんだから、自分で精査すればいいだけ。
その手間もおしいとか?w

639デフォルトの名無しさん2019/03/23(土) 21:48:53.64ID:PK70pzz9
>>636
マップもぶっ壊れてるしgoogle落ち目だな

640デフォルトの名無しさん2019/03/24(日) 13:06:39.33ID:0UFOFyyE
euは一体何様なんだ?

641デフォルトの名無しさん2019/03/25(月) 03:07:23.90ID:UZnjqkvB
ConvertFrom-Csv って、#で始まる行はスキップしてくれるのかな?

Get-Content .\list.txt -Encoding UTF8
url1 file1
#url2 file2
url3 file3

Get-Content .\list.txt -Encoding UTF8 | ConvertFrom-Csv -Delimiter " "
url1 file1
url3 file3

これって、ヘルプに見当たらないんだけど、何かのオプションの初期値で決まってるの?
# PSVersion 5.1.17763.316
https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/ConvertFrom-Csv?view=powershell-5.1

642デフォルトの名無しさん2019/03/25(月) 05:27:00.32ID:jHLU9O87
>>641
調べたらコメントとして処理してるわけでもなくてパイプライン入力だと#Typeとかいうよくわからない識別子の判定時に捨てられてるようだ
https://github.com/PowerShell/PowerShell/blob/master/src/Microsoft.PowerShell.Commands.Utility/commands/utility/CSVCommands.cs#L1353
なので一つの文字列として渡すと無視できる

$a = Get-Content .\list.txt -Encoding UTF8
$a -join "`n" | ConvertFrom-Csv -Delimiter " "

あとパイプラインでも改行が\nのみだと挙動が変わったりするけどバグなんじゃないのこれ

6436412019/03/25(月) 15:55:58.17ID:UZnjqkvB
>>642
おー、ありがとう(*^▽^*)
確かに Raw オプションで読み込むとスキップされなかった。
Get-Content .\list.txt -Encoding UTF8 -Raw | ConvertFrom-Csv -Delimiter " "

Export-CSVがデフォルトで出力する型情報を無視するようにっていう意図なのかな?
#TYPE System.Management.Automation.PSCustomObject

"#TYPE"始まりを無視しようとして "#"始まりを無視しちゃダメな気がするけど...(´・ω・`)

644デフォルトの名無しさん2019/03/25(月) 21:10:47.02ID:E8OEO5vB
powershell謹製の定型入出力処理って大抵どっかが糞だよな
C#でさくっとコード埋め込んだ方が速い

6456412019/03/26(火) 03:30:50.37ID:7kgkCpnE
>>643
あ、違うか。 >>642 の言う通り、#TYPEの判定時に捨てられちゃってるんだね。
#始まりで#TYPEだったら型情報を返すけど、そうじゃなかったらnullにしちゃってるから#始まりは(#TYPE以外)一律落ちちゃうってことか。
型情報以外の#はコメントだから落とそうという意図なのか、意図せずなのかはよくわかんないけど。

646デフォルトの名無しさん2019/03/26(火) 07:15:12.47ID:yaU1CQab
そういう場合はコメント扱いか将来の予約用として設計するケースが多いかな
癖のある部分がしっかりドキュメント化されてるといいんだけどね

647デフォルトの名無しさん2019/03/27(水) 00:37:50.64ID:Y2V1g2tl
ドキュメント化されてない糞言語機能なんて使えんわな

648デフォルトの名無しさん2019/03/29(金) 08:30:26.38ID:CjsaVqOU

649デフォルトの名無しさん2019/03/29(金) 12:30:11.33ID:N4KkVZCo
>>648
Microsoft Update で pwsh のアップデートが提供される、ってのはいつになるのかね

650デフォルトの名無しさん2019/04/06(土) 09:01:31.22ID:d6ZNnt3i

651デフォルトの名無しさん2019/04/06(土) 10:23:45.60ID:DpBRf5ef
>>650
Windows PowerShellとPowerShell Coreが統合されるのか

652デフォルトの名無しさん2019/04/06(土) 18:19:21.57ID:VUIBvQ2c
.NET使えたりC#埋め込めるってだけでps自体には何も魅力を感じない

653デフォルトの名無しさん2019/04/06(土) 19:36:51.47ID:YyWMpA9h
なら、こんなスレ見るのやめたら?

654デフォルトの名無しさん2019/04/07(日) 07:15:21.58ID:WD9Sfyky
>>651
当初からの既定路線です

655デフォルトの名無しさん2019/04/07(日) 11:08:35.13ID:gun2agJ4
>>652
C#スクリプトでも使ってろよ

https://msdn.microsoft.com/ja-jp/magazine/mt614271.aspx

656デフォルトの名無しさん2019/04/07(日) 21:27:45.92ID:KO8gpU7g
良かった
これでわざわざコアを入れなくてもWindowsデフォルトのPSがメンテされるのかな?
本家であるWindowsデフォルトのPSを冷遇するMSに腹が立ってたんだ

657デフォルトの名無しさん2019/04/08(月) 14:15:31.94ID:flU0/mvo
オブジェクト指向(class、Add-Member)はあまり使わないのかな?

658デフォルトの名無しさん2019/04/08(月) 19:02:08.74ID:sE/xXtkV
それらを即ちオブジェクト指向ってまとめられると語弊があるけど
PowerShellでわざわざクラスをつくるメリットがあまりないんで使わないかな
C#側で作ってそれを利用するモジュールはよく見かける
PowerShellでつかうんならメソッド生やすよりパイプ入力に対応した関数を作ったほうがそれらしいから

659デフォルトの名無しさん2019/04/08(月) 21:12:55.80ID:BZrWgE85
Coreもデフォでインストールして欲しいんだが。

予定あるのかね。

660デフォルトの名無しさん2019/04/08(月) 21:33:20.59ID:GoiTTqTj
>>657
classはわかるけどオブジェクト指向とAdd-Memberになんの関係が?

661デフォルトの名無しさん2019/04/08(月) 23:22:18.02ID:zFFjnYPT
>>660
バージョン古いとAddMenberなしで振る舞い定義できんやん

662デフォルトの名無しさん2019/04/09(火) 06:55:48.14ID:WguqqX2K
>>661
ああ、そういう意味か
その時代は構造体代わりにAdd-Member使う程度だったな
class使えるようになってからは普通にオブジェクト指向って言うか他の言語と変わらん程度には使う

663デフォルトの名無しさん2019/04/09(火) 18:59:23.20ID:W7MAWXJx
標準搭載になる予定みたいね。

マイクロソフト、「PowerShell 7」を発表--5月にプレビュー版を公開へ
https://japan.zdnet.com/article/35135464/

664デフォルトの名無しさん2019/04/12(金) 09:48:45.13ID:FkqjpuHe

665デフォルトの名無しさん2019/04/13(土) 11:52:50.01ID:agvTDDTm
2019年人気&嫌われプログラミング言語ランキング- Stack Overflow
https://news.mynavi.jp/article/20190412-807191/

「Bash/Shell/PowerShell」とひとくくりにされていることに激しく違和感

666デフォルトの名無しさん2019/04/13(土) 22:04:36.80ID:cCi57egk
PS単体だと空気だし

667デフォルトの名無しさん2019/04/14(日) 10:51:28.73ID:x8HUstxk
俺達のbashが空気だっていうのか!

668デフォルトの名無しさん2019/04/18(木) 08:38:59.87ID:19FvTfVH
リモートで各Windowsサーバのhostsファイルのメンテナンスをしたいのですが、いいサンプルなどはありませんでしょうか?

669デフォルトの名無しさん2019/04/18(木) 08:59:31.67ID:JGuMcupo
サンプルもクソもないだろ…hostsファイル更新は管理権限が必須、それだけの話

670デフォルトの名無しさん2019/04/19(金) 07:26:06.94ID:gmGy9oTC
ls -name | ruby -ne 'puts $_.center(20, "-")'

これは、Linux では問題ないけど、
Windows のPowerShell で実行すると、Ruby の文法エラーになる

これで、ダブルクォーテーションをエスケープすると、正常に動く。
\"-\"

どういう事?
" は、Rubyに渡る際に、何かに変換されてしまうのか?

エスケープしない書き方は、出来ますか?

6716702019/04/19(金) 07:41:35.36ID:gmGy9oTC
自己解決した!

ls -name | ruby -ne 'puts $_.center(20, "-")'

"-" の部分を、Ruby の% 記法で囲んで、%Q("-") としたら正常に動いた

%Q で、ダブルクォーテーションをエスケープできる。
\"-\"

ただし、Linux では囲んではいけない

672デフォルトの名無しさん2019/04/19(金) 08:20:04.25ID:pitW5bfl
朝からrubyガイジ登場か

673デフォルトの名無しさん2019/04/19(金) 23:14:36.12ID:XlmULy2Z
PS起動が重すぎてとうとうクレームが来た

6744972019/04/20(土) 15:08:25.44ID:59Xq7wbj
Win10_1809 のマシンを新規セットアップ中に気がついたんだが、format-table で
多バイト文字が含まれるデータを表示しても表組みがズレなくなってるな。
PowerShell -Part 3 	YouTube動画>1本 ->画像>4枚

1809 の改良点かと思って別の 1607 も見てみたら、こちらでもズレなくなってるわ。
Windows Update でいつの間にか修正されてたらしい。良かった、良かった。

675デフォルトの名無しさん2019/04/20(土) 19:17:44.43ID:gHzm7Vzg
ps1を別のps1から実行したとき、呼び出したps1の標準出力を呼び出し元のps1で取得する方法ってありますか?
$LASTEXITCODEとか$?には当然入らないですよね

676デフォルトの名無しさん2019/04/20(土) 22:12:38.92ID:BGbzUadU
普通に取得できるけど
どうやって呼び出してんの?

677デフォルトの名無しさん2019/04/20(土) 22:27:38.00ID:gHzm7Vzg
A.ps1が呼び出されるps1としてB,ps1で

.\A.ps1

としてるだけなのですが、どう取得すれば良いのでしょう?

A.ps1の中身は例えばこんな感じの標準出力を吐き出してるだけ
Write-Host "test"

678デフォルトの名無しさん2019/04/20(土) 22:29:25.41ID:BGbzUadU
Write-Hostは画面に表示するだけ
出力するならWrite-Outputか、そもそもPowerShellでは勝手に出力されるから
"test"
とするだけでいい

679デフォルトの名無しさん2019/04/20(土) 22:35:29.57ID:gHzm7Vzg
標準出力を取得したいんですよね
A.ps1はいじれないので

680デフォルトの名無しさん2019/04/20(土) 22:46:00.75ID:BGbzUadU
だからWrite-Hostは標準出力じゃないって言ってるんだが

681デフォルトの名無しさん2019/04/20(土) 22:46:19.99ID:gHzm7Vzg
Write-Hostだと標準出力ですらなくて取得出来ないってことなのかしら?
Write-OutputだとB.ps1側で変数に格納する場合どうすれば?

682デフォルトの名無しさん2019/04/20(土) 22:51:17.48ID:BGbzUadU
標準出力されるなら普通に変数に入れればいいんで
$a = .\A.ps1
とすればいいよ
Write-Hostで出力しようとするスクリプト書いた奴が馬鹿なんだから変えるしかない

683デフォルトの名無しさん2019/04/20(土) 22:52:47.85ID:gHzm7Vzg
あー、普通にいけるね
Write-Hostで書かれてるから上手くいってなかったのか
ありがとうございました

684デフォルトの名無しさん2019/04/21(日) 11:07:01.93ID:vucDkGbp
>>677
$a = . .\A.ps1 6>&1
で取得できる、使ってるPowerShellのバージョンにもよるけど

685デフォルトの名無しさん2019/04/21(日) 15:12:23.52ID:DYRtR1tP
>>684
試したところ確かに取得出来ました
2>&1は試していたのですが、6>&1とは初めてみました
6がコンソールなのかな?
助かりました、ありがとうございます

686デフォルトの名無しさん2019/04/21(日) 19:32:10.42ID:RVTtJDMW
<Japan>
 <Tokyo>
  <Shinjuku Area="Nishi" Type="Kusai"/>
  <Shinjuku Area="Kabuki" Type="Kitanai"/>
  <Shinjuku Area="Okubo" Type="Ikoku"/>
 </Tokyo>
</Japan>

こういうXMLの場合、Type="Kitanai"の子要素があるAreaを取得するにはどうすればいいの?

687デフォルトの名無しさん2019/04/21(日) 20:01:09.97ID:RCGv90ei
$xml = [xml]'<Japan>
 <Tokyo>
  <Shinjuku Area="Nishi" Type="Kusai"/>
  <Shinjuku Area="Kabuki" Type="Kitanai"/>
  <Shinjuku Area="Okubo" Type="Ikoku"/>
 </Tokyo>
</Japan>'

$xml.Japan.Tokyo.Shinjuku |
  Where-Object {$_.Type -eq 'Kitanai'} |
  Foreach-Object {$_.Area}

とか?

688デフォルトの名無しさん2019/04/21(日) 20:31:15.57ID:jwyOkte1
>>686
powershell XPath
でググると色々情報が得られるでしょう

689デフォルトの名無しさん2019/04/21(日) 21:24:14.09ID:aMzGc0Ck
//Japan/Tokyo/Shinjuku[@Type='Kitanai']

こうかな?
まあ、検索して!

jQuery で、CSS Selector なら、
Japan > Tokyo > Shinjuku[Type="Kitanai"]

690デフォルトの名無しさん2019/04/21(日) 23:45:42.71ID:SQdQ4J0R
xml要素って順序木ってわけでもないから結局forで回すしかないんかね

6916892019/04/22(月) 13:01:10.79ID:A5Rqz7hQ
Ruby のNokogiri では、該当する要素数が0, 1, 複数で、異なる書き方をする。
例えば、該当する最初の1つの要素だけを欲しい場合は、at_css みたいに、at を付ける

jQuery では、それらのすべてで、配列を返すように統一されている

>>689
>//Japan/Tokyo/Shinjuku[@Type='Kitanai']

これは、XPath

692デフォルトの名無しさん2019/04/22(月) 15:02:53.67ID:3J9RCiSz
Select-Xml -xml file "/tokyo/shinjuku/[@type='kusai']"
>>691
またrubyガイジの独り言

693デフォルトの名無しさん2019/04/22(月) 17:18:16.81ID:KTQxmf3k
>>691
糞にまみれて死ね

694デフォルトの名無しさん2019/05/07(火) 04:02:54.07ID:aR2V8MII
Microsoft unveils Windows Terminal, a new command line app for Windows
https://www.theverge.com/2019/5/6/18527870/microsoft-windows-terminal-command-line-tool

695デフォルトの名無しさん2019/05/07(火) 04:35:30.79ID:aR2V8MII
The new Windows Terminal


696デフォルトの名無しさん2019/05/07(火) 09:29:44.47ID:uoqudFNG
>>694
素晴らしい!けど、20年前にやってほしかったな・・・。

697デフォルトの名無しさん2019/05/07(火) 12:36:36.82ID:p0H+1JvB
powershell7と.NET5で大分見通しが良くなるな

698デフォルトの名無しさん2019/05/07(火) 12:40:22.14ID:ZCZ3c4oa
ん?
大分とpowershellが関係あるのか?

699デフォルトの名無しさん2019/05/07(火) 12:47:57.26ID:uoqudFNG
>>698
大分県で開発者会議が予定されてる

700デフォルトの名無しさん2019/05/07(火) 12:59:48.38ID:Ok8kB8ur
漫才かw

701デフォルトの名無しさん2019/05/07(火) 19:37:55.51ID:T//WWibe
すべってるぞ。
おお痛!なんちゃって。

702デフォルトの名無しさん2019/05/08(水) 07:32:11.87ID:m3CbCT8F
Windows PowerShell ISE なら
$Error[0]. できちんとインテリセンスの候補が出てくるんだけど
PowerShell Core だと配列と勘違いしたままの候補を出してきます。

何か設定しないといけないのかそういう不具合なのかどちらでしょうか

703デフォルトの名無しさん2019/05/08(水) 22:29:50.31ID:VmC21Scz
ISEとコンソールは動作がかなり異なる
不具合と言ってよい

704デフォルトの名無しさん2019/05/10(金) 15:15:49.46ID:cKAyPz2z
PowerShell をしばらく使い込んでから久しぶりに bash とかの Shell script をいじると、ものすごく原始的に感じる。
原理主義者から罵声を浴びそうだけど。

705デフォルトの名無しさん2019/05/10(金) 15:21:30.53ID:j4eHz/16
bashは速い、コマンド短い、リナ鯖でデフォで動くのでpsとは使い道が違うかな

706デフォルトの名無しさん2019/05/13(月) 23:26:25.83ID:hyOZOxip
もっさもさのゴミ

707デフォルトの名無しさん2019/05/14(火) 21:36:16.08ID:Umyq8Om1
速度が重要な処理はスクリプトじゃなくてC言語で書けばいいんだよ

708デフォルトの名無しさん2019/05/17(金) 23:14:58.14ID:84kT7PGy
そもそもLinuxの場合はスクリプトないと使い物にならないという問題があるから。

709デフォルトの名無しさん2019/05/18(土) 09:08:41.54ID:CdqDIO7E
バイトストリームしかないくせにテキスト至上主義とか言ってるのはギャグなんだろうか

710デフォルトの名無しさん2019/05/21(火) 17:37:00.04ID:nuXn2mIW
sample.csv
---------
A,B,C,D,E
あ,いう,えおか,きくけこ,さしすせそ


Get-Content sample.csv | ConvertFrom-Csv | Format-Table
Get-Content sample.csv | ConvertFrom-Csv | Format-Table | Out-File sample.txt

コンソール画面ではレイアウトは正常なのに、Out-Fileすると半角全角違いの影響なのかレイアウトが崩れてしまう。
コンソール画面のとおりにテキスト出力する方法ありませんか?

711デフォルトの名無しさん2019/05/21(火) 18:05:39.20ID:1dtSHonA
コンソールは座標決め打ちできるからじゃねーの
外人がマルチバイトの事なんか考慮してるわけねーよ

712デフォルトの名無しさん2019/05/21(火) 18:23:53.35ID:1jccaJmM
帳票整形に異常なまでに神経を使うのは日本だけ

713デフォルトの名無しさん2019/05/21(火) 18:34:34.88ID:5U/ewrLb
Excelでも使っとけ

714デフォルトの名無しさん2019/05/22(水) 05:48:45.20ID:okzMK2Wd
>>712
しがない派遣な俺はそういうとこ気使わんとすぐ切られちまうのよ

715デフォルトの名無しさん2019/05/22(水) 07:11:49.10ID:62koVQSH
もうやだこの国

716デフォルトの名無しさん2019/05/22(水) 11:47:23.28ID:F+bTsM9Q
そもそも表作るためのソフトじゃないやろ
そういうソフトを組み込むのは簡単ちゅう代物
そこを生かさないとね

717デフォルトの名無しさん2019/06/04(火) 11:05:53.37ID:PR65wrLt

718デフォルトの名無しさん2019/06/04(火) 20:36:15.02ID:BylyrmWo
>>717
update-pwsh みたいなコマンドレットでアップデートできるようにならんかのう

719デフォルトの名無しさん2019/06/04(火) 21:01:40.96ID:bsTOoaq8

720デフォルトの名無しさん2019/06/05(水) 15:44:43.15ID:FhACL5FX
chocolateyはpowershellモジュール版もあるけど通常版とは別管理になるのが惜しい
普通に通常版使っといた方が楽なのはわかるんだがコマンド脱却してコマンドレットだけにしたくなる

721デフォルトの名無しさん2019/06/11(火) 20:56:21.53ID:ziX2s9yQ
非推奨になったSend-MailMessageを使えって、ホントに正しい?

その知識、ホントに正しい? Windowsにまつわる都市伝説(137):
Windows Server標準のメール通知の機能不足は「Send-MailMessage」コマンドレットで解決!
https://www.atmarkit.co.jp/ait/articles/1906/11/news006.html

722デフォルトの名無しさん2019/06/11(火) 21:01:49.48ID:6DBwhRzC
Powershellクラスタが騒いでたのはこれか

723デフォルトの名無しさん2019/06/12(水) 09:43:55.62ID:kgH69nQx
>>721
4年前の案件では Net.Mail.SmtpClient() を使って処理したな。理由は忘れた。
ところで、非推奨って話の情報源はどちら?探せなかった。

724デフォルトの名無しさん2019/06/12(水) 09:51:22.78ID:jw1ViI3v
>>723
そのSmtpClientが非推奨になってSend-MailMessageもSmtpClien使ってるから廃止しようってことらしい

https://github.com/PowerShell/PowerShell-RFC/blob/7c0ba6068e5ac00cec0f69d92923d210c05b24f5/1-Draft/RFCXXXX-Send-MailMessage.md

725デフォルトの名無しさん2019/06/12(水) 16:39:19.29ID:kgH69nQx
>>724
なるほど〜、これからは MailKit が推奨ってことね。ありがとう。

>>721 だけど、OS 標準機能だけでお手軽に、手っ取り早く SMTP AUTH や
SMTP over SSL でアラートメールを送信するだけなら「アリ」だと思うね。
要するに、「要件次第」。

726デフォルトの名無しさん2019/06/13(木) 12:15:28.51ID:p0mjXhjx
質問します

WindowsServer2012R2をWin10からリモートで使っています。

get-ExecutionPolicyは
RemoteSigned

スクリプトは例えばこんな感じです
test.ps1
$AA=Read-Host "入力"

PowerShellSEからtest.ps1は実行成功。
PowerShellを起動し./test..ps1で実行成功。
エクスプローラーからtest.ps1を右クリックからPowerShellで起動しようとすると
一瞬PowerShellが起動するが何も実行されず終了。

どの辺を修正すればよいかアドバイスをいただけますでしょうか

727デフォルトの名無しさん2019/06/13(木) 23:02:42.88ID:UGCqyxPq
>>726
リモートデスクトップ試せないけど、とりあえずリモート先のイベントログ見たら?
ローカルなら
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file ps1フルパス名 -Command if((Get-ExecutionPolicy ) -ne AllSigned) { Set-ExecutionPolicy -Scope Process Bypass }
が実行されるけどね

728デフォルトの名無しさん2019/06/16(日) 19:28:37.13ID:sa5lhoiI
-Recurseって、ForechObjectのLazy評価と相性悪いのね。

729デフォルトの名無しさん2019/06/18(火) 06:16:59.21ID:3nOE2mBA
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
http://2chb.net/r/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。

730デフォルトの名無しさん2019/06/19(水) 19:17:38.02ID:TWs5Iott
VBAからPowerShell呼びたいのだがシェルコマンドとして実行するしかないのかね?
C#だとSystem.Management.Automationが使えるがCOMじゃないのだよねコレ

731デフォルトの名無しさん2019/06/22(土) 01:23:30.12ID:3TgqxsPN
>>730
VBA詳しくないから合ってるか知らないけど、ExecPowerShellコマンドは使えるんでない?

732デフォルトの名無しさん2019/06/22(土) 13:27:06.92ID:DZJ/hc7X
シェルコマンドの何が不満なのかさっぱり

733デフォルトの名無しさん2019/06/24(月) 23:49:52.33ID:+JWJYT3O
以下の Data.txt と Format.txt がある状態で<実行結果>を得るにはどのようなスクリプトを書けば良いのでしょうか?
Get-Contentを使うのだと思うのですが、改行の入れ方がよくわかりません。


<Data.txtの内容>
1111111111abcde2223333333

<Format.txtの内容>
10
5
3
7

<実行結果>
1111111111
abcde
222
3333333

734デフォルトの名無しさん2019/06/25(火) 00:37:21.55ID:crlTuLoY
ひどいレベルの低さだな、変数と代入と展開だけ。試行錯誤すれば5分で答えでるだろ。

735デフォルトの名無しさん2019/06/25(火) 10:30:56.60ID:oiRmP0Xi
教育問題は自分で考えて解かないと意味が無いよ

736デフォルトの名無しさん2019/06/25(火) 12:26:30.04ID:z/YFlONv
>>733
テストしてない
https://pastebin.com/Gb69xRW7

まずは何でもかんでもgetType()してみる癖をつける事から

737デフォルトの名無しさん2019/06/25(火) 17:28:39.42ID:NjnEAwoB
$s = "1111111111abcde2223333333"
10,5,3,7 | % { $n = 0 } { $s.Substring($n, $_); $n += $_ }

7387332019/06/25(火) 21:04:00.53ID:SYrWEeYW
>>736
わざわざありがとうございます!
ちょっと動かし方を確認してから動かしてみます。

>>737
そのままPower Shellウインドウに貼り付けたら>>733の<実行結果>を得ることができました。
私には高度ですが調べてみます。ありがとうございます。

>>734-735
Power Shellを始めたばかりなんで一旦ベテランの方の回答を見させてもらおうと考えてしまいまして…
とりあえず頂いた回答を全力で分析します。

739デフォルトの名無しさん2019/06/28(金) 22:35:51.43ID:7dQVY7x3
>>736
今どきはこんな便利なソース貼り付けサイトがあるんだなあ

740デフォルトの名無しさん2019/06/29(土) 00:07:50.83ID:rLR7TtJ0
Pastebinは相当前からあったけど・・・

741デフォルトの名無しさん2019/06/29(土) 06:29:56.03ID:G7+AZKsr
Qiita、GitHub、teratailでもpastebinモジュールが中で使われてるよね、でもpastebin.comは単体で便利

742デフォルトの名無しさん2019/07/01(月) 12:57:19.36ID:fiA0UtsU
>>739
ただのGistのパクリなんだが。。

743デフォルトの名無しさん2019/07/01(月) 14:19:02.73ID:O1pDJEnN
Ruby で作った

str = "1111111111abcde2223333333"

nums = <<"EOT".lines( chomp: true ).map( &:to_i ) # 数字の配列。改行は削除
10
5
3
7
EOT
#=> [10, 5, 3, 7]

i = 0
nums.each do |num|
puts str[ i, num ] # 位置i から、num個の文字列
i += num
end

744デフォルトの名無しさん2019/07/01(月) 14:41:57.11ID:YzHO/9WR
>>743
どうでもいい

745デフォルトの名無しさん2019/07/01(月) 16:21:19.60ID:MoEwNeEz
>>743
死ね

746デフォルトの名無しさん2019/07/02(火) 21:03:55.04ID:IFMrsVTJ
教えてくださいエロい方
初心者なりに頑張ってwpfでxmlデータをツリー表示させたのですが、
テンプレートで定義したボタンにクリックイベントをつける方法がわかりません・・

@見た目:       xaml
Aデータテンプレート: TreeViewのhierarchicalDataTemplate(xaml)
Bデータソース: xmlをxmlDataProviderに読み込んでAにバインド (起動時コード)

アドバイスをお願いします。

747デフォルトの名無しさん2019/07/02(火) 21:36:19.03ID:uMGeffjZ
jQuery なら、後から追加した要素にも、on で、複数のイベントを付けられる

$( 'CSS セレクター' ).on( {
'click': function() { 処理 },

'mouseenter': function() { 処理 }
} );

748デフォルトの名無しさん2019/07/02(火) 22:05:43.99ID:IFMrsVTJ
>>747
むー・・・ あと3日WPFで頑張らさせていただきます!
もしそうなったときはHTMLベースのUIに変換するコード書いてjsで制御しようと思います

7497472019/07/02(火) 22:30:07.10ID:uMGeffjZ

750デフォルトの名無しさん2019/07/02(火) 23:46:29.77ID:TfK25CW5
>>747
後から追加した要素にも、という話ならこっちじゃないのか
$('セレクター1').on('click', 'セレクター2', function() { 処理 });

751デフォルトの名無しさん2019/07/03(水) 00:05:26.64ID:CCtfRBKO
ここが優しい世界か・・・
煮詰まってたけど癒やされたよおお

>>747
xamlで書いた表示要素とコード上のオブジェクトを紐付けるのがx:classらしいんですが、
powershellはx:classをパースできなくて落ちてしまいます(T T)

いまxmlDataProviderの継承クラスをつくって、プロパティにICommandのオブジェクト設定する方法やってみようとしています
トライアンドエラーアンド討ち死にを繰り返してます

752デフォルトの名無しさん2019/07/03(水) 01:47:49.94ID:CCtfRBKO
ふぁああ・・・
だめだぁ ピクリともしない

753デフォルトの名無しさん2019/07/03(水) 12:43:03.67ID:aBGmP+w2
癒やされたよおお
とか、
ふぁああ・・・
とか、顔文字とか気持ち悪い
キャラ作んなくていいから普通に質問して

7547462019/07/04(木) 20:57:41.18ID:BTJ6kVqu
解決しました!
@xmlDataProvider継承したViewModelクラスを作る
ARoutedCommand型のオブジェクトを作成して、ViewModelの公開プロパティにする
BTreeView.DataContextに@を設定する
Cイベントハンドラを $doSomething = { }の形で作る
DCommandBindingオブジェクト作成してAとCを紐付ける
ETreeView.CommandBindingsにDを追加する

FXamlのDataTemplateで定義したButtonのCommand属性:
RelativeSourceとPathを併用してTreeView.DataContext.Aを直接指定する
CommandPerameter={Binding}

これでボタンを押すとCが呼ばれて、commandParameterで渡した引数が $_.parameter に入ってきます

755デフォルトの名無しさん2019/07/17(水) 08:59:27.68ID:9NhZdbVu

756デフォルトの名無しさん2019/07/17(水) 10:10:22.98ID:41FBiYn6
>>755
6系の長期サポート版が欲しいな

757デフォルトの名無しさん2019/07/25(木) 18:27:45.21ID:zfVWvI3/
shellからjarを起動したいのですがjarの引数に変数を入れると落ちてしまいます
直接書くと問題なく動くのですがなぜでしょうか?

758デフォルトの名無しさん2019/08/12(月) 02:48:57.74ID:kdU0FwTT
PowerShellのGet-HelpコマンドでGetType()についてのヘルプを見るにはどうすればいいのでしょう。
Get-Help -Functionality GetTypeとか
Get-Help -Component GetTypeとか
色々やってみたのですが表示してくれません…。

759デフォルトの名無しさん2019/08/12(月) 03:14:57.78ID:k4SaZ4yK
GeTtype()は.NETのオブジェクトのメソッドだからGet-Helpじゃ見れんやろ
Powershellの与り知らんとこだし

760デフォルトの名無しさん2019/08/12(月) 06:13:32.21ID:kdU0FwTT
>>759
そうなんですね。
ありがとうございます。

761デフォルトの名無しさん2019/08/15(木) 08:40:37.86ID:HmFqQFvo
Windows以外でもGUI使えるのか

Out-GridView Returns!
https://devblogs.microsoft.com/powershell/out-gridview-returns/

762デフォルトの名無しさん2019/08/15(木) 19:53:03.53ID:1FEo3MBg
俺の大好きなogv!!

763デフォルトの名無しさん2019/08/17(土) 18:24:44.34ID:2EecLECc
ここの人がPowershell、vbs、C#に精通していると思い質問させていただきます。
C#もまだ覚え中ですが、vbsをC#に移行していました。
最近Powershellを知って、
C#より分かりづらいですが、同じことがC#より短く書けます。
shellで.NETも使えてほぼ何でもできるPowershellに可能性を感じたのですが、
全然盛り上がっていませんw
Powershellをどんどん使っていくか、
C#を覚えていくか、将来性も含めどちらがいいでしょうか?

764デフォルトの名無しさん2019/08/17(土) 18:58:18.44ID:Q0D8gSGr
そんなの状況次第だよ
大雑把に分けるなら
アプリケーションを作りたいならC#
システム管理ツールを作りたいならPowerShell

765デフォルトの名無しさん2019/08/17(土) 19:03:01.90ID:CK+x7f61
用途が違うからC#とは並べるものじゃない
windowsがメインならどっちもできるようになった方がいい
複雑なGUIをPowerShellで頑張って作ってる人見るとごくろうさまですとしか思えんし
PowerShellでさくっと書けるCUIをわざわざVisualStudio入れてC#で書いてビルドしてバイナリ配置して
ソースも別の場所でずっと管理してんの見るとアホだなあと思う
修正の度にソース探してまたビルドしてバイナリ配置して・・・ってなるんだし

あとPowershellのスクリプトの中でC#のコードを書いて使うこともできる
これがまた強力だからどっちも覚えて損はない
(速度はC#が圧倒的に速いから速度的にネックになってる部分だけC#でかくということができる)

将来性についてどっちもMSが力入れてるから気にすることはない
vbsに関して言えば所詮道具だから現状やりたいことができているんならわざわざ移行する必要もない
今んとこMSがWSHを切るって話もないし

766デフォルトの名無しさん2019/08/17(土) 19:11:51.36ID:Ic+b/2I0
Linux 覚えたほうが良さそうw

767デフォルトの名無しさん2019/08/17(土) 20:01:01.84ID:2EecLECc
>>764-765
ありがとうございます
C#はGUIやDLLなどもできるので覚えていきたいです。
最近知ったPowerShellが何でもGUIもできるし、
短く書けておもしろいのでPowerShellに夢中です。
.NETや.csを読み込んで使えたり、
C#も一緒に覚えていけそうです。
用途で併用していきます。

>>766
Linuxもやってますが、PowerShellも入れられるので、
PowerShellが標準になったらうれしいですw

768デフォルトの名無しさん2019/08/17(土) 20:37:46.41ID:fWrg11mT
役割違うからどっちも必要だと思う
Windows技術者じゃなく.NET技術者を目指して勉強して欲しい

769デフォルトの名無しさん2019/08/18(日) 00:06:00.19ID:26pp6bRY
PowerShell の1つ上は、Ruby。
より複雑な、ファイル操作・CSV・テキスト処理・シェルスクリプトなど

例えば、1-liner で、

Linux では、
ls | ruby -ne 'puts $_.center(20, "-")'

Windows では、
ls -name | ruby -ne 'puts $_.center(20, %Q("-"))'

ただし、Windows では、" をエスケープする必要がある。
"-" の部分を、Ruby の% 記法で囲んで、%Q("-") としたら正常に動いた

%, %Q で、ダブルクォーテーションをエスケープできる。\ と同じ。
\"-\"

まあ、VBScript のスレ主のピッコロ大魔王のように、
PS で、5ch をスクレイピングするような猛者もいるけど、Ruby の方が可読性が高い

770デフォルトの名無しさん2019/08/18(日) 00:15:38.74ID:4oEGaRbg
>>769
お前は出てこなくていい

771デフォルトの名無しさん2019/08/18(日) 08:18:26.56ID:vD0MLvXn
>>769
将来性のないプログラミング言語5選として「Ruby」が挙がり話題に
https://it.srad.jp/story/19/08/09/185229/

772デフォルトの名無しさん2019/08/18(日) 22:05:00.38ID:aNJOLvna
WindowsでRuby使うとかギャグだろ

773デフォルトの名無しさん2019/08/19(月) 23:45:41.47ID:6VXOyYrl
RubyがギャグならPythonは?

774デフォルトの名無しさん2019/08/20(火) 00:23:10.44ID:S2+8M2EA
PythonはAIプログラミングで一躍有名になったね

775デフォルトの名無しさん2019/08/20(火) 08:18:30.85ID:trDWBWGh
>>773
Visual Studio が対応してるし、.NET Framework 上で動く IronPython なんてのがあるくらいだから「アリ」だろうな。

776デフォルトの名無しさん2019/08/20(火) 15:46:07.95ID:OusQ3pFE
Windows版のPythonは結構ちゃんと動くし、Python製のGUIアプリもDropboxとかたまにある
WindowsのRubyは非推奨の流れで、WSL使うか仮想環境のLinux使うか

777デフォルトの名無しさん2019/08/20(火) 21:28:48.24ID:n/ZUSiaV
昔、七行プログラミングってあったけど、
PowerShellなら7行ですごいことできるよね

778デフォルトの名無しさん2019/08/24(土) 01:22:08.40ID:kPbBL5c4
csvファイル内の特定セル?(エクセルでいうところのcells(1,2)みたいな)を変数に格納して、
そのファイルのファイル名にしたいのですが、こういったことはできますか?

7797782019/08/24(土) 01:39:25.56ID:kPbBL5c4
できました。import-csvから要素の取り出しをするだけでした。

780デフォルトの名無しさん2019/08/26(月) 04:00:34.51ID:yeIOnWDr
パイプラインにオブジェクトが流れるPowerShellライクな新シェル

Nu Shell
https://github.com/nushell/nushell

781デフォルトの名無しさん2019/08/26(月) 07:51:25.55ID:LOkM9Twk
コマンドプロンプトで、where notepad
と入力すると、メモ帳のパスが、2つ表示されるが、

C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe

PowerShell(PS)で、Get-Command notepad
と入力すると、上の1つだけが表示される。
つまり、PSと、whereコマンドの挙動が異なる!

コマンドプロンプトで、where where と入力すると、
C:\Windows\System32\where.exe

そこで、PSで、where.exe notepad
と入力すると、whereコマンドを呼び出せたので、2つ表示された

782デフォルトの名無しさん2019/08/26(月) 08:31:04.34ID:sAEBXghq
>>781
Get-Command -CommandType Application notepad は試した?

783デフォルトの名無しさん2019/08/26(月) 14:58:24.63ID:R1/Rmq9c
>>781
何を主張したいのかが良く分からんレスだな。
困ってるから何とかしてくれ、とでも言いたいのか?

Get-Command notepad

C:\Windows\System32\notepad.exe
が表示されたは、$env:path で一番最初に見つかったものを表示してるだけだ。
試しに $env:path を変更して、C:\Windows\System32 よりも C:\Windows を先にしてみろ。
$env:path を変更したら、念のため Powershell.exe を開きなおすのを忘れんなよ。

あるいは、notepad.exe が二か所にあることが疑問/不満なのか?歴史的な経緯だ。
実態は c:\Windows\WinSxS\ 以下にあるもので、C:\Windows\System32 と C:\Windows に
あるものはハードリンクだ。
三つとも同じハードリンクなので WinSxS\ 以下のものを特別に「実態」と表現するのは本来正しくないが、
WindowsUpdate の仕組み上、便宜的に「実態」と呼んでも差し支えないだろう。

784デフォルトの名無しさん2019/08/26(月) 15:00:01.45ID:R1/Rmq9c
>>782
Get-Command notepad -all
でも良いんじゃないかな

785デフォルトの名無しさん2019/08/26(月) 15:10:26.74ID:JMmOsJb3

786デフォルトの名無しさん2019/08/26(月) 15:27:38.53ID:j8vvMRg5
>>783
独特の文体からして、この板で有名なRuby君かと思われる。話の流れと無関係にRuby推ししてきたり、頓珍漢な知識披露(間違い多数)をしてきたりする奴だから、相手するだけ無駄だよ。
おそらく、ぼくこんなこと気づいたんだよ!って嬉しくて書かずにいられなかっただけだと思う。

787◆QZaw55cn4c 2019/08/26(月) 19:23:25.35ID:jPNtTojU
>>786
>話の流れと無関係にRuby推ししてきたり
ステキじゃないですか、この前も C/C++ スレに乱入していましたね、これからも頑張って ruby を喧伝してほしいです!

788デフォルトの名無しさん2019/08/27(火) 01:45:40.61ID:OLaosybt
DOSメインでPSでしかできない部分だけPSにしてるのをやめて、PS一本化を増やそうかと思い立ったが
そういやDOSからキックしないと動かないのであった
というわけでやはりDOSメイン

789デフォルトの名無しさん2019/08/27(火) 01:49:02.45ID:OLaosybt
なんでそんな仕様にしたんだろうね
かといってPS直でやりたいというより、DOSを拡張して欲しかった

790デフォルトの名無しさん2019/08/27(火) 02:31:00.22ID:AUeyxvTx
まだDOSなんて使ってんの

791デフォルトの名無しさん2019/08/27(火) 17:41:47.14ID:DT/yO98c
なんでps1てへんてこな拡張子なの

792デフォルトの名無しさん2019/08/27(火) 18:06:41.10ID:JlFv53u2
どっかのゲーム機みたいにPowerShell 2, PowerShell 3, …って作るんじゃね?w

793デフォルトの名無しさん2019/08/27(火) 21:28:53.53ID:2r3hz+dJ
>>791
PowerShell の ps1 ファイルは 何故 1なのか
https://tech.guitarrapc.com/entry/2013/09/06/220944

794デフォルトの名無しさん2019/08/28(水) 02:40:35.65ID:tqyYzyWN
考え無しに作った結果か・・・

795デフォルトの名無しさん2019/08/29(木) 03:16:31.66ID:RYMiansx
基本的なことが分かってない気がするのだけど教えてください
get-date, get-childitem, get-location といったコマンドレットの代わりに
get 無しで date, childitem, location と入力しても同じ結果になる
これら get 無しコマンドは get 付きのエイリアスなのか? と最初は思ったのだけど
そんなエイリアスはないと言われる
これらの get 無しコマンド(?) はどういう立ち位置なんでそ?

ちなみに例えば location.bat とかを PATH の通った場所に置いておくと
そっちが実行されるので、これらはサーチパスより優先度が低いようです

796デフォルトの名無しさん2019/08/29(木) 04:05:52.42ID:TR1/uwdi
>>795
基本的なことはここにまとまってる
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_command_precedence?view=powershell-6#qualified-names

1. Alias
2. Function
3. Cmdlet
4. Native Windows commands

の順に探す
ただこの文書にはGetを省略した場合について書いてない
以下のコマンドを実行すればだいたいわかる

Trace-Command CommandDiscovery { date } -PSHost

すると上記の1〜4の順に探してもコマンドが見つからなかった場合、以下のようなデバッグ出力が見つかる

>The command [date] was not found, trying again with get-prepended

つまり1〜4でコマンドが見つからなかった場合は、頭にGetを付加してもう一回1〜4を探すよってこと

797デフォルトの名無しさん2019/08/29(木) 04:22:51.28ID:RYMiansx
>>796
明快な回答ありがとうございます

> Trace-Command CommandDiscovery { date } -PSHost

これ勉強になりました

798デフォルトの名無しさん2019/08/29(木) 19:25:49.72ID:+UUfxV7s
初心者で右も左もわからない状況で申し訳無いのですが、
明示的に設定してる共有ディレクトリとアクセス権を一括で出力ってできたりするんですかね?

Get-wmiobject -class win32_share
だとアクセス権までは出力されなかったんで...

詳しい方教えて頂きたいです。

799デフォルトの名無しさん2019/08/30(金) 00:19:55.56ID:kVpvpBih
「powershell アクセス権限 確認」で検索!

こんな感じ?

ls | Get-ACL

800デフォルトの名無しさん2019/08/30(金) 10:55:43.01ID:uzgqDeg8
>>799
ありがとうございます。
検索してみます。

PowerShellはほんとに難しいです...

801デフォルトの名無しさん2019/09/06(金) 17:24:06.26ID:LE0BBPZ5
ふぁあああ・・・・
解決してよかったよぉお
ハロー優しい世界、だねええええ^^

802デフォルトの名無しさん2019/09/07(土) 01:23:05.71ID:SOW3zbb3
Set-ACLは使うな

803デフォルトの名無しさん2019/09/07(土) 06:28:56.33ID:jlJXcZnh
>>802
替わりに何を使ったら良いですか?

804デフォルトの名無しさん2019/09/07(土) 06:44:55.31ID:jb/JoUUS
>>802
why?

805デフォルトの名無しさん2019/09/07(土) 10:39:33.44ID:sSufJvsQ
>>804
俺は >>802 ではないが、Set-Acl は使いづらい。
そもそもの理由は Windows の ACL (ACE) が複雑だからなのだが、対象にセットする ACL オブジェクトを作るのが分かりづらい。

例:All Users のスタートメニューのアクセス権を変更し、一般ユーザにも書き換えられるようにする場合(既存の権限に追加)
https://pastebin.com/R3JBWF2h

他のフォルダなどから ACL オブジェクトをコピーし、それをそのままターゲットに適用するだけなら簡単なのだけど。

>>803
「何が何でもすべて PS でやる!」 というポリシーでないのなら、cscls.exe、icacls.exe のほうがお手軽。

806デフォルトの名無しさん2019/09/07(土) 10:48:02.60ID:jlJXcZnh
>>802に答えて欲しいな

807デフォルトの名無しさん2019/09/07(土) 11:08:11.46ID:sSufJvsQ
>>806
ごめんね

808デフォルトの名無しさん2019/09/07(土) 15:10:43.76ID:SOW3zbb3
>>802だけどSet-ACLは所有権絡みで問題抱えてる
下サイトで説明されてる
https://qiita.com/carbonss/items/cc6d33fe6645a86171ad

809デフォルトの名無しさん2019/09/07(土) 15:12:47.14ID:SOW3zbb3
あ、>>803への答えはicaclsコマンド使えね
powershellは変な仕様あるから割と警戒した方がいい

810デフォルトの名無しさん2019/09/08(日) 20:21:13.64ID:d6DJW1MN
F:/ に SDカードがマウントされているのを
アンマウントするコマンドは何ですか?

811デフォルトの名無しさん2019/09/08(日) 21:55:23.61ID:D+CIKcq7
>>810
(New-Object -comObject Shell.Application).Namespace(17).ParseName('F:').Verbs()|?{$_.Name -match '取り出し'}|%{$_.Doit()}

812デフォルトの名無しさん2019/09/09(月) 16:38:34.04ID:8EKyQA8Q
>>811
thanks

813デフォルトの名無しさん2019/09/10(火) 21:38:04.40ID:Eo4YqZPr
■C:\hoge.txtの内容

aaa
bbb
bbb
bbb
ccc
ccc
ccc
ccc
ccc

↑のようなテキストファイルがある場合に、↓の結果(タブ区切り)を得るにはどうすれば良いのでしょうか?

aaa 1
bbb 3
ccc 5

814デフォルトの名無しさん2019/09/10(火) 22:19:37.38ID:L5QX1JAH
>>813
Group-Object

815デフォルトの名無しさん2019/09/10(火) 22:36:34.85ID:hrOpSOVs
頼むから順不同なのかそうじゃないのか
書いてから質問してくれ

816デフォルトの名無しさん2019/09/10(火) 23:28:19.24ID:Eo4YqZPr
>>814
gc C:\hoge.txt | Group-Object
などとやってみたのですがうまく動かず…

>>815
ソート済みです><

817デフォルトの名無しさん2019/09/10(火) 23:30:43.39ID:L5QX1JAH
>>816
上手く動かずじゃよくわからんからどういう出力なのか書いて
エラーになるの?

818デフォルトの名無しさん2019/09/11(水) 00:05:23.05ID:TMos3buL
あータブ区切りの文字列にしたいんか
gc hoge.txt | group | foreach { $_.name,$_.count -join "`t" }

8198162019/09/12(木) 00:24:07.29ID:W/V8jwbc
>>818
★★★★★
ありがとうございます!
実はまだ試せてないのですが、期待を込めて★5つです!(^_^)

820デフォルトの名無しさん2019/09/12(木) 10:44:16.82ID:W/V8jwbc
>>805
icaclsってps1ファイル内でも普通に呼出せるのね
ps1→bat→icaclsみたいに呼出さなきゃならないのかと思った
コマンドというより単なるexeってことか

821デフォルトの名無しさん2019/09/12(木) 13:07:06.37ID:9SxJRVV0
これからは>>819みたいに★で評価しよう
★☆☆☆☆ クソレス
★★★★★ 問題解消

822デフォルトの名無しさん2019/09/12(木) 14:46:18.96ID:pQlsfVOK
ふーむ、アホがアホに同調するアホな好例だな、アホすぎてオレにはよく分らんのだが、アホだということは分かる

アホA「ありがとうございます! まだ試していないけど! ★5つです!(^_^)」
アホB「・・これは良い! これからは★で評価しよう!」
ボク「・・いやいや、まだ試してもいないのだから評価もくそもねーだろ、★2〜3の定義もねーし、こいつらアホの極みだな」

823デフォルトの名無しさん2019/09/12(木) 14:53:12.75ID:j3ZoG8EK
>>822

824デフォルトの名無しさん2019/09/12(木) 17:51:47.62ID:TUHPbFV0
>>822
これが噂のヤラセレビューってやつか?

825デフォルトの名無しさん2019/09/12(木) 18:29:54.11ID:5CMOpd/7
>>822

826デフォルトの名無しさん2019/09/12(木) 19:50:41.33ID:igJ/H+nC
icaclsとか括弧を多用するコマンドはエスケープうざいですね
ヒアドキュメントみたいな感じでスマートに書けませんか

827デフォルトの名無しさん2019/09/13(金) 20:13:01.19ID:Vx47yrR/
PowerShellで非同期処理って酷く書きづらいと思ってるんだが、こんなもんなんか?
変数を渡すのにめっちゃ苦労したんだが…

828デフォルトの名無しさん2019/09/13(金) 21:35:11.86ID:3ZdspPUD
具体的にはどんなコードを書いたの?

829デフォルトの名無しさん2019/09/13(金) 21:49:24.82ID:Vx47yrR/
あまりにもニッチな製品の負荷テスト用スクリプトだから具体的には言えないが、平たく言えば自作関数とWin標準コマンドを引数変えながら並列投入するだけ
bashと比べちゃ駄目なんだろうが、スクリプト書いててキレそうになったのは久しぶりだわ

830デフォルトの名無しさん2019/09/13(金) 23:05:20.75ID:ha69B7nJ
runspaceでやってるのかjobでやってるのか

831デフォルトの名無しさん2019/09/14(土) 01:25:26.61ID:XbAlqDVd
そんな苦労するもんだっけか

832デフォルトの名無しさん2019/09/14(土) 01:53:38.89ID:ogAZWftq
runspaceの中で親スコープで宣言した関数を(特に書き換えずに)呼ぼうとするとややこしい
ちょっとggって出てくる方法だと面倒
https://devblogs.microsoft.com/scripting/powertip-add-custom-function-to-runspace-pool/


解決策:まとめて文字列にして渡す

# runspaceで実行したいスクリプトブロック
$cmd = {
param($func_parent)
$func_current = Get-ChildItem function: | %{$_.ScriptBlock.Ast.ToString()} # カレント(子)スコープの関数リスト
compare-object $func_current $func_parent | % inputobject | Invoke-Expression # 親スコープで宣言した関数のみを定義する

<# 実行したい処理 #>

}

$func = Get-ChildItem function: | %{$_.ScriptBlock.Ast.ToString()} # カレント(親)スコープの関数リスト

$ps = [PowerShell]::Create()
$ps.AddScript($cmd).AddArgument($func) | Out-Null

$result = $ps.BeginInvoke()
$ps.EndInvoke()
$ps.Dispose()
}

833デフォルトの名無しさん2019/09/14(土) 01:55:28.35ID:ogAZWftq
$ps.EndInvoke($result)
だわ

834デフォルトの名無しさん2019/09/14(土) 20:16:09.07ID:atxyCPua
変数じゃねーじゃねーか!

835デフォルトの名無しさん2019/09/14(土) 20:31:39.96ID:jbpc8Cnk

836デフォルトの名無しさん2019/09/14(土) 20:49:09.80ID:atxyCPua
渡したかったのは関数だって言ってんじゃねーか!

837デフォルトの名無しさん2019/09/14(土) 21:11:58.91ID:ogAZWftq
>>836
>>832のスクリプトブロック内のInvoke-Expressionをした時点で渡した関数(というか親スコープの関数全部)使える
特定の関数にしたかったら$function:関数名.Ast.ToString()で必要分を配列に突っ込んで渡してiexするだけや

838デフォルトの名無しさん2019/09/14(土) 22:03:58.44ID:atxyCPua
psm1にまとめて読み込んだほうが楽そう…

839デフォルトの名無しさん2019/09/14(土) 22:24:21.00ID:Tzf8a7mL
うむ

840デフォルトの名無しさん2019/09/15(日) 15:45:03.86ID:4TgO8+RX
>>813-819
大文字小文字が区別されないから、-CaseSensitive オプションも付けた方がよい

"Aa", "b", "aa" | group-object -noelement | where {$_.Count -gt 1}

出力
2 Aa

"A", "a" | group-object -noelement -CaseSensitive

出力
1 A
1 a

841デフォルトの名無しさん2019/09/15(日) 17:42:03.16ID:tc+PQ4bB
5.1から4.0に戻さないと日本語でいろいろ書いてくれないからわからないんです…
どうやって戻したらいいんでしょうか…(´・ω・`)

842デフォルトの名無しさん2019/09/15(日) 18:02:21.21ID:LMFjfaUx
どういうこと(´・ω・`)

843デフォルトの名無しさん2019/09/15(日) 19:37:50.46ID:tc+PQ4bB
(´・ω・`)すみません自己解決しました 更新プログラムの一部を削除したら望む結果が得られました お騒がせしました

844デフォルトの名無しさん2019/09/15(日) 20:17:50.41ID:aATf+6N9
WMF 5 に上げるとUIの表示が英語になるやつかねたぶん

845デフォルトの名無しさん2019/09/15(日) 20:48:36.32ID:ORV+CvDJ
win7pcのPSを5.1にした時に日本語化探したけどわかんなかったから詳しく書いてほしかった感

846デフォルトの名無しさん2019/09/15(日) 22:28:51.53ID:tc+PQ4bB
>>844
たぶんそれですお騒がせしました
これから精進していきます

847デフォルトの名無しさん2019/09/15(日) 22:30:29.90ID:tc+PQ4bB
>>845
ざっくり言うと
コントロールパネルからプログラムと機能に行って
インストールされた更新プログラムの項目を開いて
WMF5をアンインストールしたという流れです

848デフォルトの名無しさん2019/09/18(水) 09:25:06.97ID:jcGpm5QT

849デフォルトの名無しさん2019/09/18(水) 12:47:39.59ID:iUGh13ZQ
バッチファイルでいう、
echo %errorlevel%
はパワーシェルではどうやればいいんでしょうか?

850デフォルトの名無しさん2019/09/18(水) 14:54:54.64ID:nNyCwAkD
echo $LASTEXITCODE

851デフォルトの名無しさん2019/09/23(月) 16:12:06.99ID:yWN8gkqC
[2018.11.27] 納品書A社
[2018.11.29] 納品書B社
[181129] 納品書C社

このようなフォルダ構造になっている状態で、
このフォルダ階層だけ
3行目の"[YYMMDD] 〜〜"のような書式にフォルダ名を変更したいと思っています。
" 納品書A社"などはそのままで
元の日付も保持します

正規表現では"([2][0][1][0-9])\.([01][0-9])\.([0-3][0-9])"
に反応するものだけで出来ればと思います
どのように書けばよいのでしょうか?

852デフォルトの名無しさん2019/09/23(月) 18:10:16.40ID:mK3aarjp
>>851
Get-ChildItem -Directory |
Where-Object Name -match "^\[20(1[0-9])\.([01][0-9])\.([0-3][0-9])\](.*)" |
Rename-Item -NewName { "[{0}{1}{2}]{3}" -f $Matches[1..4] } -PassThru

これ日付の妥当性チェックはガバいけどそれは別にいいんでしょ
-match演算子を使ったらその結果は変数$Matchesに入ってることを覚えておくといい

853デフォルトの名無しさん2019/09/23(月) 22:41:23.65ID:CUAPT5Qo
NewNameにスクリプトブロック渡せるんだ
%{〜}の中で整形して渡す発想しかなかった

854デフォルトの名無しさん2019/09/23(月) 22:54:01.34ID:GUxJcSSn
DIRとって一つずつ条件に合致するオブジェジェクトをパイプ渡しするだけだよ

855デフォルトの名無しさん2019/09/23(月) 23:39:14.69ID:mK3aarjp
>>853
Delay Bindingっていって以下の条件を満たすパラメータにスクリプトブロックを渡すと
パイプラインから値が入ってくる度にパラメータの値を評価してくれる

・ ByValue, ByPropertyName属性が付加されてること
・ 型が明示的に指定されてること(ただし[scriptblock]または[object]以外)

856デフォルトの名無しさん2019/09/24(火) 10:08:27.83ID:hYZHYmb1
>>852
横だけど、すごく参考になった。ありがとう。

8578512019/09/24(火) 15:33:38.23ID:SPmBMSDI
>>852
やりたいことが出来ました。ありがとう!

858デフォルトの名無しさん2019/09/25(水) 10:57:26.88ID:E/zWVp/e
PowerShell って、「Shell」と一括にされてるんだっけ?

The Top Programming Languages 2019
https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2019

859デフォルトの名無しさん2019/09/25(水) 20:24:06.99ID:idiO5sU0
素のCが3位とかだから老害向けランキングでしょ

860デフォルトの名無しさん2019/10/14(月) 15:09:43.96ID:WeKpLulI
LL言語入門で有名なM.Hiroiさんは
なんでpowershellにかたくなに手を出さんのかと思ってたけど
bashとかシェルスクリプト方面は全く手を付けてないので納得

今はまさかのtcltkのページを更新中というマイペースぶり

861デフォルトの名無しさん2019/10/22(火) 22:39:49.38ID:xAr/pqiO
3位PowerShellってマジかよ

ガチ調査版::2019年プログラミング言語 求人人気ランキング
https://qiita.com/bitai/items/c8941da683ebedd135fd

862デフォルトの名無しさん2019/10/23(水) 07:15:39.57ID:4jedgKvl
>>861
決め方テキトーだからあてにならんよ

863デフォルトの名無しさん2019/10/23(水) 08:54:10.32ID:1cyp8e5C
>>861
開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。
求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは
後者じゃないかと推測。

Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が
いくつかあるから、そういう案件もカウントされてるかもしれない。
自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。

864デフォルトの名無しさん2019/10/27(日) 10:53:22.24ID:NsKzBf3L
詳しい方、教えて下さい!

シェバン記法でバッチファイル化して実行したいのですが、自スクリプトパスを取得する方法がわかりません。
誰か教えて下さい。

865デフォルトの名無しさん2019/10/27(日) 10:58:27.15ID:Lik42TLZ
PowerShell、起動が遅いのがなー
なんとかならんかなー

866デフォルトの名無しさん2019/10/27(日) 11:38:43.07ID:7LOf++Wk
シェバン記法てなぁに?

867デフォルトの名無しさん2019/10/27(日) 11:42:15.29ID:NsKzBf3L
>>866
以下を頭につけて拡張子を.batにするとダブルクリック実行できるようになるという記法のことです。

@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof

868デフォルトの名無しさん2019/10/27(日) 11:47:16.24ID:7LOf++Wk
ありがと

869デフォルトの名無しさん2019/10/27(日) 11:48:06.40ID:hJUpCTqv
Ruby では、__FILE__ が現在評価中のスクリプトファイル名

シェバンは、Linux では、
#!/usr/bin/ruby

Windows に、シェバンってあるの?

.bat に、ruby .\script.rb
と書いて、ダブルクリックで起動したりする事はあるけど

.vbs でも、起動ファイルを作れる

8708692019/10/27(日) 11:52:51.51ID:hJUpCTqv
.bat に、powershell .\script.ps1
と書けば、ダブルクリックで起動できないか?

または、.vbs に、
CreateObject("WScript.Shell").Run "powershell .\script.ps1", 0

871デフォルトの名無しさん2019/10/27(日) 12:06:15.48ID:NsKzBf3L
>>869
その方法だとファイルが2つになってしまうでしょう?
一つが良いんです。

8728692019/10/27(日) 12:21:42.69ID:hJUpCTqv
よく知らないけど、powershell は、ダブルクリックで起動するような、

危険なことは出来ないのじゃないか?

873デフォルトの名無しさん2019/10/27(日) 12:38:31.80ID:pI9qWgY0
>>872
バッチやvbsならダブルクリックも安全だとおっしゃるのでしょうか?

8748692019/10/27(日) 12:54:36.77ID:hJUpCTqv
ダブルクリックで起動するのは、危険!
あくまで、個人用途

仕事ではやらない方が良い。
危険すぎる

875デフォルトの名無しさん2019/10/27(日) 12:57:45.64ID:gYi3Gz62
スクリプトのパスなら$MyInvocation.MyCommand.Path

876デフォルトの名無しさん2019/10/27(日) 13:07:05.42ID:hKAQ6fM+
>>873
そのとおり

877デフォルトの名無しさん2019/10/27(日) 13:40:21.93ID:Lik42TLZ
>>874
ダブルクリックで起動するのは危険だから
コマンドラインから起動してください。
危険なコードでもコマンドラインから起動すれば、安全です。

こうですか?

878デフォルトの名無しさん2019/10/27(日) 13:50:19.81ID:NsKzBf3L
>>874
どう危険なのですか?顧客提供して不特定多数が使うわけでもないのに何が危険なのですか?

>>875
シェバンした場合、それだと動作しません。

>>876
なぜ?

8798692019/10/27(日) 14:01:18.04ID:hJUpCTqv
ダブルクリックで起動するのは、危険!

ファイルをちょっと触っただけでも、
ダブルクリックになって起動起動されてしまうから、Microsoft も禁止してる!

Linux のシェバンでも、
ファイル名だけじゃ起動できないようにしてるだろ

./ファイル名
みたいに、パス付きじゃないと起動しないようにしてる

これも、ファイル名だけでリターンキーを触ってしまうと、起動されてしまって危険だから!

ダブルクリック起動では、多くの被害者が出てる

880デフォルトの名無しさん2019/10/27(日) 14:05:08.75ID:v/8cx3Zl
vbsはファイルを全部パースしようとするからシェバン記法は使えないな

881デフォルトの名無しさん2019/10/27(日) 14:05:49.29ID:Lik42TLZ
ダブルクリックは危険!
ファイルをクリックしただけで起動しちゃう!
エクスプローラーからファイルをクリックできない
全部開いちゃう!

こうですか?

882デフォルトの名無しさん2019/10/27(日) 14:06:46.38ID:v/8cx3Zl
危険はexeでもバッチでも同じだろうに
powershellスクリプトだけを危険とする理由はない

883デフォルトの名無しさん2019/10/27(日) 14:13:43.83ID:Lik42TLZ
バッチファイルは危険じゃない!
APIが使えない。PowerShellスクリプトは何でもできる!
バッチファイルは他のスクリプトを呼び出すぐらいしかできない!

こうなるんですかね?

884デフォルトの名無しさん2019/10/27(日) 14:22:52.49ID:4/fJTv/Q
>>878
引数の名前を指定して%~dpnx0を渡せばいいのでは

# D:\a.bat
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\"); & $s" -hoge %~dpnx0 %* & goto:eof

Param(
[string]$hoge
)
Write-Host $hoge
Write-Host $args[0]
Write-Host $args[1]
Write-Host $args[2]
pause
# D:\a.bat eof


D:\>a 0 1 2
D:\a.bat
0
1
2
続行するには、Enter キーを押してください...:

885デフォルトの名無しさん2019/10/27(日) 14:26:31.81ID:vcUKQgsd
>>865
PC買いかえろよ…

886デフォルトの名無しさん2019/10/27(日) 14:31:11.79ID:vcUKQgsd
>>878
> シェバンした場合、それだと動作しません。
そりゃスクリプトを動的に作ってるんだからスクリプトファイルなんてないからね
バッチファイルのパスを知りたいならバッチから引数で渡せばいいだけ

887デフォルトの名無しさん2019/10/27(日) 14:32:02.36ID:v/8cx3Zl
マシン替えても相対的に速くなるだけで起動が遅いのは変わらないよ

888デフォルトの名無しさん2019/10/27(日) 14:57:41.64ID:vcUKQgsd
>>887
何を言ってるんだ?w

889デフォルトの名無しさん2019/10/27(日) 15:18:23.27ID:FsLuN3Ol
前から気になってたんだがダブルクリックでps1が起動できない設計にどれだけのセキュリティの効能があるんだろな
batの中にPSスクリプトを埋め込んで実行ポリシーも上書きできるなら実質batのセキュリティレベルまで落ちる
batをメールに添付すると自動でフィルタリングされるけどps1なら安全だからフィルタされず拡張子を書き換える手間が省ける、というレベルの価値なのかな

890デフォルトの名無しさん2019/10/27(日) 15:40:44.98ID:Lik42TLZ
>>885
WSLから実行

$ time cmd.exe /c echo ok
ok

real 0m0.051s
user 0m0.000s
sys 0m0.016s

$ time powershell.exe -Command echo ok
ok

real 0m0.355s
user 0m0.000s
sys 0m0.016s


これは遅すぎる。

891デフォルトの名無しさん2019/10/27(日) 15:41:31.49ID:Lik42TLZ
>>885
お前はどれくらいの時間で実行できる?
やってみてよ

892デフォルトの名無しさん2019/10/27(日) 15:46:43.24ID:Lik42TLZ
ちなみに-NoProfileをつけても大差ない
-NoProfileが無いから当然だが

893デフォルトの名無しさん2019/10/27(日) 15:47:02.36ID:Lik42TLZ
× -NoProfileが無いから当然だが
○ Profileが無いから当然だが

894デフォルトの名無しさん2019/10/27(日) 15:50:55.08ID:ho9vIROt
>>890
> これは遅すぎる。
ならPC買い換えろって言われてるだろ、馬鹿なの?

895デフォルトの名無しさん2019/10/27(日) 16:00:15.75ID:Lik42TLZ
>>894
だからどれくらいのスペックを買えば良いのか
お前のスペックとお前の実行時間を教えてくれと言ってるんだよ
CPUを強化すれば速くなるのか?SSDを速くすれば良いのか?

896デフォルトの名無しさん2019/10/27(日) 16:37:26.26ID:rrcAfXPk
>>895
遅いと思う感覚が人によって違うから他人に聞いてもしょうがないだろ
そんなこともわからんのか?

897デフォルトの名無しさん2019/10/27(日) 16:42:00.99ID:ElQsR2/N
>>896
だからどれくらい時間がかかるか聞いてるんだがw
お前にとって遅いかどうかなんて聞いてねーよ

898デフォルトの名無しさん2019/10/27(日) 17:18:28.01ID:cWrRHY0n
ColorTool を使わずに同等のことって出来ませんかね。客先のマシンなので入れられないんです。
powershell.exe から ssh で Linux につないでるんだけど、青と黒の色が似通ってて、すごく見づらいのをなんとかしたいです。

899デフォルトの名無しさん2019/10/27(日) 17:20:23.02ID:ElQsR2/N
プロパティから画面の色を変えるだけやろ?しらんけど

9008982019/10/27(日) 18:07:06.31ID:cWrRHY0n
解決したので自己レス。
とりあえず、これでだいぶマシになりました
https://superuser.com/questions/1114549

901デフォルトの名無しさん2019/10/27(日) 19:03:23.84ID:vcUKQgsd
>>897
日本語理解できないのか?
お前がどんだけ時間が掛かっちゃ遅いと思うかなんてわからんし、その時間をなぜ俺が検証してやらんといかんのだよ
無能が甘えんなよw

902デフォルトの名無しさん2019/10/27(日) 19:07:32.81ID:f+MCPxtM
Write-Hostは日本語環境だと遅いよ

903デフォルトの名無しさん2019/10/27(日) 21:04:44.37ID:jAqyy8Vt
>>889
batファイルも外部からDLしたデータなら実行前に確認画面出るでしょ
もちろん悪意のある内部犯なら無意味だけど

904デフォルトの名無しさん2019/10/28(月) 00:41:43.54ID:T67vLNbE
>>903
出るでしょ、と言われてもそれ俺の疑問とズレてると思うんだが…
その理屈だと、ネットワークから入手したときに警告が出るからbatもそれなりに安全
ps1も同じように警告が出るなら同じように安全
だったらダブルクリックで実行できない仕様にしたことにはあまり意味がなかった、という結論だと受け取って良い?

905デフォルトの名無しさん2019/10/28(月) 00:48:33.12ID:ML+fUsJB
ダブルクリック実行が危険ってのは、オペレーション次第で意図しないタイミングで実行されるからだろ
別に実行されても問題ないタイプのものならいいけど
ファイル削除系とか実行されたら何らかの情報が変化しちゃう系だと困るってことだよ
あと、ダウンロードでフラグが立つのはNTFSに落とした場合のみでFATなら警告なしだよ

906デフォルトの名無しさん2019/10/28(月) 02:25:37.55ID:bqlyCkZ6
読み込むアセンブリを減らしたりして0.1秒減らした。
これでコマンド実行時間が0.45秒ぐらいになった。
でもPowerShellの起動時間0.3秒がやはり大きい
ネイティブexeにすりゃいいんだろうけど、そうすると気軽じゃなくなるからな
VBScriptでAPIが使えるならそっちのほうが速くなりそうだけど

907デフォルトの名無しさん2019/10/28(月) 06:35:24.37ID:kjzN6NI8
>>890
漏れは、パソコン工房のノートPC、CPU-i3, メモリ8GB, SSD-128GB で、
WSL, Ubuntu 16.04 で、2秒ぐらいw

~$ time powershell.exe -Command echo ok
ok

real 0m1.944s
user 0m0.000s
sys 0m0.031s

9089072019/10/28(月) 06:41:24.18ID:kjzN6NI8
ただし、漏れはいつも、ノートPC を、
CPUを1つだけ使う、省エネモードにして使っている

それで、コンパイルが遅いのかも?

909デフォルトの名無しさん2019/10/28(月) 08:13:17.35ID:SMRk50Ri
>>904
ダブルクリックだけでは実行できなくなってるからいいんじゃない?
さすがにFATは知らんけど

910デフォルトの名無しさん2019/10/28(月) 11:15:58.10ID:tEsfLTI+
>>907
うわっ、マジか。そりゃきついな
タイプして2秒はありえない。

VBScriptでの実装も考えてみたが難しいし
こりゃもうCででも作るかな?
でもCOM触るの面倒なんだよな。

911デフォルトの名無しさん2019/10/28(月) 12:44:27.32ID:tEsfLTI+
Windows Updateしたら大幅に下がったwww
今裏でなにかビルドしてるんかな? ngenとか?

$ time powershell.exe -Command echo ok
ok

real 0m1.390s
user 0m0.000s
sys 0m0.016s

912デフォルトの名無しさん2019/10/28(月) 13:01:44.65ID:tEsfLTI+
これやったけど速くならない(´・ω・`)
https://stofublog.wordpress.com/2014/01/01/powershell%E8%B5%B7%E5%8B%95%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/

アップデート前まで速かったのに・・・

913デフォルトの名無しさん2019/10/28(月) 13:15:03.68ID:tEsfLTI+
なにかやったような記憶をたどり、

https://superuser.com/questions/1212442/powershell-slow-starting-on-windows-10

. (Join-Path ([Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) ngen.exe) update

↑これをPowerShell(管理者)で実行したら速くなった。(もとに戻った)
でも、一部指定されたファイルが見つかりません。とかエラーがでる。

よくわからんけど、このコマンドを実行してるだけ?
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe update

914デフォルトの名無しさん2019/10/28(月) 13:24:18.55ID:tEsfLTI+
ここに情報があった。
https://blogs.msdn.microsoft.com/jpvsblog/2018/05/07/ngen/

v4.0.30319 というバージョンはいつ変わるんだろう?

915デフォルトの名無しさん2019/10/28(月) 13:28:19.78ID:tEsfLTI+
Windows Updateしたせいかとも思ったけど、Visual Studio入れたからかもしれんな
ともかく、ngen updateしたらもとに戻った。
しばらく放置してても治るんだろうけど

916デフォルトの名無しさん2019/10/28(月) 21:32:05.62ID:WDVIXPLl
強力そうなので始めてみたんだけど、たかが文字コード変換がなんで
さらっとできないんだろう…

917デフォルトの名無しさん2019/10/28(月) 22:42:59.54ID:8eaZgTeu
C#もどうせ遅いんだろ?と思ってやってみたら単純なHello Worldだと0.1秒程度だった
PowerShellよりマシなのか。読み込むアセンブリで変わってくるとは思うけど
C++だと0.05秒。圧倒的だが情報が少なすぎる。

918デフォルトの名無しさん2019/10/28(月) 22:43:45.66ID:i5LGlrvW
PowerShellがあれば、文字コード変換も簡単です。
http://scripting.cocolog-nifty.com/blog/2010/01/powershell-6147.html

919デフォルトの名無しさん2019/10/29(火) 02:18:49.94ID:vBIRwBaE
echoが遅いことが判明

$ time powershell.exe -Command echo 1
1

real 0m0.378s
user 0m0.000s
sys 0m0.000s

$ time powershell.exe -Command 1
1

real 0m0.264s
user 0m0.000s
sys 0m0.000s

$ time powershell.exe -Command "[Console]::WriteLine(1)"
1

real 0m0.243s
user 0m0.000s
sys 0m0.000s

920デフォルトの名無しさん2019/10/29(火) 03:21:02.42ID:rBco2ITF
echoというよりコマンドレットの呼び出しにコストがかかるんだよ
Write-Outputの使用はあらゆる場面で完全に無意味で無駄だから使わない方がいい

それについてブログ書いてる人もいた
https://get-powershellblog.blogspot.com/2017/06/lets-kill-write-output.html

921デフォルトの名無しさん2019/10/29(火) 03:55:39.34ID:vBIRwBaE
>>920
そうなんだろうなって気はしてた。
まだどれがコマンドレットかそうでないかよくわかってないレベルだけどw

間にハイフンで区切られてて、呼び出しにカッコがいらないのはコマンドレットだよな?
Where-Objectとかもなくせば速くなるんだろうか?

ようやくC++で実装できそうな情報が溜まってきた。
Unicodeとか訳わかんねぇ。情報がバラバラで多すぎてわからん。
たったこれだけ、たったこれだけなのに!


C++で実装したら0.1秒。だけどバイナリのビルドが必要
PowerShellだと0.45秒。
CLIコマンドとしてサクッと実行したときの体感速度が違いすぎる。

922デフォルトの名無しさん2019/10/29(火) 04:14:17.53ID:rBco2ITF
>>921
Where-Objectはめちゃくちゃ遅くて遅いコマンドレットの代表みたいな奴だから俺はスクリプトでは一切使わない
同様にForEach-Objectも遅い

何作ってるのか知らんけどC++はスレ違いだからあとはC++のスレでやった方がいい
powershell自体の起動も含めてC++で作ったバイナリより遅いとかいう情報は当然すぎるから要らない

923デフォルトの名無しさん2019/10/29(火) 05:02:05.41ID:CowX2GWO
Ruby が良い。
Rubyから、クリップボード・powershell も使える。
CP932・UTF-8 の変換もできる

C++ は、コンパイル済みだろ。
コンパイル自体に時間が掛かるのは、Rubyも同じ

# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 連続する空白類を除去する

IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end

924デフォルトの名無しさん2019/10/29(火) 08:28:11.85ID:+8XugnXa
速いに越したことはないけど、PowerShel は速さを追求するもんじゃないだろうに。

>>923
お前は今すぐ呼吸するのをやめろ。お前に吸わせる酸素がもったいない。

925デフォルトの名無しさん2019/10/29(火) 20:44:54.51ID:ltL5L5Cn
こっちのスレにも書いておくわ
Windows 10 1903、PowerShell 5.1.18362.145
コマンドプロンプトを起動して

C:\Users\user> powershell.exe -Command [Console]::OutputEncoding
BodyName : iso-2022-jp
EncodingName : 日本語 (シフト JIS)
HeaderName : iso-2022-jp
WebName : shift_jis
WindowsCodePage : 932
IsSingleByte : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 932

C:\Users\user> powershell.exe -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8
UTF8に変更する。

C:\Users\user>powershell.exe -Command [Console]::OutputEncoding
BodyName : utf-8
EncodingName : Unicode (UTF-8)
HeaderName : utf-8
WebName : utf-8
WindowsCodePage : 1200
IsSingleByte : False
EncoderFallback : System.Text.EncoderReplacementFallback
DecoderFallback : System.Text.DecoderReplacementFallback
IsReadOnly : True
CodePage : 65001

それぞれ、別々のコマンドとして実行してるのに、状態が変わるのはなんで?

926デフォルトの名無しさん2019/10/29(火) 20:47:41.08ID:ltL5L5Cn
しかも powershell.exe だけに影響する話じゃなくて、

UTF8で書いたファイルを、コマンドプロンプト起動直後、
シフトJISモードのときにtypeしたら文字化けし、

UTF8に変更してからtypeしたら文字化けしない
明らかにコマンドプロンプトの状態が変わってる。

だけどchcpの値は932のままかわらない
ただ、PowerShellを使ってUTF8モードに切り替えると、
chcpすると「Active code page: 932」と英語で表示される。

927デフォルトの名無しさん2019/10/29(火) 23:40:36.07ID:JjalWxmz
>>878の問題は>>884で解決したのか?

928デフォルトの名無しさん2019/11/02(土) 12:30:04.56ID:1PdjBp7d
この場合は True が返るんだけど(当然)、
Test-Path ${home}\ntuser.dat

こうした場合は False になる。
$a = [xml]('<?xml version="1.0"?><File>${home}\ntuser.dat</File>')
Test-Path $a.File

XML の値は、
"${home}\ntuser.dat" こうじゃなくて
'${home}\ntuser.dat' というふうに格納されてるようなんだけど、変数を展開するにはどうすればいいだろう?

929デフォルトの名無しさん2019/11/02(土) 12:34:23.96ID:dF2n6ehk
invoke expression

930デフォルトの名無しさん2019/11/02(土) 13:07:31.37ID:esIitHWU
>>928
そりゃ ' ' で囲ってりゃ展開しないだろ…
$a = [xml]"<?xml version=""1.0""?><File>${home}\ntuser.dat</File>"

9319282019/11/02(土) 13:33:24.00ID:1PdjBp7d
>>929
できた、ありがとう。

>>930
>>928 のサンプルの提示の仕方が悪かったが、実際には XML ファイルを読み込んでるので >>928 の形になります。

932デフォルトの名無しさん2019/11/02(土) 18:11:26.52ID:71SUtLbe
Powershellの演算子の優先順位が判るサイトが見当たらないんですがどっかにないですかね
演算子をカテゴリ毎に紹介してるサイトは多く見かけるんですが

933デフォルトの名無しさん2019/11/02(土) 20:16:26.21ID:0WeT0cpY

934デフォルトの名無しさん2019/11/03(日) 02:57:41.69ID:hkCRv+PE
>>933
ありがとうございます!助かりました!

935デフォルトの名無しさん2019/11/03(日) 03:32:58.98ID:Y1hBQ+8z
どういたしまして!

936デフォルトの名無しさん2019/11/05(火) 23:35:55.67ID:ocMK86pm
m(_ _)m誰か教えて下さい。

フォーム上にコンボボックスを大量配置したいのですが、一つずつ以下みたいに書くと大変です。
これを関数化する方法を教えて下さい。

$Combo = New-Object System.Windows.Forms.Combobox
$Combo.Location = New-Object System.Drawing.Point(10,10)
$Combo.size = New-Object System.Drawing.Size(150,30)

937デフォルトの名無しさん2019/11/06(水) 02:58:52.99ID:+N82MWJ/
>>936
普通に$comboを返す関数を作ればいい
winforms書く時は使えるバージョンならusing namespaceを使った方がすっきりする
個人的にNew-Objectは遅いだけなのでなるべく使わない
暗黙の型変換を積極的に使うとすっきりする

using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

function Create-ComboBox($Left, $Top, $Width, $Height) {
  $combo = [ComboBox]::new()
  $combo.Location = "$Left, $Top"
  $combo.size = "$Width, $Height"
  $combo
}

$form = [Form]::new()
$form.Size = "200,200"

$combo1 = Create-ComboBox -Left 10 -Top 50 -Width 160 -Height 30
$form.Controls.Add($combo1)

$form.ShowDialog()

938デフォルトの名無しさん2019/11/06(水) 05:18:39.91ID:+Isovp9U
x.Size="1,2"
こういう書き方できるの知らんかった

9399362019/11/06(水) 11:38:21.31ID:viRYf3W9
>>937
大変ありがとうございました。助かりました。

なおWin7環境なのでusing...はカットして使ってます。

940デフォルトの名無しさん2019/11/06(水) 19:25:34.62ID:du9DeY6n
>>939
5.0以上にアップグレードすればWin7でも使えるんじゃないの?インストール不可なだめだけど

9419362019/11/08(金) 09:54:16.57ID:RMGDBEVY
緊急でお願いします。マルチバイト文字のパディングのやり方を教えて下さい。サンプルコードがあると嬉しいです。

942デフォルトの名無しさん2019/11/08(金) 10:20:36.03ID:weGpRZzk
入力と出力のサンプル位出したら

943デフォルトの名無しさん2019/11/08(金) 10:20:37.27ID:bpFYbH+Z
うっかり bash と間違えて ctrl+R と打ってしまったんだけど、PowerShel でも同じように機能したんだな。
軽く感動したわ。

944デフォルトの名無しさん2019/11/08(金) 10:41:43.51ID:wfK2aVsO
ctrl + Alt + shift + /
でショートカット一覧が出るからざっと見ておくといいよ

945デフォルトの名無しさん2019/11/08(金) 11:47:48.53ID:bt2cbsd4
PowerShellにディレクトリ、ファイル名以外の
補完機能ってあるの?

946デフォルトの名無しさん2019/11/08(金) 12:27:29.71ID:CJ6EXBGx
>>945
オプションとかオプションの値が選択肢ならそれも補完する
ユーザーが作ったコマンドでも補完できるから地味に便利

947デフォルトの名無しさん2019/11/08(金) 14:17:43.58ID:bpFYbH+Z
>>944
なんと、超便利!
ありがとう!

948デフォルトの名無しさん2019/11/08(金) 14:41:45.11ID:wfK2aVsO
ついでに以下のコマンドで画面だしとけばチートシートになるよ

Get-PSReadLineKeyHandler | ogv

949デフォルトの名無しさん2019/11/08(金) 17:13:11.44ID:bpFYbH+Z
>>948
「俺専用PowerShellアンチョコ.txt」に記録した。重ね重ねありがとう。

950デフォルトの名無しさん2019/11/09(土) 17:39:02.10ID:LvjWth2U
powershellで海外にアクセスできないように設定できますか?

951デフォルトの名無しさん2019/11/09(土) 17:42:01.74ID:FbsqDOHf
海外とは

952デフォルトの名無しさん2019/11/10(日) 05:11:31.78ID:47iDVxCF
そういやweb鯖のサンプルがあったな
ピロキシぐらい作れるよな

953デフォルトの名無しさん2019/11/10(日) 16:21:24.11ID:LxY6Tlm9
海外鯖を経由しない通信にしたい。
それか海外からの通信をファイアウォールで
全部ブロックしたい。
って考えたらhostsしかないかな?
めんどくさいな。

954デフォルトの名無しさん2019/11/10(日) 16:35:30.22ID:z3CQn4/q
自分ですべての経路把握する必要あるし無理じゃね?

955デフォルトの名無しさん2019/11/10(日) 17:15:59.31ID:iyIsn8nz
>>953
曖昧すぎてアドバイスのしようがないな

956デフォルトの名無しさん2019/11/10(日) 17:17:57.36ID:uhrgfz89
hostsに一体いくつ「海外」とやらのホストを指定するのやら
OS側でやるのが適当なのかそれ
業務用なのか個人用なのかもわからん

957デフォルトの名無しさん2019/11/10(日) 17:54:04.00ID:otD8Z0ZU
windows updateも海外なのか?

958デフォルトの名無しさん2019/11/10(日) 20:34:29.07ID:LxY6Tlm9
すみませんでした。そうなるとなんかややこしくなりそうなのでやめます。
ブラウザの拡張でやりますわ。
ありがとうございました。

959デフォルトの名無しさん2019/11/11(月) 08:27:46.29ID://Nnw6zP
Windows PowerShell を使用した高度なセキュリティ管理を使用する windows Defender ファイアウォール
https://docs.microsoft.com/ja-jp/windows/security/threat-protection/windows-firewall/windows-firewall-with-advanced-security-administration-with-windows-powershell

960デフォルトの名無しさん2019/11/11(月) 17:18:43.20ID:WYwNeQAp
ありがとうございました。

961デフォルトの名無しさん2019/11/18(月) 08:47:59.75ID:604fXs7f
タブストップ中コンボボックスの文字の背景色を青ではなく薄水色にしたいのですが、やり方がわかりません。ご存知の方、よろしくお願い申し上げます。

962自己レス2019/11/18(月) 12:09:14.04ID:604fXs7f

963デフォルトの名無しさん2019/11/18(月) 15:09:03.25ID:Crm1ovkb
test 452452424524524

964デフォルトの名無しさん2019/11/18(月) 15:10:33.45ID:Crm1ovkb
Windows 10 に標準搭載された OpenSSH と PowerShell の機能だけを使用して、公開鍵をサーバにアップロードしたいと考えています。
(ssh-copy-id は shell スクリプトなので Windows 版の OpenSSH には含まれていない)

965デフォルトの名無しさん2019/11/18(月) 15:11:33.77ID:Crm1ovkb
調べた結果、まず以下のコマンドが cmd.exe 上では完璧に動作することを確認しました。
※元のコードを貼ると 403 Forbidden となるので Pastebin を使ってます
https://pastebin.com/kCqKQm9T

これを以下の通り PowerShel に置き換えました。
https://pastebin.com/CSE9sCnB

一応、公開鍵のアップロードまでは出来たんですけど、ssh.exe のプロセスが終了しません。
(wait = $true にした場合はプロンプトが返ってこない)
何が悪いんでしょうね。

966デフォルトの名無しさん2019/11/18(月) 15:15:42.87ID:Crm1ovkb
追伸:CloudFlare で 403 Forbidden になってたのはレスに cmd.exe という文字列が含まれいたのが原因のようです。コードは関係なかったっぽい。

967デフォルトの名無しさん2019/11/18(月) 15:35:44.61ID:Crm1ovkb
どうやら、ssh.exe に対して公開鍵の文字列をパイプで渡した場合は正常終了するのですが、標準入力で渡した場合はプロセスが残ることが分かりました。
cmd.exe 上でも、標準入力で渡した場合はプロセスが残ります。
Start-Process は「You cannot pipe input to this cmdlet.」とのことでパイプからの入力を受け付けないんですけど、なにか良い手はないですかね?

968デフォルトの名無しさん2019/11/18(月) 16:07:26.07ID:Crm1ovkb
何度もすみません、自己レス。

パイプならよかろう、ということで以下の3パターンで試したところ、ssh.exe は正しく終了するようになったのですが、authorized_keys には CL+LF が追加されてしまいました。
$PubKey = Get-Content "${home}\.ssh\id_rsa.pub"
Write-Output $PubKey -NoEnumerate | ssh root@${DST} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"
Out-String -InputObject $PubKey | ssh root@${DST} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"
type "${home}\.ssh\id_rsa.pub" | ssh root@${DST} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

最終的に、これで妥協しました。ダサい。もっとスマートな書き方はないものだろうか。
https://pastebin.com/KpKkuGcQ

969デフォルトの名無しさん2019/11/18(月) 16:13:01.04ID:Crm1ovkb
ごめんなさい、標準入力では ssh.exe が終了しない原因が分かりました。
sshkeygen で生成された id_rsa.pub は、行末で改行していないためでした。
エディタで開いて改行させたところ、
https://pastebin.com/CSE9sCnB
これでも動作しました。

お騒がせしました。

970デフォルトの名無しさん2019/11/19(火) 00:02:22.77ID:rlpD1oBO
参考になった ありがとう

971デフォルトの名無しさん2019/11/20(水) 13:28:40.93ID:aW1lygKI
どういたしまして

972デフォルトの名無しさん2019/11/24(日) 16:11:02.22ID:UhvIpOa2
Get-ChildItemで困っている事があります。
解決方法を知っている方がいましたら教えてください。

*.txt *.bin
などの拡張子を持つファイルを一括して集める場合
$result = Get-ChildItem *.txt,*.bin
とすれば集まりますが
hoge,hage.txt
というファイル名に、 ',' が含まれているファイル名があると、 *.txt,*.bin のようなセパレーターとして認識してしまい
ワイルドカードにヒットするbase nameが hoge までになってしまい$resultに値が入ってきません。
','などのセパレーターを含むファイル名を Get-ChildItem でワイルドカード指定するにはどうすればよいでしょうか?

973デフォルトの名無しさん2019/11/24(日) 16:29:56.73ID:E4b/CXSq
>>972
何をしたいのかいまいちよくわからんがとりあえず
Get-ChildItem 'hoge,hage.*', '*.txt'
とかでいいんじゃね?

974デフォルトの名無しさん2019/11/24(日) 20:06:33.13ID:JDFz9pDe
うちはGet-ChildItem *.txt,*.binで引っかかるけど
dir *.txt,*.bin | ?{ $_.Name -like "h*"}でフィルタして確認してみれば?

975デフォルトの名無しさん2019/11/28(木) 17:33:57.96ID:G1SJ/xZS
スクリプトで
VPNセッションを張って、opensshでLinuxサーバーにログインしたいんですが、クレデンシャル情報ってどう引き渡せば良いですか?

976デフォルトの名無しさん2019/11/28(木) 17:35:59.16ID:KHBZf3ql
どこのクレデンシャル情報を、どこに渡すんです?

977デフォルトの名無しさん2019/11/28(木) 17:40:45.55ID:G1SJ/xZS
>>976
ssh、vpnのコマンドにです

978デフォルトの名無しさん2019/11/28(木) 17:41:50.79ID:KHBZf3ql
そのクレデンシャル情報には何が書かれてるんです?

979デフォルトの名無しさん2019/11/28(木) 17:42:46.64ID:KHBZf3ql
ssh、vpnにクレデンシャル情報を渡すとどうなるんです?
どうなるように設定したんですか?

980デフォルトの名無しさん2019/11/28(木) 18:10:58.12ID:G1SJ/xZS
すいません。
ここで聞いたのが間違いでした。
Linuxサーバーにログインしたいと書いてあるのにどうしたいと言われても困りますので。
では。

981デフォルトの名無しさん2019/11/28(木) 18:17:16.35ID:KHBZf3ql
だからログインできるようにLinuxサーバーに設定したんですか?

982デフォルトの名無しさん2019/11/28(木) 19:03:26.14ID:o2XGBpkX
VPN関係あるの?
ssh -i 秘密キーファイル ユーザー名
という外部コマンドの呼び出し方を聞いてるの?

983デフォルトの名無しさん2019/12/18(水) 06:19:20.47ID:DPpTEq4j
ちょっと気づいたのでメモ

ハッシュテーブルからいろいろな型にキャストするのがわりといろんな場面で使える
例えば>>936は次のように書ける

using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

$form = [Form]@{ Size = "200,200" }
$combo = [ComboBox]@{ Location = "10,50"; Size = "160,30" }
$form.Controls.Add($combo)

$form.ShowDialog()


もし"200,200"ってのが気持ち悪いならさらに

$form = [Form]@{ Size = @{ Width = 200; Height = 200 } }

としてもいい

984デフォルトの名無しさん2019/12/18(水) 06:21:03.31ID:DPpTEq4j
すまん>>936じゃなくて>>937だったわ

985デフォルトの名無しさん2019/12/18(水) 23:38:33.69ID:kDyrT7eN
キャストでオブジェクト生成か
理屈は判るけどキモイな

986デフォルトの名無しさん2019/12/19(木) 21:20:43.94ID:A7bzsjq6
C#のオブジェクト初期化子みたいなものだと思えばいいかも

987デフォルトの名無しさん2019/12/31(火) 07:16:04.44ID:xfr0s5Fj
怒らないで教えて欲しいんだが

WSLでよくね?

988デフォルトの名無しさん2019/12/31(火) 07:38:32.37ID:Ttaqvt+E
いや誰もPowerShellを万能の利器とは考えてない
適材適所

989デフォルトの名無しさん2019/12/31(火) 09:49:11.63ID:ZmMnRfLg
>>987
それに答えるためには、お前が何をしたいのかを聞く必要がある

990デフォルトの名無しさん2019/12/31(火) 09:53:59.69ID:vL9iUG+A
WSL使うなら最初からLinuxをインストールして使えばいい

991デフォルトの名無しさん2019/12/31(火) 21:14:44.78ID:wxhVB0za
WSLていうかUNIXシェルでいいなら、なんでLinuxユーザーがわざわざPowerShellを使ってると思うの?

https://msit.powerbi.com/view?r=eyJrIjoiYTYyN2U3ODgtMjBlMi00MGM1LWI0ZjctMmQ3MzE2ZDNkMzIyIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9&;pageName=ReportSection5

992デフォルトの名無しさん2019/12/31(火) 21:26:22.98ID:4NGA+Zr1
>>991
知らない教えて

993デフォルトの名無しさん2019/12/31(火) 21:58:25.71ID:ajjU1twk
事情があって嫌々ながらLinux使わざるをえないWindowsユーザーがPowershell採用してる

994デフォルトの名無しさん2019/12/31(火) 22:01:43.89ID:FiZAbpfr
PowerShellのほうが強力だしな

995デフォルトの名無しさん2020/01/01(水) 08:33:54.15ID:KGLKi7tz
そろそろ Ruby ガイジが出てくる頃かな?

996デフォルトの名無しさん2020/01/01(水) 13:06:34.59ID:voSHdO49
rubyくんが出るのは、スクリプトを作れるような質問が出たときだろ

997デフォルトの名無しさん2020/01/01(水) 15:19:12.54ID:IT8L/q0G

998デフォルトの名無しさん2020/01/01(水) 15:19:29.24ID:IT8L/q0G

999デフォルトの名無しさん2020/01/01(水) 15:19:45.39ID:IT8L/q0G

1000小倉優子 ◆YUKOH0W58Q 2020/01/01(水) 15:20:34.34ID:IT8L/q0G
  ∧,,,∧ 
 (  ・∀・) 1000ならジュースでも飲むか
  (    ) 
  し─J 


lud20221127225714ca
このスレへの固定リンク: http://5chb.net/r/tech/1539074808/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「PowerShell -Part 3 YouTube動画>1本 ->画像>4枚 」を見た人も見ています:
PowerShell -Part 6
PowerShell -Part 5
【最強CUI】PowerShell -Part 1
【最強CUI】PowerShell -Part 2 [無断転載禁止]
Windows PowerShell Part5
PowerShell -Part 7 (389)
一人で行くHello! Project 20th Anniversary!! Hello! Project COUNTDOWN PARTY 2018 〜 GOOD BYE & HELLO ! 〜 Part3
一人で行くHello! Project 20th Anniversary!! Hello! Project 2018 SUMMER 〜ALL FOR ONE〜 & 〜ONE FOR ALL〜 Part4
一人で行くHello! Project 20th Anniversary!! Hello! Project 2018 SUMMER 〜ALL FOR ONE〜 & 〜ONE FOR ALL〜 Part32
【日産】ノート e-POWER専用 IP有 Part 30【HV】
【日産】ノート e-POWER専用 IP有 Part 34【HV】
Canon PowerShot G1X series PART20
Windows PowerShell (正式版リリース)1.0
【日産】セレナC27 e-POWER専用 ワッチョイ有 Part 8
【日産】セレナC27 e-POWER専用 ワッチョイ有 Part 9
【日産】ノート e-POWER専用 IP有 Part 28【HV】
【日産】セレナC27 e-POWER専用 IP有 Part 2【HV】
Helloween part77
Canon PowerShot G7 Xシリーズ part7
【※Shell V-Powerは除く】石油連盟会長、ハイオク混合出荷問題に「各社品質に差ない」と混合認める発言へ
Canon PowerShot G7 Xシリーズ part8
Paul Weller Part11
【日産】ノート e-POWER専用 IP有 Part 24【HV】
【日産】セレナC27 e-POWER専用 ワッチョイ有 Part 11
【FANZA】FLOWER KNIGHT GIRL 〜X指定〜 part4283
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 愚痴スレpart373
ウルトラストリートファイターIIULTRA STREET FIGHTER II The Final Challengers Part3
「Hello! Project 2020 〜The Ballad〜 Special Number」感想会 Part2
一人で行くHello! Project 2020 〜The Ballad〜 Special Number 【武道館】 part1
FLOWERS -Part3-
FLOWERS -Part2-
Helloween part70
一人で行くHello! Project 20th Anniversary!! Hello! Project 2018 WINTER - 23
Helloween part70 【ワッチョイ】 [無断転載禁止]
一人で行くHello! Project 2017 SUMMER 〜HELLO! MEETING〜&〜HELLO! GATHERING〜 Part3 [無断転載禁止]
【DMM.R18】FLOWER KNIGHT GIRL 愚痴スレ Part3 ©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part1723 ©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part2363 ©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part2153 ©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part3703 ©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part3483 ©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part30413 ©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 愚痴スレPart93 ©bbspink.com
【FANZA】FLOWER KNIGHT GIRL 〜X指定〜 part4273 [無断転載禁止]©bbspink.com
【FANZA】FLOWER KNIGHT GIRL 〜X指定〜 part4263 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 愚痴スレPart153 ©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜part1473 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part2333 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part3443 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part3973 [無断転載禁止]©bbspink.com
Anyone tell me how to find Japanese travel partner? [無断転載禁止]
■ 辻・加護・新垣・道重・鞘師 ■ ひかりTVch 『ひなフェス2019Hello! Project 20th Anniversary!!プレミアム』 ■ 12:00〜15:00 ■ 3
【FANZA】FLOWER KNIGHT GIRL 〜X指定〜 part4193 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜part903 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜part1233 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜part1253 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜part1113 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜part1403 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part3673 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part2533 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part2613 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part4033 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part3833 [無断転載禁止]©bbspink.com
【DMM.R18】FLOWER KNIGHT GIRL 〜X指定〜 part2013 [無断転載禁止]©bbspink.com
04:13:29 up 10 days, 5:17, 2 users, load average: 7.12, 8.19, 8.97

in 0.090035200119019 sec @0.090035200119019@0b7 on 012318