omen_s napisał: Jaka do tego komenda pod dosa ?
1.kopiuje dany plik w dane miejsce ,ale jesli dany plik w danym miejscu o tej samej nazwie juz sie tam znajduje to ,to polecenie juz go nie kopiuje
2.jesli dany folder juz istnieje to nie tworzy go ponownie
Zacznijmy od konca: w DOS, jesli folder juz istnieje, to polecenie MD FOLDER (MD od ang. Make Directory) po prostu nie utworzy go po raz drugi. Z punktu widzenia systemu folder i plik to niemal to samo: nie moga istniec dwa pliki o tej samej nazwie, na tej samej sciezce. Zatem nie ma potrzeby sprawdzania czegokolwiek.
Poleceniem warunkowym IF NOT EXIST mozesz sprawic, ze "cos", np. kopiowanie pliku, zostanie zrealizowane tylko jesli "wzorzec" bedzie juz istnial.
Najwygodniej jest, moim zdaniem, przygotowac plik wsadowy do zrealizowania tego. Utworz plik o nazwie SmartCopy.bat, albo wygodniej i krocej, SC.BAT. Jego zawartosc niech stanowi jedna tylko linia tekstu:
IF NOT EXIST %1%2%3 COPY %4 %1%2%3. Umiesc go w ktoryms z katalogow okreslonych w zmiennej systemowej PATH (okreslanej w autoexec.bat).Aby zrealizowac Twoje zamiary wystarczy teraz wpisac np. (bez nawiasow!):
SC (DYSK):\(KATALOG)\(MOJ_PLIK_DESTINATION) (MOJ_PLIK_SOURCE)
gdzie parametry wywolania SC oznaczaja
DYSK DOCELOWY np. C
KATALOG np. ZRZUTY
MOJ_PLIK_DESTINATION np. temp.bin
MOJ_PLIK_SOURCE np. NOKIA.KAZIKA
Zostanie zrealizowany tylko wtedy gdy pliku jeszcze nie ma.
Uwaga:
1)w przypadku katalogu Program Files, Moje Dokumenty itp. bdedzie problem, jednak DOS powstawal kiedy nie funkcjonowaly jeszcze "dlugie nazwy" ...
2)W poleceniu IF NOT EXIST "NOT" wystepuje warunkowo: moze byc ale nie musi. Jego brak zmieni sens wyrazenia logicznego sterujacego wykonaniem polecenia i IF EXIST %1%2%3 COPY %4 %1%2%3 zadziala tylko o ile plik juz wczesniej istnieje.