Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

bat / cmd - wyświetlanie daty modyfikacji skryptu.bat (wewnątrz skryptu)

MES Mariusz 19 Gru 2016 21:31
  • #1 19 Gru 2016 21:31
    MES Mariusz
    Poziom 36  

    Cześć chcę, by skrypt bat potrafił wyświetlić datę i czas ostatniej własnej modyfikacji (coś a'la przedstawienie się skryptu użytkownikowi własną wersją, bez wnikania w kod skryptu)

    Próbowałem tak:

    Kod: dos
    Zaloguj się, aby zobaczyć kod


    Ale zadziałać nie chce.
    Prośba o podpowiedź.

  • Pomocny post
    #3 20 Gru 2016 09:12
    clubs
    Poziom 27  

    MES Mariusz napisał:
    Ale zadziałać nie chce.
    Prośba o podpowiedź.


    Witam
    Nie zapomnij że w bacie używa się %%a

  • #4 20 Gru 2016 09:20
    halinka1125
    Poziom 21  

    clubs możesz rozwinąć dlaczego? I czy to tyczy się mojej wypowiedzi czy MES Mariusz. To co napisałem niby działa, ale jeśli widzisz błąd podpowiedz więcej proszę...
    Pozdrawiam

  • #5 20 Gru 2016 09:52
    clubs
    Poziom 27  

    Witam
    @halinka1125 w wierszu poleceń używa się % (pojedynczego) w skryptach %%
    Twój kod działa ale wymaga podanie nazwy pliku bat , MES Mariusz wykorzystał parametr %0 gdzie sam odczytuje path i nazwę pliku ale zapomniał o %%
    a z kolei bez sensu było by to wykorzystać z linii wiersza bo jaki plik miał by odczytać parametr %0
    więc jeżeli MES Mariusz chce użyć z wiersza polecenia to musi podać ścieżkę i nazwę sprawdzanego pliku

    Kod: bash
    Zaloguj się, aby zobaczyć kod

  • #6 20 Gru 2016 12:23
    halinka1125
    Poziom 21  

    Dzięki za wyjaśnienia:)
    Wesołych świąt życzę.

  • #7 20 Gru 2016 19:14
    MES Mariusz
    Poziom 36  

    Cześć.

    Potwierdzam, że skrypt w tej postaci działa wyśmienicie

    Kod: dos
    Zaloguj się, aby zobaczyć kod



    Mam teraz następną zagwozdkę.

    Tutaj znajduje się logger, który... loguje ;-) odpowiedzi na polecenia wykonywane wewnątrz skryptu do pliku.

    Rezultatem jego działania jest coś takiego:

    Code:
    2016-12-16_18:53:41,71 - aktualizacja_loggera.bat: Status tworzenia: OK
    
    2016-12-16_18:53:47,86 - tworzenie_folderow.bat: Status tworzenia: OK
    2016-12-16_18:53:47,98 - tworzenie_folderow.bat: Sprawdzanie obecności w path sciezki: c:\Windows\Scripts\programy
    2016-12-16_18:53:53,07 - tworzenie_folderow.bat: W path istnieje sciezka: c:\Windows\Scripts\programy
    2016-12-16_18:53:53,74 - tworzenie_folderow.bat: Status tworzenia: OK
    2016-12-16_18:53:53,85 - tworzenie_folderow.bat: Sprawdzanie obecności w path sciezki: c:\Windows\Scripts\skrypty
    2016-12-16_18:53:54,62 - tworzenie_folderow.bat: W path istnieje sciezka: c:\Windows\Scripts\skrypty
    2016-12-16_18:53:55,01 - naglowek.bat: ----------------------
    2016-12-16_18:53:55,08 - naglowek.bat: ----------------------
    2016-12-16_18:53:55,16 - naglowek.bat: -- start -------------
    2016-12-16_18:53:55,26 - naglowek.bat: ----------------------
    2016-12-16_18:53:55,46 - naglowek.bat: ----------------------
    2016-12-16_18:53:55,84 - ustawienie_formatu_daty.bat: ustawianie format daty: yyyy-MM-dd
    2016-12-16_18:53:55,92 - ustawienie_formatu_daty.bat: Ustawianie klucza: HKU\.Default\Control Panel\International
    2016-12-16_18:53:56,41 - ustawienie_formatu_daty.bat: sShortDate REG_SZ yyyy-MM-dd
    2016-12-16_18:53:56,50 - ustawienie_formatu_daty.bat: Ustawianie klucza: HKCU\Control Panel\International
    2016-12-16_18:53:57,01 - ustawienie_formatu_daty.bat: sShortDate REG_SZ yyyy-MM-dd
    2016-12-16_18:53:57,20 - ustawienie_synchronizacji_zegara.bat: Ustawianie klucza: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers
    2016-12-16_18:53:57,72 - ustawienie_synchronizacji_zegara.bat: 0 REG_SZ 192.168.1.1
    2016-12-16_18:53:58,16 - ustawienie_synchronizacji_zegara.bat: 1 REG_SZ 192.168.1.1
    2016-12-16_18:53:58,59 - ustawienie_synchronizacji_zegara.bat: 2 REG_SZ 192.168.1.1
    2016-12-16_18:53:58,71 - ustawienie_synchronizacji_zegara.bat: Synchronizacja czasu z serwerem NTP: 192.168.1.1
    2016-12-16_18:53:59,45 - ustawienie_synchronizacji_zegara.bat: The command completed successfully.
    2016-12-16_18:54:01,70 - ustawienie_synchronizacji_zegara.bat: Usˆuga Windows Time jest wˆa˜nie uruchamiana.
    2016-12-16_18:54:01,78 - ustawienie_synchronizacji_zegara.bat: Pomy˜lnie uruchomiono usˆug© Windows Time.
    2016-12-16_18:54:02,19 - ustawienie_synchronizacji_zegara.bat: The command completed successfully.
    2016-12-16_18:54:18,43 - ustawienie_synchronizacji_zegara.bat: Sending resync command to local computer
    2016-12-16_18:54:18,52 - ustawienie_synchronizacji_zegara.bat: The computer did not resync because no time data was available.
    2016-12-16_18:54:19,65 - sprawdzanie_zgodnosci_czasu_z_NTP.bat: Czas lokalny 18:54
    2016-12-16_18:54:21,13 - sprawdzanie_zgodnosci_czasu_z_NTP.bat: Czas NTP 18:53


    Teraz chciałbym umieścić informację nie tylko o nazwie skryptu, który wywołał polecenie, ale i zawarł datę jego modyfikacji (wersję), np:

    2016-12-16_18:53:57,01 - ustawienie_formatu_daty.bat (2016-11-11 11:11) : sShortDate REG_SZ yyyy-MM-dd
    2016-12-16_18:53:57,20 - ustawienie_synchronizacji_zegara.bat (2016-12-20 18:49) : Ustawianie klucza: ...
    2016-12-16_18:53:57,72 - ustawienie_synchronizacji_zegara.bat (2016-12-20 18:49) : 0 REG_SZ 192.168.1.1

    ale średnio mi idzie.

    Jeśli chodzi o kod:

    Kod: dos
    Zaloguj się, aby zobaczyć kod


    Mógłbym niby wykorzystać %1 wewnątrz log.bat:

    Kod: dos
    Zaloguj się, aby zobaczyć kod
    , tyle, że w %1 przekazywana jest przez skrypt informacja o nazwie pliku bez ścieżki. Musiałbym pewnie w innym argumencie przekazać pełną ścieżkę (tyle, że wymaga to modyfikacji każdego z bardzo wielu skryptów, które wywołują skrypt logujący log.bat).

    Jeśli ktoś ma inny pomysł, podzielcie się proszę.

    PS. Kod loggera nie jest mój (pochodzi od kolegi penknife -> http://www.elektroda.pl/rtvforum/viewtopic.php?p=15610885#15610885 ).

  • #8 22 Gru 2016 06:56
    clubs
    Poziom 27  

    MES Mariusz napisał:

    Jeśli ktoś ma inny pomysł, podzielcie się proszę.


    Witam
    Zobacz tak

    Kod: bash
    Zaloguj się, aby zobaczyć kod

  • #9 08 Sty 2017 21:16
    penknife
    Poziom 20  

    Dawno się nie udzielałem ;)

    Kod: dos
    Zaloguj się, aby zobaczyć kod

  Szukaj w 4mln produktów
Przeglądaj produkty