Nefunkční dávkový soubor v naplánovaných úlohách
Dobrý den,
mám vytvořený následující dávkový soubor:
Set dd=%DATE:~3,2%
Set mm=%DATE:~6,2%
Set yyyy=%DATE:~9,4%
set di=pocasi-%yyyy%ST%mm%%dd%
copy p:\pocasi\%di%.wmv d:\pocasi\ /Y
del d:\pocasi\pocasi1.wmv
ren d:\pocasi\%di%.wmv pocasi1.wmv
pause
pokud soubor ručně spustím, vše proběhne v pořádku. Když jsem si soubor přidal do naplánovaných úloh ve WinXP Pro SP3, tak při provádění příkazu copy... to vyhodí hlášku neplatná cesta. Nevíte někdo proč?! Zkoušel jsem si nastavit u té dané úlohu spouštěcí složku, ale ta na to zjevně nemá vliv... Děkuji za pomoc!
Ještě bych měl jednu otázku, nevíte někdo jak ošetřit, aby se příkaz del... provedl pouze za předpokladu, že %di%.wmv existuje? Díky
Před tím příkazem copy bych zkusil přepnout přímo do toho adresáře příkazem CD a pak už jen kopírovat soubor bez cesty.
Smaže, pokud existuje:
díky za tu podmínku
tak přepnutí na disk "p" (p:) funguje, ale při následném příkazu "cd pocasi" to vyhodí "systém nemůže nalézt uvedenou cestu"! Cesta, ale existuje, pokud spustím cmd a udělám totéž ručně, tak bez problémů... Jedna možná důležitá věc - disk "p" je síťová jednotka (pomocí programu FtpDrive přidán ftp server jako síťová jednotka). V průzkumníku windows (Tento počítač) to píše u tohoto disku "síťová jednotka je odpojena", ale normálně funguje...
No a nechceš použít místo mapování jednotky příkaz FTP?
to jsem zkoušel ale nepovedlo se, už jsem to tu řešil
http://pc.poradna.net/q/view/450544-automaticke-ko pirovani-souboru-z-ftp
Hm, to jsi mohl napsat hned, abychom se netočili stále v kruhu... A když tak nad tím uvažuju, asi ani nebylo nutné zakládat další vlákno.
Ten pasivní/aktivní režim taky nepomohl?
omlouvám se, že jsem nepokračoval ve stejném vláknu...ani aktivní/pasivní režim nepomohl, takže jsem to řešení vzdal a hledal jiné a ten FtpDrive fungoval parádně, nenapadlo mě, že by mohl být nějaký rozdíl, když spouštím soubor přes naplánované úlohy...
Zkusil bych třeba zkontrolovat, zdali je řádně namapován disk p: v čase spuštění úlohy.
záleží na tom co tzn. řádně?! Jak jsem výše psal, je to mapované přes FtpDrive a win píše, že je jednotka odpojena ale normálně funguje. Tímto způsobem je namapována jednotka po celou dobu běhu windowsů...
Abych pravdu řekl, FTPdrive neznám a nikdy jsem nezkusil mapovat si disky přes FTP.
Ale myslím, že tady někde bude zádrhel. Chtělo by se mi připsat, že to určitě není mapování ekvivalentní příkazu net use . Ale je mi zas záhadou, jaktože příkaz přes command line funguje.
jediný rozdíl, když si spustím ručně dávkový soubor a vedle ho spustím z naplánovaných úloh, vidím že při ručním spuštění běží cmd.exe a u druhé varianty svchost.exe
[img]http://www.q3.cz/images/49napl_novan_loha.png [/img]
Disk namapuj.
net use p: \\server\slozka
problém je, že takto namapovat síťovou jednotku lze pouze u serveru ve vnitřní síti (pokud se pletu, tak mě opravte). Když to zkusím s ftp serverem, který není v mojí síti, tak to vyhodí systémovou chybu, že síťový název nelze nalézt...
přidal jsi ten soubor nebo to pouštíš přes jeho zástupce ?
Nemá to být v uvozovkách? protože jestli do toho %di% nacpeš mezeru nebo něco podobnýho tak to nepojede.
copy "p:\pocasi\%di%.wmv" d:\pocasi\ /Y
To že to jede při ručním spuštění /kdoví jestli ne v comandline/ ještě nic neznamená
když už nevím jak tak bych přes naplánované úlohy pustil dávkáč který spouští ten hlavní pomocí
call prasarna.bat
a nemá to být spíš takhle ? anichž bych teda věděl co tam vaříš
Set dd=%DATE:~3,2%
Set mm=%DATE:~6,2%
Set yyyy=%DATE:~9,4%
set di=pocasi-%yyyy%ST%mm%%dd%
ren d:\pocasi\pocasi1.wmv d:\pocasi\%di%.wmv
copy d:\pocasi\%di%.wmv p:\pocasi\ /Y
del d:\pocasi\pocasi1.wmv
pause
Přidal jsem přímo program, ne zástupce.
V uvozovkách to nemusí být, mezera tam není.
S tím call to zkusím, to vypadá celkem nadějně, vůbec mě to nenapadlo. A dám vědět.
Jinak ten můj zápis je správný, vysvětlím jeho funkci:
Na ftp server, který mám namapovaný jako disk p:, mi někdo každý den nahrává soubor s názvem, ve kterém se jen mění datum (nadefinováno jako proměnná di). Ten soubor si zkopíruji na místní disk d:, vymažu soubor s předcházejícího dne (který již byl přejmenován na pocasi.wmv) a současný soubor přejmenuji na ten pocasi.wmv. Je to kvůli programu, ve kterém se mi přehrávají videa s výstupem na externí zobrazovací zařízení, abych nemusel každý den ručně vkládat nový soubor.
tak pomocí "call..." je výsledek naprosto stejný ((
ha! tak jsem to vyřešil! Nainstaloval jsem si program "xecutor", který umí mimo jiného i spouštět programy v uvedený čas a funguje to, jelikož to nespouští jako službu svchost.exe (svchost.exe slouží ke spouštění služeb,ne?). No každopádně to funguje, sice nejsem nadšen, že jsem musel nainstalovat další program, ale co...
Všem děkuji za rady a tipy!