我有以下有趣的小腳本,用于讓用戶自動訂閱一個 youtube 頻道,只是想看看有人可以將這段代碼縮減到什么程度
例如:使用-AssemblyName *m.W*s.F*s而不是-AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms;
$o=New-Object -ComObject WScript.Shell;
Saps https://www.youtube.com/CHANNEL-NAME?sub_confirmation=1;
Sleep 3;
[System.Windows.Forms.SendKeys]::SendWait('{TAB}'*2);
[System.Windows.Forms.SendKeys]::SendWait('{ENTER}');
Sleep 1;
[System.Windows.Forms.SendKeys]::SendWait('%{F4}')
uj5u.com熱心網友回復:
切-AssemblyName到-a,只要前綴唯一就匹配。
在我的上s*ms只匹配 System.Windows.Forms。
您可以削減-ComObject到最短的唯一前綴-c,但您沒有使用 WScript.Shell 物件,因此洗掉該行。
www.從 YouTube 網址洗掉
合并兩個 Tab 和 Enter 以洗掉其中一個 SendWait 行。
[System.從型別名稱中洗掉。
存盤 SendKeys 位以供更短的重用。
我已經放下了,;但他們需要回來才能將其放在一條線上。
add-type -a s*ms
saps https://youtube.com/CHANNEL-NAME?sub_confirmation=1
($w=[Windows.Forms.SendKeys])::SendWait('{TAB}{TAB}{ENTER}')
sleep 1
$w::SendWait('%{F4}')
我認為它很容易得到,也可以存盤SendWait,但是你需要.Invoke()再次填充它。add-type或沒有默認別名new-object。
如果您可以換成 WScript.Shell SendKeys:
$w=New-Object -c wscript.shell
saps https://youtube.com/CHANNEL-NAME?sub_confirmation=1
$w.SendKeys('{TAB}{TAB}{ENTER}')
sleep 1
$w.SendKeys('%{F4}')
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535814.html
標籤:电源外壳
