Segítséget kérek WinXP alatt feladat automatizálásra

Szépnapot!

Azzal kezdeném, hogy NEM házi feladatot szeretnék megoldatni a HUP közösséggel!

Arról van szó, hogy változott a munkaköröm egy része, ezzel együtt "természetesen" új feladatok is hárulnak rám. A dolgok jelenlegi menete szerint a feladatot "kézzel" kell megoldani... azaz ott ülök a gép előtt és szépen több programot használva elvégzem amit "a vezetőség elvár" :-)

Amit tennem kell:
-WinSCP segítségével belépek egy szerverre
-kikeresem a cégünk nevét tartalmazó mappát
-kikeresem az aznapi dátumot tartalmazó mappát
-lemásolom a teljes tartalmát a saját gépre, szintén aznapi dátummal ellátott mappába
-PrintConductor nevű program segítségével kinyomtatom a saját gépről az aznapi dátumú mappa teljes tartalmát /kizárólag pdf állományok vannak benne/

A probléma "csupán" annyi ezzel, hogy a nyomtatás iszonyat hosszú ideig tart. Ha meg tudnám oldani ezt a feladatot automatikusan akkor pl reggel 5-kor elindulhatna a nyomtatás és mire bemegyek már csak szortírozni kellene. Most kb 5 percnyi effektív tevékenység miatt kell 1-1,5 órával korábban bemennem és lábat lógatni amíg a nyomtató ontja magából a papírt.

