TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
アルゴリズム考えるのムズすぎワロタwwww
C言語なら俺たちに聞け パート0001
NullPointerExceptionを「ぬるぽ」と呼ぶスレ6
師匠!1週間よろしくお願いするぞ!
プログラミング言語の難易度ランク作りました ご覧ください
pythonがこの先生きのこるには
■特許庁新システムを作る■
P2P型の完全匿名掲示板はまだ出来ないの?その5
新言語を開発したい
人工知能ディープラーニング機械学習のための数学

PowerShell -Part 3


1 :2018/10/09 〜 最終レス :2019/11/28
前スレ
【最強CUI】PowerShell -Part 2
http://mevius.2ch.sc/test/read.cgi/tech/1480109402/

2 :
2

3 :
3

4 :
>>1
相変わらず潔いテンプレやね

5 :
全スレの>>1000って何?
恐くて実行できない

6 :
>>5
それくらい読めるだろ?

7 :
@(1..1000; "complete!") -join " "

8 :
>>5
実行してもツラツラと数字が表示されるだけ
作った本人だがセンスの無さが絶望的だと思う

9 :
$popuko='';do{Write-Host ($pipimi = ($pptp = 'ポ', 'プ', 'テ', 'ピピック')[(Get-Random -Maximum 4)]) -No; $popuko += $pipimi; sleep -m 10}while($popuko -notmatch "ポプテピピック");"`r`n竹書房ゥァア゛ーッ"

10 :
全部縦書きで出したほうがらしいきもする

11 :
本日ハマったこと
下記スクリプトが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 :
WebClientってたしかブラウザ依存じゃなかったか

13 :
パワーシェルからプログラムを呼び出してsendkeyでキーを送りたいのですが
呼び出したプログラムをターゲットウィンドウ固定にできないでしょうか

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

14 :
そもそもSendkeyでやることじゃない気がするぞ

15 :
んなこときーてねえんだが

16 :
豹変した!

17 :
豹変してて草

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

18 :
RPAをPowerShellでやろうってことだろ

19 :
add-type -AssemblyName microsoft.VisualBasic
$process = Get-Process |? {$_.MainWindowTitle -match "(探したいウィンドウタイトル)"}
[Microsoft.VisualBasic.Interaction]::AppActivate($process.ID)

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

20 :
RPAとか言い出すとほぼCoreで動かない物が出来上がりそう

21 :
vista以降だとタスクバーペカるだけで最前面に来ないんよね
スクリプト手動実行なら動くんやけどさ

22 :
Appactivateって結局そのウィンドウフォアグラウンドになるんでは?
背面のアプリに文字入力したいならいずれにせよSendkeysではムリ、
UWSCとかだとsenfstr(ID
,"文字列")とかで出来る

23 :
Powershell用だと UI Autmation Extentionを使えば出来るのかも。試してはいないが

24 :
外部ソフトではなく、ウィンドウズ標準が良いです
なのでvbsでも良いですが
もしくはフォーカスでなくても常に最前面表示とかでもキー送れるのかな

25 :
alt+tab

26 :
$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 :
Powershell使いこなすにはC#の知識にも手を出さないとダメかな
.NET使う時点でライブラリの知識いるけど

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

28 :
本日ハマり事案
下記スクリプトでは、なぜかRead-Host実行後にGet-Processの結果が表示されてしまう。なーぜだ?

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

29 :
>>28
read-host実行前にget-processの結果でるよ
何が問題なのかわかんない

30 :
>>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 :
ふつうにOut-Hostでいいんじゃね

32 :
セミコロンで繋げると再現する
Get-process|?{$_.MainWindowHandle -ne 0}|Select-Object ID,MainWindowHandle,Name,MainWindowTitle; read-host "Enterで終了します"

33 :
1行目の最後にOut-Hostをはさむと意図通りになる
Get-process|?{$_.MainWindowHandle -ne 0}|Select-Object ID,MainWindowHandle,Name,MainWindowTitle | Out-Host; read-host "Enterで終了します"
なんでかね

34 :
こっちは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 :
どうも Select-Object のバグっぽい
Get-ChildItem |Select BaseName でも起きる
Selectが後にパイプの別処理か、標準入力から改行受け取らないとコマンド終了判定できないっぽい

