X



Windows PowerShell Part5 [無断転載禁止]©2ch.net
0001名無し~3.EXE
垢版 |
2016/09/18(日) 14:06:24.15ID:aFEI7ykR
Windows PowerShell
http://technet.microsoft.com/ja-JP/scriptcenter/dd742419.aspx
オンラインヘルプ
https://technet.microsoft.com/ja-jp/library/bb978526.aspx

■パッケージのダウンロード
PowerShell 3.0 (Windows 7以降)
http://www.microsoft.com/en-us/download/details.aspx?id=34595

PowerShell 2.0 (Vista以前は3.0非対応)
http://support.microsoft.com/?kbid=926140

■参考
http://www.atmarkit.co.jp/fdotnet/special/powershell01/powershell01_01.html
http://oka326.blogspot.com/search/label/PowerShell
http://d.hatena.ne.jp/newpops/
http://blogs.msdn.com/PowerShell

■過去スレ
Windows PowerShell Part4
http://echo.2ch.net/test/read.cgi/win/1359719778/
0002名無し~3.EXE
垢版 |
2016/09/19(月) 10:58:01.35ID:9ECaRHvR
Windows Management Framework 4.0
https://www.microsoft.com/ja-jp/download/details.aspx?id=40855
Windows Management Framework 5.0
https://www.microsoft.com/en-us/download/details.aspx?id=50395

PowerShell スクリプト
https://msdn.microsoft.com/ja-jp/powershell/scripting/powershell-scripting
Windows PowerShell Desired State Configuration の概要
https://msdn.microsoft.com/ja-jp/powershell/dsc/overview

Announcing Windows Management Framework (WMF) 5.1 Preview
https://blogs.msdn.microsoft.com/powershell/2016/07/16/announcing-windows-management-framework-wmf-5-1-preview/
PowerShell をオープン ソース化、Linux で利用可能に
https://blogs.technet.microsoft.com/mssvrpmj/2016/08/26/powershell-%e3%82%92%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3-%e3%82%bd%e3%83%bc%e3%82%b9%e5%8c%96%e3%80%81linux-%e3%81%a7%e5%88%a9%e7%94%a8%e5%8f%af%e8%83%bd%e3%81%ab/

フィードバックはUserVoiceへ
https://windowsserver.uservoice.com/forums/301869-powershell
0005名無し~3.EXE
垢版 |
2016/09/22(木) 22:12:13.39ID:Wyk9Ki5l
         ..◇・。..☆*。
   ゜゜・*:..。.。★◎@ ○☆。..:*・゜
 ゜゜・*:..。.。◇@☆*・゜★。。.:*・☆*・。..:*・゜
