Mějme od dřívějších časů připravený baťák (.bat soubor, nyní už pod Windows), který se vyskytuje na nenamapovaném síťovém disku. Dělá jednoduché operace jako výpis adresáře (dir) do souboru a spuštění php scriptu, který tento soubor zpracuje a výsledek zapíše do souboru xml (ano, jde o velmi jednoduchý generátor sitemap). Výsledkem po spuštění je ale
nicuvedené hláškou:
Program CMD.EXE byl spuštěn a jako aktuální adresář byla nastavena cesta uvedená výše. Cesty UNC nejsou podporovány. Jako výchozí bude použit adresář Windows.To znamená, že vše se pak chce odehrávat úplně nesmyslně v adresáři c:\Windows.
Jednoduché řešení jsem našel v textu Simplify UNC usage in command line batch files na Remote Administration For Windows:
pushd \\server\share
příkaz1
příkaz2
popd
Cesta je ad-hoc namapovaná na disk s písmenkem přiděleným od konce abecedy. Po provedení příkazů je písmenko zase uvolněno. Na to nezapomeňte, nebo se vám budou
hromadit horníci!
V článku Get Directory Path of an executing Batch file jsem našel další vylepšení - samo-určení cesty, kde se baťák nalézá. Kód pak vypadá takto:
pushd "%~dp0"
příkaz1
příkaz2
popd
Stačí tedy přidat jen tyto dva řádky na začátek a konec vašeho starého BAT souboru a je hotovo :-)
Žádné komentáře:
Okomentovat