Windows alatt még nem kellett ilyen jellegű problémát megoldanom. Természetesen több órányi "guglizáson" is túl vagyok már, de sajnos még a winscp-t sem sikerült parancssorból normálisan felparamétereznem, hogy automatikusan belépjen :-(

Ha a fent említett programokkal nem megoldható akkor természetesen jöhetnek az alternatívák is. Mivel a cég a feladatot eddig is manuálisan oldotta meg, és úgy most is meg tudom csinálni, ezért pénzt nem kapok programokra /azt meg már többször leírtam, hogy a warez nálam nem játszik/ így ingyenes cuccokra lenne szükség.

A lényeg, hogy nem a cégen könnyítenénk ezzel, hanem csak a saját életemet szeretném probléma mentesebbé tenni.

Minden választ előre is köszönök.

Üdv: Feri

Hozzászólások

Konkrétumot nem tudok neked adni, de logikai "ügymenetet" igen. Valami scripttel le tudod automatán másolni a szerverről a cuccokat, nálunk egy egy kb 50 soros perl script. Belép, kitallóz, másol. Utána keresni kell valami parancssorból ütemezhető nyomtató progit, amit beraksz a taskok közé hogy mikor induljon. Nem tűnik bonyolult feladatnak.
3
up: pdf nyomtató cli-ből: http://www.verypdf.com/pdfprint/pdf-print-cmd.html
-------------------------
127.0.0.1 SWEET 127.0.0.1
AMD Athlon X2 245E@3,1 GHz OC, MSI Radeon 6770 1 Gb GDDR5, Seagate Barracuda, Windows 7 Enterprise

Pár tanácsnak indult, végül megoldottam minden kritikus részt.

Winscp-vel be tudsz lépni, akár a winscp gui-val indítva beállítod a belépési adatokat, jelszót elmenteted vele, akkor parancssorból csak a profil nevét kell megadnod. Biztonságosabb, a jelszót a winscp.ini-ben titkosítva tárolja, nem pedig a batch file-ban van benne pure stringként.

(emiatt meg se néztem, hogy lehet winscp.ini-n kívülről, parancssorból csatlakozási adatokat átadni)

winscp.exe profilneve /command "option confirm off" "put bg.png" "exit"

Winscp, profilneve, majd /command-al belép a saját kis parancssorolós módjába, idézőjelek közt mehetnek a parancsok, get asszem a letöltés, ez lehet *.* is, de akár a komplett mappát is lehúzhatod, exit meg legyen a végén, hogy a winscp ne promptoljon tovább.

A mappabelépéseket egymás után kell megadnod neki, cd-vel, a cégneves gondolom nem gond, a dátumoshoz egy kis help:

(windows xp cmd-vel, újabb lehet máshogy kezeli)

először nyomasd ki vele a %DATE% értékét, és nézd meg milyen formában kell és mi belőle.

%DATE:~0,4% - EZ pl azt jelenti, hogy a nulladik karaktertől, 4 hosszan szedi ki a tartalmat. többet is használhatsz egy sorban, egyeztesd a dátumok formáját, hogy mit hogy írtak, lezáró-% után mehet akármilyen karakter.

elvileg ezzel le is jön minden, ha nem lenne jó a get *.* winscp-ben, akkor van egész mappákra vonatkozó szinkronizálás, én azt használtam:

winscp.exe profil /default "synchronize both c:\Kepek ./image" "exit"

Ez asszem épp feltölti a c-képeket az ftp aktuális image almappájába, esetünkben gyökér/image mert nem léptem semmi mappába.

Ha ez nem lenne elég, szólj.

A print-elést nem tudom mennyire kezeli a printconductor *.* formában, nem használtam még. Ha nem tudná, van Autohotkey, ami képes figyelni, hogy milyen window title és egyéb van épp a print-elés ablakán, várni, stb, kb. ezekkel meg lehet azt is oldani.

Ha könnyűt akarsz .bat fájl, windows ütemezővel, ha biztosat akkor Autohotkey compiled exe, hibanapló fájlban, vagy messagebox-ban ki a végén, illetve van egy olyan, hogy cron for windows, valamilyen kicsit más néven, a cron for windows konkrétan egy perl script, de van exe formában is, csak nem találom a linkjét. Irsz privátban elküldöm mail-ben. (hopp egy vírus)

Azt próbáld ki először, hogy a winscp-vel le tudod e tölteni a fájlokat így, a sync minden fájlt leszed, nem hasonlítgat. Én a helyedben letölteném minden nap az aktuális teljes mappát, és arra küldeném rá a printer-t, így nem kell temp mappázni, törölgetni, gépen is meglesznek a fájlok, stb.

Hali!

A %date% azért problémás mert 2012.08.12 formában adja vissza a távoli szerveren pedig 20120812 a könyvtár neve :-(
Winscp-t ha parancssorból indítom a profilnévvel amiben el van mentve a jelszó akkor is kéri a következőt: Jelmondat a 'imported-openssh-key' kulcshoz, így valószínűleg nem a felhasználói fióknak a jelszava hanem a winscp kéri ahhoz, hogy beolvassa ppk állományt :-(

Üdv:
Feri

date:
szakaszosan dolgozd fel, lásd %DATE:~0,4%, ez kírja az évet, a %DATE:~4,2% a hónap ha jól számolom, ... fentebb leírtam röviden hogy kell szakaszosan.

winscp:
nézd meg elmentette-e tényleg a jelszót...rákérdez, amikor konfigurálod, és be is kell valamit pipálni.

(mennyire biztonságos a gép amin van a feladat? mennyire cél, hogy ne tudjon más is hozzáférni az ftp-hez?)

SZERK.:

foci megadta a választ fentebb a batch-ével:

év - %dt:~0,4%
hónap - %dt:~5,2%
nap - %dt:~8,2%

esetedben a string:
%dt:~0,4%%dt:~5,2%%dt:~8,2%

WinSCP helyett PSCP?

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Windowsos scripteleshez en cygwines dolgokat szoktam hasznalni (van egy elegge megvagott parancsgyujtemenyem), igy hasznalhatom a normal unixos parancsokat meg bash-t (es hordozhato marad, max. a PATH es par egyeb valtozo erteket kell allitgatni ha alapbol nem jo).
Winscp helyett en is a putty reszekent erkezo pscp-t ajanlom.

Inditas tortenhet ugy, hogy:
-ha folyamatosan megy a gep, akkor a scripted is folyamatosan futhat, idonkent var a kovetkezo napig
-ha a bios alarmra magatol ebred, akkor beteheted az inditopultba, es ellenorizheted, hogy hetkoznap van-e, es hajnali 5 korul (hogy a kesobbi rebootnal ne kezdjen nyomtatni)
-hasznalhatsz windowsos feladatutemezot

--
ezt tényleg ennyire nem értitek? - turdus :)

Én írnék rá egy kis programot .NET-ben.
SharpSSH-val (vagy valami hasonló megoldással) letölteném a letöltenivalókat, majd szépen kinyomtatnám.

Fuszenecker_Róbert

A WinSCP-nek direkte adott a .NET-es, és PowerShelles automatizálhatósága, és a lényegi részek példaprogramokból ki is lophatók (akár Perl is használható).

Szóval kis tanulás árán elérhető, hogy a meglévő megoldás mellé alig vagy egyáltalán nem kell telepíteni.

http://winscp.net/eng/docs/library#powershell

- o -

Egyébként is meggyőződésem, hogy aki wint használ, annak éppen annyira érdemes, ha nem elkerülhetetlen beleszoknia a PS-be, mint *nix alatt a shellbe.
Örüljünk annak, hogy van!

AutoIt, nagy kedvencem. Komolyabb feladatra/környezetbe pedig System Center Orchestrator.

Üdv,
Marci