。..:○★◎☆。∂∇。★◎*・゜゜。◎★
   ◎☆◇☆。*・.。..☆◎。.:☆◇*.....。
  ゜゜・*:..。.*・☆◎。__☆◎*・。..:*・゜ ゜
        \       /
          \    /
     . ∧_∧\ /
      (´・ω・) ∞ >>1乙(´・ω・) ス
      / つ つ△
    〜(   ノ
       しし'
0006名無し~3.EXE
垢版 |
2016/09/26(月) 21:20:15.54ID:z2cID8Qn
質問なのですが、以下のように「C:\Hoge\」に複数のテキストファイルがあるとします。(この例では3つ)

 C:\Hoge\ログ@.txt 1KB
 C:\Hoge\ログA.txt 5KB
 C:\Hoge\ログB.txt 3KB

これらのテキストファイルの内容を全部つなげて以下のように1つのテキストファイルに出力したいのですが
Powershellではどのように記述すればよいのでしょうか?

 C:\Hoge\ログALL.txt 9KB
0007名無し~3.EXE
垢版 |
2016/09/26(月) 22:23:36.09ID:d2BX5Ni7
Get-Content C:\Hoge\ログ@.txt, C:\Hoge\ログA.txt, C:\Hoge\ログB.txt >> C:\Hoge\ログALL.txt
0008名無し~3.EXE
垢版 |
2016/09/26(月) 22:53:21.32ID:z2cID8Qn
>>7
レスありがとうございます。
ただ>>6の例では3つですが、3つとは限らないんです。
つまり「C:\Hoge\*.txt」を全部つなげて「C:\Hoge\ログALL.txt」に出力したいんです。
0009名無し~3.EXE
垢版 |
2016/09/26(月) 22:55:18.04ID:z2cID8Qn
>>7さんのをヒントに考えるとGet-Child-Itemを使えばいいのかな?ちょっと自分でも考えてみます。
00109
垢版 |
2016/09/27(火) 00:37:01.75ID:p0vYHT62
>>7さんのヒントを元に試行錯誤したところ、以下で出来ました。
どうもありがとうございます!

Get-Child-Item "C:\Hoge" | Get-Content | %{$_ >> "C:\Hoge\ログALL.txt"}
0011名無し~3.EXE
垢版 |
2016/09/27(火) 02:00:05.55ID:DzYH4Kq+
本当にできたんかね、Get-Child-Item なんて無いし作れもしないはずだが
ついでに上の一行ごとに追加書き込みしててすごく遅そう
これでいいんじゃ

Get-ChildItem C:\Hoge\*.txt | Get-Content > C:\Hoge\all.txt
0012名無し~3.EXE
垢版 |
2016/09/27(火) 03:15:15.83ID:KNIbhKsq
Get-ChildItem C:\Hoge\*.txt | Get-Content | Add-Content C:\Hoge\ログALL.txt
0013名無し~3.EXE
垢版 |
2016/09/27(火) 06:34:11.97ID:MKOsVyI0
問題起こして転職する奴が人の作ったスクリプトかっぱらって就活に利用しようとしてるんだけどコード的に防ぐ方法ってあるのかな。
0014名無し~3.EXE
垢版 |
2016/09/27(火) 07:48:20.64ID:OTD14aae
Windows PowerShellからbash
0015名無し~3.EXE
垢版 |
2016/09/27(火) 11:25:13.45ID:Yz0XGT+W
>>13
所詮スクリプト、どんな対策をしたところで除去は容易。
第一、コード持ち出そうとしている奴へ今対策を打ったところで、既にそいつは対策前のコードをコピってるだろうから無意味。
次の会社にそいつがやらかしたことを教えてやる方が早い。
001710
垢版 |
2016/09/27(火) 22:48:00.21ID:p0vYHT62
>>11
確かにこちらの方が高速ですね。どうもありがとうございます。これを使わせていただきます。
ご指摘の件は実際に動かしたコードを2chに書き込む時にエイリアスの「gci」を
エイリアスではないコマンドレット名に手で書き直したために起こりましたw

>>12
それだとうまくいきませんでした。(同じ結果が2回出力されてしまいます)
001817
垢版 |
2016/09/27(火) 22:58:58.49ID:p0vYHT62
>>12
あっ、すみません。勘違いでした。うまくいきました。
ただファイルの文字コードがSJISになってしまいました。
(元々ある「*.txt」のファイルの文字コードは全てUnicode)
0019名無し~3.EXE
垢版 |
2016/09/27(火) 23:07:08.90ID:B/K1pOX1
デフォルトがSJISなのでそうなる
必要なら-Encodingオプションに適切な文字コードを指定すれば良い
0020名無し~3.EXE
垢版 |
2016/09/29(木) 02:29:27.57ID:ZA7EtaV5
>>19
なるほど!確かに文字コード指定してませんでした。

みなさん、質問ばかりでスレ汚しすみませんでした。ROMに戻ります。
0021名無し~3.EXE
垢版 |
2016/10/29(土) 10:34:36.78ID:h4aFnudW
COM経由でexcel操作するの楽しいな
officeにコンソールが付いたみたいで新鮮
0022名無し~3.EXE
垢版 |
2016/10/29(土) 16:20:47.97ID:7tjCkdfK
Office365でちょっと使う必要があって触り始めたのですが、
Get-MessageTraceDetail って言うコマンドレットのパラメータに「Event」ってのが
あるんですが、このEventに指定できるパラメータを調べることは出来ますか?

ヘルプを見ると、「Event パラメーターは、メッセージ イベント別にレポートをフィルター処理します。
以下は一般的なイベントの例です。」とあって、7個くらいパラメータ載っているですが、
そこに載っているパラメータでうまくフィルタが出来なくて困っています。
0023名無し~3.EXE
垢版 |
2016/11/03(木) 20:45:28.55ID:eD1fiDL4
最近クリックゲームにはまっててパワーシェルでオートクリッカーを作ったわ
デフォルトでskeyでオンオフ切り替え 連射の調整はstart-sleepを各自調整してください
デスクトップで暴発するとかなりウザイんで移動する時注意

#auto Sheqel cliker beta
# Default s key Toggle ON OFF

$f = 0
$mode = $false
$source = @"
using System;
using System.Runtime.InteropServices;
public static class ascl{
const int MOUSEEVENTF_LEFTDOWN = 0x0002 ;
const int MOUSEEVENTF_LEFTUP = 0x0004 ;
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern int GetKeyState(int nVirtKey);
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
public static int keyhook(){
return GetKeyState((int) 0x53);
}

public static void lc(){
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

}

}
"@
0024名無し~3.EXE
垢版 |
2016/11/03(木) 20:45:54.96ID:eD1fiDL4
#残り
Add-Type -Language CSharp -TypeDefinition $Source
while($true){

$f= [ascl]::keyhook()
if($f -eq -127 -or $f -eq 1){ $mode = $true}
else{ $mode = $false}

if($mode){ [ascl]::lc() }
start-sleep -m 3

}
0025名無し~3.EXE
垢版 |
2016/11/04(金) 02:20:16.95ID:wZvzbu2z
コード晒すならpastebinやgistを使えば?
あとmouse_eventじゃなくてsendInput使うの推奨じゃなかったっけ?
0026名無し~3.EXE
垢版 |
2016/11/04(金) 13:02:40.91ID:le7Ds8dw
コマンドレット引数の文字列化規則がよくわからん
次の6、7番の改行が気持ち悪いのだが……

1. echo a('b')c # =>
0027名無し~3.EXE
垢版 |
2016/11/04(金) 13:08:10.57ID:le7Ds8dw
あれ、書き損じてるな

1. echo a('b')c # ⇒"a`nb`nc"
2. echo a('b') # ⇒"a`nb"
3. echo ('b')c # ⇒"b`nc"
4. echo a$('b')c # ⇒"abc"
5. echo a$('b') # ⇒"ab"
6. echo $('b')c # ⇒"b`nc"
7. echo $('b')c$('d') # ⇒"b`ncd"

これはこういう解釈になってるわけ?
4. echo a$('b')c # ⇒ "a$('b')c"
5. echo a$('b') # ⇒ "a$('b')"
6. echo $('b')c # ⇒ "$('b')", "c"
7. echo $('b')c$('d') # ⇒ "$('b')", "c$('d')"
002827
垢版 |
2016/11/04(金) 13:16:26.28ID:le7Ds8dw
おっと、カンマ(配列)じゃなくて空白でセパレートしてるのか

gi $(1),2 ⇒ OK
gi $(1)2 ⇒ 引数 '2' を受け入れる位置指定パラメーターが見つかりません
0029名無し~3.EXE
垢版 |
2016/11/04(金) 18:04:01.72ID:5cHlI/Na
uniqueってコマンドの正体なんだかわかりますか?
Get-Uniqueと同じように使えるんでこいつのエイリアスかと思ったんだけど
Get-AliasとかGet-Commandやっても見つからないんですよね。
0031名無し~3.EXE
垢版 |
2016/11/04(金) 23:56:49.59ID:5cHlI/Na
>>30
なるほどGet-の省略なのか。
ありがとう。
0032名無し~3.EXE
垢版 |
2016/11/07(月) 22:12:49.46ID:pMnfcULw
PS C:\Users\bbb\Desktop> $h= @{
>> q="ssssss"
>> e="ffffff"
>> }
>>
PS C:\Users\bbb\Desktop> $h.GetType()

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


PS C:\Users\bbb\Desktop> $h["q"]
ssssss

これセミコロン要らんのな 最近気付いたわ
0033名無し~3.EXE
垢版 |
2016/11/07(月) 22:15:04.46ID:pMnfcULw
まぁ便利と言えば便利だが色々謎仕様が多いわ
それより日本語のHELPをさっさと作れよ ゴミ野郎が
0034名無し~3.EXE
垢版 |
2016/11/07(月) 23:31:52.91ID:9WKArPQZ
>>33
それは私が今よりもかなり若い時〜♪
0035名無し~3.EXE
垢版 |
2016/11/08(火) 23:26:14.11ID:V64XMSZ7
v5とか最早ヘルプなんて無いも同然
0037名無し~3.EXE
垢版 |
2016/11/09(水) 21:35:11.96ID:JSmB72oY
Get-EventLogで、-After オプションで日付指定すると、コマンドが終了までの
レスポンスがとても悪いんだけど、画面に表示されないだけで全部取得してるのかな?

Get-EventLog -LogName system -EntryType Error,Warning
これは普通に早い

Get-EventLog -LogName system -EntryType Error,Warning -After "2016/11/06 00:00:00"
11/06までのログは直ぐ出てくるけど、11/06まで表示すると少しの間止る。

100台程度のサーバのログを取りたいんだけど、日付指定すると遅すぎて
どうしようか考え中。
何か解決方法ない?
0038名無し~3.EXE
垢版 |
2016/11/09(水) 23:07:42.60ID:I3m+Pe2E
イベントログ取れるならGet-EventLogじゃなくてもいいってことならGet-WinEvent使うとか
Get-WinEvent -FilterHashtable @{LogName='System'; level=2,3; StartTime='2016/11/6 00:00:00'}
0039名無し~3.EXE
垢版 |
2016/11/10(木) 21:53:33.25ID:ra4IQPMx
>>38
Get-WinEventをローカルで試したら早くて必要な情報も取れたからこれは良いと思って
リモートのサーバに実行したら、動作が不安定というか。

1回目 RPC関係のエラー
2回目 普通にログを取得

てな感じで、ログが取れたり取れなかったりして、半日位いろいろしてみたけど俺には原因を
掴む事が出来んかった・・・。
0040名無し~3.EXE
垢版 |
2016/11/12(土) 00:11:34.01ID:6CFwW7sf
Get-WmiObject経由で、イベントログ取ったらかなり高速に取れそうだわ。
時間がDMTF形式なのがちょっとめんどいけど。
0042名無し~3.EXE
垢版 |
2016/11/18(金) 21:07:19.95ID:UO25HJDX
> 8,4,3,9,11 -gt 6
8
9
11
> (8,4,3,9,11)[1] -gt 6
False
> (8,4,3,9,11 -gt 6).GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array

何が何でも独自色を出したいのか知らんが使いにくいわ
ゴミ見たいな機能を付ける暇が有ったらヘルプファイルの翻訳でもやれよ 間抜け野郎が
0043名無し~3.EXE
垢版 |
2016/11/19(土) 00:35:16.90ID:BCWn19Nl
>>42
参考までに聞きたいんだけどarrayとintに比較演算子を使用した場合
どうなれば満足なの?
0044名無し~3.EXE
垢版 |
2016/11/19(土) 03:14:05.86ID:QSSkWNbn
>>42
何がしたいんだw
カンマで配列になるのはかなり初期からの仕様だよ、「ゴミ見たいな機能」を新たに付けてるわけじゃないわな
クラス構文とかだったらまだ分かるけど
0045名無し~3.EXE
垢版 |
2016/11/19(土) 16:18:23.45ID:Qm+9s3oR
>>44
あの一々これに時間割いてやる暇は無いから
こんなもんは単なる道具で利用価値がなきゃ放り投げるだけだからw
これ使う人間がいい人なのを期待してるの??
まぁJ#と同じ惨めな運命を辿りそうだが
0047名無し~3.EXE
垢版 |
2016/11/19(土) 21:20:18.83ID:ftrzKqNO
よくわからないがエスパーすると…
[n]を書き忘れるバグを作って調査に手こずり、文法エラーだったら即解決できたのにチクショウゴミ言語めと逆恨み、ってとこか?
だとすると、間抜け野郎が、という自虐めいた〆が悲哀だな

シェルスクリプト言語なら厳格さによるフェイルファストよりもシンタックスの手軽な多機能さを優先するのはおかしなことではないと思うが
0048名無し~3.EXE
垢版 |
2016/11/21(月) 02:54:20.13ID:r8xm8H01
PowerShell ってシェルじゃないよねぇ...
0049名無し~3.EXE
垢版 |
2016/11/21(月) 08:36:35.07ID:6lPgz5to
とりあえず>>48にとってのシェルの定義を教えろ
0050名無し~3.EXE
垢版 |
2016/11/21(月) 10:22:50.66ID:licvoAk1
パワーシェル(シェルとは言っていない)
貴様がどんなにシェルスクリプトの座を狙おうと、Win+Xで起動するその日まではまだ認めんぞーとかそういう話?
0052名無し~3.EXE
垢版 |
2016/11/21(月) 13:48:42.89ID:vf3ZOg7H
まぁ時間を費やしてまで覚える価値は無いわなw
0053名無し~3.EXE
垢版 |
2016/11/21(月) 14:46:33.99ID:6vKvisrN
じゃあ何だったら覚える価値あるの?
0054名無し~3.EXE
垢版 |
2016/11/21(月) 15:28:09.39ID:fKSgjv7B
>>53
否定したいがための投稿だから
付き合う必要なし
0057名無し~3.EXE
垢版 |
2016/12/03(土) 16:01:05.56ID:KgnhFHMj
凄く初歩的な事かもしれないけど、教えて下さい。
下記の用なxmlがあったとして、要素の指定に名前を指定しての
アクセスはどうやってするのでしょうか?

$xml = [xml](Get-Content c:\aaa.xml)

$xml.products.product[0].list[0] <-listのoptionが全部表示される
$xml.products.aaaa.1111 <-こんな感じに指定したら何も帰ってこない。

<products>
<product name="aaaa">
<list type="1111">
<option>XXXXXXX</option>
</list>
<list type="2222">
<option>YYYYYYY</option>
</list>
</product>
<product name="bbbb">
<list type="1111">
<option>XXXXXXX</option>
</list>
<list type="2222">
<option>YYYYYYY</option>
</list>
</product>
</products>
0061名無し~3.EXE
垢版 |
2016/12/19(月) 20:09:46.34ID:ZYBUmSax
PHPやRubyの代替として、PowerShell触り始めたが・・・

代替にはならなそうな気がしてきた。
0064名無し~3.EXE
垢版 |
2016/12/19(月) 21:41:24.86ID:vdgMzxFG
標準エラーに文字列を表示する方法ありますか?
0069名無し~3.EXE
垢版 |
2016/12/20(火) 21:12:18.11ID:pfM2YxEq
Write-Errorって終了しないエラーを投げるcmdletなんだろうね
でthrowは終了するエラーを投げる
007067
垢版 |
2016/12/21(水) 12:06:10.38ID:DtaPfDsO
>>68
リンク先の人が指摘している問題を確認できました? >>67 を書き込む前に、

$info = New-Object Diagnostics.ProcessStartInfo
$info.FileName = 'powershell.exe'
$info.Arguments = '-Command "$Host.UI.WriteErrorLine(''文字列'')"'
$info.UseShellExecute = $false
$info.RedirectStandardError = $true

$process = [Diagnostics.Process]::Start($info)
$process.StandardError.ReadLine()

というコードで、プロセスの標準エラー出力に書き込まれるのを確認していました。
リンク先を読んで、

@echo off
powershell.exe -NoProfile -Command "$Host.UI.WriteErrorLine('文字列')" 2> error.txt
type error.txt

というバッチファイルを実行してみましたけど、問題なく動きます。
リンク先の人は、どういうケースで問題になると指摘しているのでしょう?
007167
垢版 |
2016/12/21(水) 14:04:48.74ID:DtaPfDsO
分かったかも。

powershell.exe "[Console]::Out.WriteLine('文字列')" > out.txt 2> error.txt
powershell.exe "[Console]::Error.WriteLine('文字列')" > out.txt 2> error.txt
powershell.exe "$Host.UI.WriteErrorLine('文字列')" > out.txt 2> error.txt
ここまでは、すべて期待通りに動きます。

powershell.exe "[Console]::Error.WriteLine('文字列')" > out.txt
これも期待通りです。

powershell.exe "$Host.UI.WriteErrorLine('文字列')" > out.txt
out.txt に「文字列」が書き込まれます。なんでやねん。
0072名無し~3.EXE
垢版 |
2016/12/21(水) 16:42:16.95ID:eFs7YsLn
1> でリダイレクトしたら問題を回避できそうな気がする
0073名無し~3.EXE
垢版 |
2016/12/21(水) 18:05:33.25ID:80IrQ8di
>>71
いま試したんですが、
"$Host.UI.WriteErrorLine('文字列')" の代わりに
"Write-Error '文字列'" で表示させたり
"1/0" でエラー出したりしても
同じ結果になりますね。
0074名無し~3.EXE
垢版 |
2016/12/22(木) 00:13:54.74ID:LgXh1f2P
標準エラーは実体が想定されない出力ストリームなのに、
そこへ文字を赤くして出力してるHost.UI.WriteErrorLineの気持ち悪さ
0075名無し~3.EXE
垢版 |
2016/12/24(土) 06:18:26.14ID:qANWVC7A
テンプレートをカスタムすれば
0076名無し~3.EXE
垢版 |
2017/01/07(土) 15:27:42.25ID:x3OHE4kN
あけおめ!

Stop-ProcessでFireFoxをシャットダウンさせてるんだけど
次回起動時に異常終了扱いになってセッションの復元を試みる画面が表示される。

普通にFireFoxのメニューから「終了」を選んだかのようにシャットダウンさせるのってスクリプトじゃ難しいですかね?
0078名無し~3.EXE
垢版 |
2017/01/08(日) 21:56:46.91ID:NNyYHXId
しかしほんとにつかえーねゴミツールだなwww
非同期とか結局C#でやった方が早いし
ガラクタの癖にやたら労力だけは要求するし
あといつになったら日本語のヘルプを作るんだよ
まぁオライリーの奴を向こうでかっぱらったから要らんけどさ
0079名無し~3.EXE
垢版 |
2017/01/14(土) 23:58:05.78ID:YMut6ZpN
一応シェルらしいから大目に見てあげて(棒
0080名無し~3.EXE
垢版 |
2017/01/19(木) 04:35:51.75ID:+ZmvPHpJ
Windows10でPushbulletを使ってるんですが通知を読み取る方法は無いでしょうか?

特定のメッセージを受け取ったら任意のコマンドを実行といった具合に使いたいのです
0082名無し~3.EXE
垢版 |
2017/01/20(金) 21:17:24.69ID:zK8G/Mds
ちとあぶないスプリクトを組んだんだが
OSはWindows7 PowerShellはVer.2です。

http://pastebin.com/57quuSJi

理由はMVNOを変えた時不調で不審なアクティビティが検出され
強制的にPasswordを変更させられたのを元に戻す為。

で一応は動作したのだが不満な点がありまして

$dom_userPWD1=$doc.getElementsByTagName("input") | Where-Object{$_.uniqueID -match "ms__id\d*[13579]\b"}

inputタグで抽出したのをuniqueIDで識別したのですが処理毎に
uniqueIDが変わって使いにくい、奇数と偶数で識別という
トリッキーな手段で解決したのですが、

aria-labelの「新しいパスワード」・「新しいパスワード確認」
を使って識別する方法はありますでしょうか。

あと
($doc.getElementsByTagName("div") | Where-Object{$_.className -eq "O Ya rb pa"}).click()

divで抽出してclassNameで目的のリンクを一致させてクリックさせているのですが
divで抽出しているせいか処理に時間がかかってしまいます。

getElementsByClassNameが使えないかとやってみたが

>[mshtml.HTMLDocumentClass] に 'getElementsByClassName' という名前のメソッドが含まれないため、メソッドの呼び出しに失敗しました。

と出てうまくいきません。
クラス名で一発で処理できる方法はありませんでしょうか。
0083名無し~3.EXE
垢版 |
2017/01/20(金) 23:41:33.44ID:FV68uxF3
>>82
「大型犬の死骸を溶かせる薬品有りませんか」って質問と同じ匂いがする
0084名無し~3.EXE
垢版 |
2017/01/21(土) 00:22:28.80ID:A+0QI3YR
querySelectorAllとかどうだろう
008582
垢版 |
2017/01/22(日) 03:10:03.19ID:PGI3pDpr
>>84
querySelectorAllやってみたんですけどgetElementsByClassNameと
同じパターンでできず、やり方があるんだろうけどそこがわからず。

getElementsByClassNameももう一回やってみたけれどエラーは中身が
取り出せず断念、この場合PowerShellだけじゃなくてDOMや.NET Framework
もからんでくるのでわけわかめ状態となっている。
0086名無し~3.EXE
垢版 |
2017/01/22(日) 12:23:42.85ID:VYxVfXkX
試してないけどこんな感じになるんじゃないかな
$doc.querySelector('div.O.Ya.rb.pa')
008782
垢版 |
2017/01/22(日) 18:28:03.43ID:PGI3pDpr
ここの部分を
($doc.getElementsByTagName("div") | Where-Object{$_.className -eq "O Ya rb pa"}).click()
>>86を参考にして
($doc.querySelector('div.O.Ya.rb.pa')).click()
上記のように書き換えて実行してみたけど
やはりメゾットがないと出てエラー

どのオブジェクトで使えるのかとPowerShellで使えるのかが
問題、javaScriptは結構例があるんだけどね。
0088名無し~3.EXE
垢版 |
2017/01/22(日) 22:41:39.47ID:VYxVfXkX
うーむ、うちのwin10だと動いたんだが
こんな感じでわかる所から攻めてみたらどうだろう

$doc.getElementById('view_container').firstChild.firstChild.children[2].children[1].firstChild
(例によって試してないのであしからず)
0089名無し~3.EXE
垢版 |
2017/01/23(月) 02:45:53.93ID:qKR6gxXH
IE8以降のWin7なのにquerySelectorが使えないということはセキュリティー設定がらみでquirksでパースされてる可能性も
しかし確かに怪しい臭いのする質問だな
0090名無し~3.EXE
垢版 |
2017/01/31(火) 20:49:16.78ID:5vNDYCvm
C:\hoge\hogehoge\hage.txt にあるファイルをドライブだけ変えて
D:\hoge\hogehoge\hage.txt にコピーしたいのですが簡単な方法はありませんか?
フォルダ部分の「D:\hoge\hogehoge\」は最初は存在しません

$a = "C:\hoge\hogehoge\hage.txt"
$b = "D:\hoge\hogehoge\hage.txt"
Copy-Item $a $b

とやるとパスの一部が見つかりませんといわれてしまいます
地道にSplit-Path -Parentでファイル名を取り除いた部分を得てからそのフォルダを
New-Itemで作って、その後Copy-Itemするしかないんでしょうか?
0092名無し~3.EXE
垢版 |
2017/01/31(火) 22:02:36.10ID:+F+0kaKG
>>91
わからないのにいちいち口挟まなくていいよ
0093名無し~3.EXE
垢版 |
2017/01/31(火) 23:12:49.91ID:aGeM6l5D
ttps://www.google.co.jp/amp/tech.guitarrapc.com/entry/2014/08/12/081637%3Famp%3D1#amph=1
0094名無し~3.EXE
垢版 |
2017/01/31(火) 23:38:12.87ID:aFPbpIBp
>>90
糞ダサだけどxcopyを使えば期待する動きになる

xcopy c:\hoge.txt d:\a\b\c\d\e\f\g\hoge.txt

Dドライブに\a\b\c\d\e\f\g\ が無ければ勝手に作ってくれる
0095名無し~3.EXE
垢版 |
2017/01/31(火) 23:57:55.76ID:47xgv6Fv
フォルダ作成するならこんな感じかな
dir $b | % { md -Force $_.DirectoryName }
xcopyは決してダサくないしむしろ最適解だと思う
シンプルに外部コマンドを呼べることがPSの強みでもあるし
0096名無し~3.EXE
垢版 |
2017/02/01(水) 00:16:49.93ID:JrEsEwkh
>>95
細かいことだけど、dir〜のとこは
Get-Item -LiteralPath $b
が良いかと

入ってるのがもしフォルダ名だったらとか、もし[]が入ってたらとか不安になる
0097名無し~3.EXE
垢版 |
2017/02/01(水) 12:43:16.10ID:s0T5hf/E
今はxcopyじゃなくてrobocopyでしょ
0098名無し~3.EXE
垢版 |
2017/02/01(水) 19:27:08.33ID:OMIQfLqs
>>97
馬鹿は黙ってろって言われてるのが理解できん?
0099名無し~3.EXE
垢版 |
2017/02/01(水) 23:12:17.04ID:1IZK+YV5
無理にPowershellでやろうとする方がよっぽどの馬鹿だよ
0100名無し~3.EXE
垢版 |
2017/02/05(日) 02:05:39.87ID:yChZqYfj
PowerShellで外部コマンドを実行する際、最初から優先度を指定して起動させる
方法はありませんか?

起動中のプロセスの優先度を変える方法はググググッていくつか例が見つかったんですが
それだと一旦「優先度=通常」で起動して、即座に「優先度=低」に変更する、みたいな
感じになってしまうので最初から優先度低で起動したいです
レスを投稿する


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