36 :
>>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 :
>>34
お、そうなのか
5.1.17134.228 単体問題かなあ powershell v 2起動ではこちらも大丈夫だったよ

38 :
-Version 2指定で大丈夫だった。ps5のバグだね

39 :
>>36
Out-Host はこちらでも有効でした。
そちらの環境では; なしのps1スクリプトでは再現しないということだよね

40 :
>>39
その通り
複数行 →再現せず
セミコロンで1行 →再現

41 :
>>40
明瞭な回答ありがとうございました。

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

42 :
地味に嫌なバグだな

43 :
>>27
簡単なコマンドレットだけ使うところから
始めても十分実用になると思う
.NET(の知識)は拡張に便利だけど必須じゃない

44 :
PSって時々変な挙動する
逐次処理型のコンソールプログラムを直接実行した時はなんの問題もないのに
PSコンソールから同じ物を呼ぶとたまに固まる現象は未だに原因不明
しかも何故かエンターキー押したら進み出すから意味わからん
一見するとそのコンソールプログラムの問題かと思うけど違うプログラムでも発生するからPSが原因なのは確か

45 :
PowerShell 6.1って既存のPowershell 5.1 Desktop版と共存できる?
できるなら入れてみようかな

46 :
別物やから気にせず入れればええ

47 :
>>46
ありがとう、やってみます

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

49 :
>>48
RDP接続部分どんなコードなのさ

50 :
cmdkey /generic:ipアドレス /user:ユーザ名 /password : パスワード
のコマンドで資格情報登録後、
mstsc /v ipアドレス
のコマンドでリモデ呼び出しています

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

