LeEpicPotherb utworzono 10 lutego 2017 utworzono 10 lutego 2017 Witam mam problem z rozszyfrowaniem tego skryptu, prosił bym o pomoc i przeanalizowanie co oznacza każda z linijek. @echo off set mydate=%date:~-4%-%date:~-7,2%-%date:~-10,2% set mytime=%time:~-11,2%-%time:~-8,2%-%time:~-5,2% move plik.txt %mydate%_%mytime: =0%.txt copy *.txt \\devwschsdaten\teams\hostdruck\plik del *.txt
Matematyk0 komentarz 10 lutego 2017 komentarz 10 lutego 2017 Po kolei: @echo off - wyłącza pokazywanie komunikatów w oknie konsoli set mydate=%date:~-4%-%date:~-7,2%-%date:~-10,2% - przypisuje zmiennej mydate datę w formacie RRRR-MM-DD (rok, miesiąc, dzień) set mytime=%time:~-11,2%-%time:~-8,2%-%time:~-5,2% - przypisuje zmiennej mytime godzinę w formacie HH-MM-SS (godzina, minuta, sekunda) move plik.txt %mydate%_%mytime: =0%.txt - zastępuje (nadpisuje) plik.txt plikiem o nazwie w formacie DATA_GODZINA (zgodnie z tym, co wyżej - RRRR-MM-DD_HH-MM-SS.txt) i przenosi do niego dane z plik.txt copy *.txt \\devwschsdaten\teams\hostdruck\plik - kopiuje wszystkie pliki z rozszerzeniem .txt z obecnej lokacji do folderu \\devwschsdaten\teams\hostdruck\plik del *.txt - usuwa wszystkie pliki z rozszerzeniem .txt z obecnej lokacji
LeEpicPotherb komentarz 10 lutego 2017 Autor komentarz 10 lutego 2017 (edytowane) Aha no to rozumiem, ale nie wiem jeszcze jednej rzeczy której znaleźć nie mogłem. Zawsze używam tego set mytime ale nie rozumiem czemu jest tam dokładnie to -11,2 -8,2 i -5,2. Wiem, że to ustawia czas, tylko nigdzie nie znalazłem dokładnego opisu tych dokładnych wartości. Czy jest to po prostu utarta formuła na przypisanie czasu i zawsze wygląda to identycznie? I spróbowałem skrócić ten kod, o tak: @echo off set mytime=%time:~-11,2%-%time:~-8,2%-%time:~-5,2% move "\\devwschsdaten\teams\hostdruck\plik.txt" "\\devwschsdaten\teams\hostdruck\Kopie\plik_%date%_%mytime%.txt" (tylko jak się można domyśleć wywala błąd o złej skladni) "\\devwschsdaten\teams\hostdruck\Kopie\plik_%date%.txt" ( tak oczywiście działa, ale musze jeszcze dołączyć do tego czas) Edytowane 10 lutego 2017 przez LeEpicPotherb
Matematyk0 komentarz 10 lutego 2017 komentarz 10 lutego 2017 Te wartości to wskazanie ilości miejsc, które ma przypisać do zmiennej - -11,2 - dwa miejsca od jedenastego - godzina, %- (minus), -8,2 - dwa miejsca od ósmego (minuty), %- (minus), -5,2 - dwa miejsca od piątego (sekundy), można by było dopisać jeszcze %-%time:~-2,2 i dostać setne sekundy. Sposobów na przypisanie jest sporo, możesz sobie poczytać tutaj (po angielsku): http://stackoverflow.com/questions/1192476/format-date-and-time-in-a-windows-batch-script A co do skracania kodu - myślę, że to sztuka dla sztuki, można przecież w miejsce %mytime% w nazwie pliku wkleić zawartość zmiennej, czyli %time:~-11,2%-%time:~-8,2%-%time:~-5,2%
LeEpicPotherb komentarz 10 lutego 2017 Autor komentarz 10 lutego 2017 Aha okej, ale dalej jest jakiś błąd w momencie dodania czasu do nazwy pliku bo cały czas wywala błąd składni.To jest przykładowa lokalizacja na której testuje czy kod działa: move "C:\foler\plik.txt" "C:\folder2\plik_%date%_%time:~-11,2%-%time:~-8,2%-%time:~-5,2%" Czyli błąd jest gdzieś tutaj plik_%date%_%time:~-11,2%-%time:~-8,2%-%time:~-5,2%"
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.