Witam,
Potrzebuje "skrypt, makro, program" ktory bedzie kopiowal plik o zadanej nazwie (grupa plikow) do innego folderu.
Wstepnie napisane przez znajomego zostalo cos takiego (co widac ponizej). Uruchamiane jest to jako plik BAT, uruchamiac sie musi pod windows 7. Wszelkie pomysly i modyfikacje mile widziane ew napisanie tego w czyms innym.
spoiler start
@set data=%date%
@SET CURRENT_DATE=%date: =0%
@SET YEAR=%CURRENT_DATE:~0,4%
@SET MONTH=%CURRENT_DATE:~5,2%
@SET DAY=%CURRENT_DATE:~8,2%
@echo Dzisiaj jest:
@echo %YEAR%
@echo %MONTH%
@echo %DAY%
xcopy e:\skany\%YEAR%_%MONTH%_%DAY%\abcde*.pdf K:\skany\abcde\*_*.pdf /-y
xcopy e:\skany\%YEAR%_%MONTH%_%DAY%\fghij*.pdf K:\skany\fghij\*_*.pdf /-y
xcopy e:\skany\%YEAR%_%MONTH%_%DAY%\klmno*.txt K:\skany\klmno\*_*.pdf /-y
@pause "Zakonczono kopiowanie"
spoiler stop
Wrzuciles kod do spoilera, nie napisales z czym konkretnie jest problem, czego wlasciwie oczekujesz?
Z tym spoilerem to mialo byc inaczej.
Co do oczekiwan.
Grupa plikow o zadanej nazwie ( np: jacek123456 - gdzie liczby sie zmieniaja) ma zostac skopiowana z jednego miejsca do drugiego. Pliki jacek do jednego folderu, iwonka do drugiego a basia do trzeciego. Skrypt musi sprawdzic foldery na dysku A i skobiowac brakujace na dysku B. Cos jak synchronizacja danych tyle ze z zachowaniem pewnych katalogow oraz z podzialem na jacka, iwonke i basie
No nie dziala.
Zwraca blad ze za duzo parametrow.
Przeciez gdyby dzialalo to bym nie prosil o pomoc
Ale co i kiedy zwraca blad? Bo ten skrypt jest prawidlowy, xcopy tez jest poprawnie wywolane i ma dobre parametry...
Nie jestem pewien czy nazwy katalogów %YEAR%_%MONTH%_%DAY% nie powinny być w ""
Niekoniecznie, tez o tym pomyslalem i sprawdzilem czy nie ma spacji - tworzone jest cos takiego:
Dzisiaj jest:
'2015'
'10'
'26'
I parametry dla xcopy wygladaja tak:
e:\skany\2015_10_26\abcde*.pdf K:\skany\abcde\*_*.pdf /-y
xcopy przynajmniej u mnie uruchamia sie z tym bez problemu, zglasza tylko, ze nic nie zostalo skopiowane bo nie ma takich partycji, jak e czy k.
Btw, "*_*.pdf" w czesci "K:\skany\abcde\*_*.pdf" jest zbedne, wystarczy podac katalog docelowy "K:\skany\abcde\" - ale i z tym nie robi u mnie problemu.
A u mnie zwraca blad ze za duzo parametrow :\
Nie rozumiem :[
EDIT:
w sensie w domu tez dziala, a w robocie nie dziala.
Jezeli nie to, to byc moze cos innego pod przyciskiem "ustawienia dodatkowe". Te pozornie błache ustawienia mogą czasami sporo namieszać.
Podmien linijki gdzie masz uruchamiane xcopy
xcopy e:\skany\%YEAR%_%MONTH%_%DAY%\abcde*.pdf K:\skany\abcde\*_*.pdf /-y
xcopy e:\skany\%YEAR%_%MONTH%_%DAY%\fghij*.pdf K:\skany\fghij\*_*.pdf /-y
xcopy e:\skany\%YEAR%_%MONTH%_%DAY%\klmno*.txt K:\skany\klmno\*_*.pdf /-y
na
@echo e:\skany\%YEAR%_%MONTH%_%DAY%\abcde*.pdf K:\skany\abcde\*_*.pdf /-y
@echo e:\skany\%YEAR%_%MONTH%_%DAY%\fghij*.pdf K:\skany\fghij\*_*.pdf /-y
@echo e:\skany\%YEAR%_%MONTH%_%DAY%\klmno*.txt K:\skany\klmno\*_*.pdf /-y
Odpal to w linii komend i daj znac co sie wyswietla.
No wiec troche sugerujac sie tym co napisaliscie a troche logika problem rozwiazalem nastepujaco:
- Nazwy folderow skrocilem (mialem w pracy dluzsze nazwy) i zeby nie bylo wiekszych klopotow zapisalem w formacie 8.3 czyli abcdef~1
- zmienilem parametry z /-y na /Y /D (sam parametr -y wymuszal kazdorazowe potwierdzanie czy nadpisac plik, zmiana go na /Y z klucza daje informacje ze ma nadpisac, w polaczeniu ze /D nadpisuje tylko pliki ktore na folderze wyjsciowym maja nowsza date niz na folderze docelowym)
- dodalem %YEAR%_%MONTH% na koncu foldera docelowego przez co uzyskalem ze w momencie kopiowania skrypt tworzy mi odpowiednio nazwany folder do ktorego kopiuje.
No i tak oto problem zostal rozwiazany :D