51 :
>>50
>CMDKEY [{/add:ターゲット名 | /generic:ターゲット名}] [/smartcard] [/user:ユーザー名 [/pass[:パスワード]] [/delete{:ターゲット名 | /ras}] [/list[:ターゲット名]]
って構文だけど
>password : パスワード
のところでパス登録できてないんじゃね?
詳しくねーけど

52 :
あーパスワードじゃなくて、パスか
そこの違いかな

53 :
やってみたらpasswordでも通ったわ...
関係なさそう

54 :
こっちの問題じゃないの?
「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 :
おお、ポリシーの問題ですかね

56 :
まず問題の切分をしようよ
・GUIで普通に接続する時はログインを省略出来るのか
・コマンドプロンプトでコマンド直打ちした際はどうなるのか
正直言えばPS関係あるの?って話なんだが

57 :
まあ多分関係ないね、下記で訊いた方がいいかもしれん
リモートデスクトップ&リモートアシスタンス 6
https://mevius.2ch.sc/test/read.cgi/win/1276610475/

58 :
あ、すみませんでした
そこのスレで同じく聞いてみます

59 :
バッチファイルのコードをパワーシェルに変換できるツールってないんでしょうか?

60 :
本買って勉強しろ

61 :
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。

62 :
>>59
環境変数Pathの設定ですら書き方が微妙に違うからな
一括変換は無理

63 :
>>58
過疎スレに聞きに行ってなくてワロタで

64 :
過疎スレに誘導しといてあんまワロえないわ

65 :
こういうインフラ系の疑問ってQAサイト無いのかな?
teratailはプログラム関係以外お断りっぽいし、stackoverflowかね、知恵遅れは質が悪くて

66 :
パワーシェルのifで数字を比較するとき、 1<5>10
のように複数の演算子使うことできますか?

67 :
できません

68 :
できないよ
1 -lt 5 -lt 10とかやっても、1 -lt 5がTrue、True -lt 10でFalse

69 :
if (1 -lt 5 -and 5 -lt 10)

70 :
パワーシェルなんで不等号使えないんでしょなね

71 :
リダイレクトに不等号使ったから

72 :
ああ、そういやそうか

73 :
DOSコマンドプロンプトの伝統を引き継いだ説
equ → -eq
neq → -ne
lss → -lt
leq → -le
gtr → -gt
geq → -ge

74 :
DOSの時中途半端にUnix真似たのを今度は揃えたっていうのが正しいか

75 :
コマンドプロンプト互換用にリダイレクトは要るけどPowerShell的には使い道あんまり無い気がする

76 :
普通にfortranの比較演算子だからな

77 :
いやFortranでもDOSでもなくてシェルスクリプトを意識してるでしょ
Fortranなら.GT.とかだし<>=も使える

78 :
また低学歴知恵遅れの知ったかがテキトーなこといってるわ。。。
昔のfortranは<>=なんか使えない

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

79 :
やっとPowershell core 6.1入れてみた。
defaultがUTF-8に変わって
sjisテキストの入出力は難しくなった。
-encoding ([System.Text.Encoding]::GetEncoding(932))と書くか-encoding oemならまだ通るんだね

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

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

81 :
>>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 :
代入の二段重ねなんて出来るんだw

83 :
$a = $b = 1ってできるじゃん

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

85 :
PowerShellってキャリア採用の条件で提示するようなもん?
・PowerShellができる方
ってどこまで理解していればこれに該当するかな

86 :
案件列挙すればいいんじゃね

87 :
パワーシェル単体ではちょっと弱い

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

88 :
いらんわそんなの

89 :
パワーシェルだけじゃ仕事ないっていう観点はあっている

90 :
クセと多いがpowershell好きw
できるだけ小文字で書きたいのだが、インテリセンスが大文字混ぜるのをなんとかしたい、なにか手はある?
あとパラメータとか短縮表記になったのを伸ばすツールある?

91 :
>>90
補正のないエディタを使う

92 :
PowerShellEditorServicesはオープンソースだから改造すればえんちゃう

93 :
クリップコマンド使うとなぜか改行がはいってしまいます、改善策ないでしょうか?

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

94 :
set-clipboardコマンドレット使えば行けそう
今はテスト出来ないしPowershell5.0以降が必要だけど(Windows10なら標準)

95 :
Windowsサーバ2012r2なんですがそのコマンドあるかな・・・

96 :
ちなみにですがバッチファイルだと下のコマンドで改行なしにできるのですが、パワーシェルからからこのコマンド呼び出すと<がリダイレクトマークなのでつかえません!ってエラーがでます
このコマンドをパワーシェルで使う方法などありますか?

set /p <nul="test" | clip

97 :
>>96
cmd /c 'set /p <nul="test" | clip'

98 :
コマンドプロンプト部分をシングルコーテートでくくってcmdのオプションで/cつければ他のコマンドも実行できるんですか?
試してみます、ありがとうございます

99 :
>>95
2012R2だとPowerShell4.0だね。5.0にするならWMF5.1のインストールが必要みたい

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

100 :
Win10 1809のWin Powershellなんだけど
powershell -Version 3.0
でも$PSVersionTableで3.0にならない
2.0だと変わる、バグかな


100〜のスレッドの続きを読む
インデントを強制しても綺麗なコードにはなりません
35歳、発達障害のB型作業所通いですが 6
推薦図書/必読書のためのスレッド 81
[RPA]PC自動化技術総合スレ[効率化] Part.8
Visual Studio 2017 Part5
将来性ないプログラミング言語。Delphi含まれず安心
OpenCLプログラミング#1
【上流社会】MSDNサブスクリプション総合【最先端】
Go language part 2
設計思想/ソフトウェア工学(UML, デザパタetc)
--------------------
昭和の暮らしを懐かしむスレ・27丁目
ABARTH124spider part12
関西の新番組改編の局や枠を予想&検証するスレ1
道端ジェシカアンチスレ1
正義のミカタ #20
【徴用工】韓国議長の基金案の立法化が進めば、12月下旬の日韓首脳会談で輸出管理撤回表明につながる可能性に言及-河村氏[11/25]
オブジェクト指向の「クラス」ってなんなの?
【カオス】ChaosTCG Part.60【ブシロード】
Agave(アガベ) リュウゼツラン総合 03 [多肉植物]
東方神起の雑談避難所14564
☆森高千里★統一スレ【104】
■Lunascape6■高速スクリプト■Firefox拡張■
☆上野動物園★173
レゲーマーでも楽しめる今ゲーを教えて下さい
【PS4】PlayerUnknown's Battlegrounds 晒しスレ【PUBG】
【大きい】シャルトリューを語るスレ【やさしい】
【少女前線】ドールズフロントラインPart584【ドルフロ】
牧野羽咲
第一種電気工事士試験 Part42
バイキングとグッディ★8
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