Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Zase navazuji na něco staršího
květen 21
Zase navazuji na něco staršího

Už jsem tu psal před nedávnem o BAT souboru, kterým spouštím svoje PowerShell skripty. Ono se to dá pohodlně naplánovat a nezávisí to na nastavení execution policy (tedy v případě, že ji nemáte vynucenou pomocí GPO).

No a dneska jsem to ještě o něco vylepšil. Obvykle chcete k tomu ještě další BATák, který by nadefinoval naplánovanou úlohu. Jak? Jednoduše. BATy jsou dva druhy přípon BAT a CMD. Takže jsem použil CMD na plánování. Prostě si uděláte tři soubory:

chci-aby-tohle-neco-delalo.ps1
chci-aby-tohle-neco-delalo.bat
chci-aby-tohle-neco-delalo.cmd

Do PS1 vložíte kód, který chcete opravdu provádět.

Do BAT dáte následující:

powershell -NoLogo -ExecutionPolicy Bypass -File "%~d0%~p0%~n0.ps1" > "%temp%\%~n0.log"

A ten CMD se použije na naplánování:

SET /a delay=%random% %% 60 + 1
SCHTASKS /Create /TN "Sevecek PowerShell Tasks\%~n0" /SC DAILY /ST 01:%delay% /RU SYSTEM /TR "%~d0%~p0%~n0.bat" /F

A to je to, co jsme chtěl dneska zdůraznit. Vůbec jsem nevěděl, že v BAT existuje proměnná %random%, která generuje náhodné číslo. A sice jsem věděl, že je možné dělat výpočty, ale netušil jsem, že je tam i operátor pro zbytek (modulo). V mém případě se to krásně hodí na to, abych úlohu naplánoval na nějakou náhodnou minutu.

Krása, ne?

Comments

cmd

- v CMD/BAT se toho da udelat hodne, az mne to prekvapilo, ale je to dost priserny na odladeni, viz http://www.dostips.com/

- mezi BAT a CMD trochu rozdil je, hlavne ve strasich Win9x systemech. http://stackoverflow.com/questions/148968/windows-batch-files-bat-vs-cmd
VasekB on 22.5.2014 11:30

Add Comment

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Type number two as digit *


Semhle vyplňte číslici dvě. Předchozí antispemové pole nefunguje úplně dokonale, zdá se, že jsou i spamery, které pochopily, že je občas potřeba vyplnit autora :-)

Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments