záhadné chování datumu v BAT

Operační systémy Windows z dílny Microsoft a vše kolem nich

Moderátoři: Pic, Mods_senior

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

záhadné chování datumu v BAT

Příspěvekod atari » 26 bře 2020 10:40

PC1: WIN7 PRO 64bit
PC2: WIN7 PRO 32bit

v ARJ32.exe je syntaxe -oRRMMDD. (komprimuje soubory od zadaného data)

zadání -o181228 funguje (to jest 28.12.2018)
zadání -o191228 dává chybu "invalid date string"

Prostě zadání do roku 18 funguje, a při zadání roku 19 nebo 20 to chybuje, ale jen v PC2 !!
V PC1 funguje i rok 19 a 20.

Zkoušel jsem v cmd "systeminfo", a oba PC mají totožnou češtinu. Ještě jsem v ovládacích panelech v "Oblast a jazyk" koukal na národní nastavení a v obou PC je totožné.

Má někdo nápad kde je problém v PC2?

Reklama
zeus
Elite Level 10.5
Elite Level 10.5
Příspěvky: 10896
Registrován: únor 12
Bydliště: Pankrac
Pohlaví: Muž
Stav:
Online

Re: záhadné chování datumu v BAT

Příspěvekod zeus » 26 bře 2020 22:59

Obejdi to, pouzij forfiles pro vytvoreni list souboru.
Prazaci jo ty se maj, az kdyz si me zavolaj..

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: záhadné chování datumu v BAT

Příspěvekod atari » 13 dub 2020 23:35

Díky za tip, tím se to vyřešilo. :thumbup:

Forfiles vypíše seznam souborů s uvozovkama, což zase arj nedokáže přečíst. Ale povedlo se mi nakonec uvozovky odstranit příkazem FOR:

Kód: Vybrat vše

FORFILES /P d:\ /S /D 01.04.2020 /C "cmd /c echo @path" > D:\Batch\list1.txt

for /F "delims=" %%X in (D:\Batch\list1.txt) do echo %%~X >> D:\Batch\list2.txt


(Ale stejně by mě zajímalo, proč to ARJ dává tu chybu ... )

zeus
Elite Level 10.5
Elite Level 10.5
Příspěvky: 10896
Registrován: únor 12
Bydliště: Pankrac
Pohlaví: Muž
Stav:
Online

Re: záhadné chování datumu v BAT

Příspěvekod zeus » 14 dub 2020 17:02

Funkcni to je, mas tedy cas a klid na badani ;)
Ja osobne bych tak zvidavy nebyl (nebo bych pouzil jiny packer).
Prazaci jo ty se maj, az kdyz si me zavolaj..

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: záhadné chování datumu v BAT

Příspěvekod atari » 14 dub 2020 17:34

Chtěl jsem přejit na jiný packer, ale žádný jiný neumí to co ARJ, takže zůstávám u něj.

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: záhadné chování datumu v BAT

Příspěvekod ITCrowd » 14 dub 2020 17:54

Packery se mění, skripty zůstávají.
Já to řeším tak, že list souborů, jméno výsledného souboru, adresáře atd. řeším vbs skriptem. Packer se použije až pro výslednou operaci. S arj jsem začínal, teď to řeším s rar.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: záhadné chování datumu v BAT

Příspěvekod atari » 15 dub 2020 13:01

To je dobré řešení. Jenže já neprogramátor s tím vbs zatím nejsem kamarád.

Před třemi lety jsem to zkusil, a napsal jsem vbs skript, který každých 30 minut jeden soubor zabalil a ke jménu souboru přidal časové razítko a uložil do archívu. Strávil jsem nad tím půl dne. Za tu dobu bych měl hotových 10 podobných dávek bat. Tak jsem se zase k těm BAT vrátil.

Měl bys k dispozici nějaký vzorový skript, abych mohl pro začátek z něčeho vycházet?

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: záhadné chování datumu v BAT

Příspěvekod ITCrowd » 21 dub 2020 12:32

Teď jsem si vzpomněl, že jsi po mě chtěl nějaký vzorový skript:

Kód: Vybrat vše

'**********************************************
'*   Skript 1. dne v měsíci zálohuje logy     *
'*             uvedené v Const.               *
'* Zapisuje do logu D:\ScriptLog\zaloha.txt   *
'*                                            *
'*            ITC@Script v 2.1                *
'*                                            *
'**********************************************

' deklarace promennych
Option Explicit
Dim ForAppend, Den, Mesic, WshShell, fso, WshNet, objWMIService
Dim txtStream, CompName, strShare, Namefile, rarName, cesta, key
Dim i, colRunningServices, Env, ProcEnv, path, prikaz, Filezal
Dim objService, colFolders, objFolder
Const alarm = "D:\Prog\Alarm500\alarm500.Log"
Const GisCln = "D:\Prog\GisCln\GisCln.Log"
Const Mdd = "D:\Prog\Mdd\MDD.Log"
Const MddGrf = "D:\Prog\MddGrfSrv\MddGrfSrv.Log"
Const LogFile = "D:\ScriptLog\zaloha.txt"

'kontrola data - pokud neni 1. ukoncit skript
Den = Day(Now())
If Den <> 1 Then WScript.Quit
'WScript.Sleep 10000

ForAppend = 8
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FilesystemObject")
Set WshNet = CreateObject("WScript.Network")
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
Set txtStream = fso.OpenTextFile(LogFile, ForAppend, True)
CompName = WshNet.ComputerName

' pokud logy chybi, skonci
If Not fso.FileExists(alarm) Then neni
If Not fso.FileExists(GisCln) Then neni
If Not fso.FileExists(Mdd) Then neni
If Not fso.FileExists(MddGrf) Then neni

' vytvoreni nazvu souboru
Mesic = Month(Now())
If Den < 10 Then Den = "0" & Den
If Mesic < 10 Then Mesic = "0" & Mesic
Namefile = "Prog_log_" & CompName & "_" & Year(Now()) & Mesic & Den & ".rar"
rarName = "Prog_log_" & CompName & "_" & Year(Now()) & Mesic & Den
'WScript.Echo Namefile
'WScript.Echo rarName

' adresar existuje? If not - create
cesta = "D:\Zalohy\"
If (Not fso.FolderExists(cesta)) Then fso.CreateFolder(cesta)

' existuje jiz zaloha?
cesta = cesta & Namefile
'WScript.Echo cesta
If fso.FileExists(cesta) Then
   txtStream.WriteLine Date & vbTab &Time & vbTab & "Soubor zálohy již existuje"
   txtStream.Close
   WScript.Quit
End If

'modifikace promenne path
Set Env = WshShell.Environment("SYSTEM")
Set ProcEnv = WshShell.Environment("PROCESS")
path = ProcEnv("ProgramFiles")
path = path & "\Winrar\"
'WScript.Echo path
Env("Path") = Env("Path") & ";" & path
'WScript.Echo Env("Path")
Filezal = alarm & " " & GisCln & " " & Mdd & " " & MddGrf
rarName = "D:\Zalohy\" & rarName
prikaz = "winrar a " & rarName & " -m5 -tsca -ac -ilog " & Filezal
WshShell.Run prikaz, True
WScript.Sleep 2000

'Test zda zaloha probehla v poradku
If fso.FileExists(cesta) Then
   txtStream.WriteLine Date & vbTab & Time & vbTab & "Záloha proběhla v pořádku"
   txtStream.Close
   'Smazani souboru s logy
   fso.DeleteFile alarm, True
   WScript.Sleep 500
   fso.DeleteFile GisCln, True
   WScript.Sleep 500
   fso.DeleteFile MddGrf, True
   WScript.Sleep 500
   fso.DeleteFile Mdd, True
   WScript.Sleep 500
Else
   txtStream.WriteLine Date & vbTab & Time & vbTab & "Záloha se nepodařila"
   txtStream.Close
End If

Sub neni        'zapis do logu a skonci
  txtStream.WriteLine Date & vbTab & Time & vbTab & "Nic k zálohování"
  txtStream.Close
  WScript.Quit
End Sub
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: záhadné chování datumu v BAT

Příspěvekod atari » 18 kvě 2020 17:25

Díky moc :thumbup: Prošel jsem to až teď, a mám k tomu 2 dotazy:

1.Tohle je pro jeden soubor: Const alarm = "D:\Prog\Alarm500\alarm500.Log"

A když budu chtít například celou složku kromě *.avi, tak zadám Const alarm = "D:\Dokumenty\*.*" a pak někam do příkazu (prikaz = "winrar a " & rarName & " -m5 -tsca -ac -ilog " & Filezal) zadám něco jako exclude *.avi (dle předepsané syntaxe). Je to tak?

2. Nějak jsem nepochopil tyto dva příkazy k čemu jsou?
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")


Set txtStream = fso.OpenTextFile(LogFile, ForAppend, True)

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: záhadné chování datumu v BAT

Příspěvekod ITCrowd » 18 kvě 2020 17:50

ad 1) mělo by to tak fungovat.
ad 2) Set objWMIService ... můžeš vypustit, zapomněl jsem to smazat - ten skript totiž ukončoval služby. Ty příkazy na ukončení jsem smazal, ale odstranit objekt služeb jsem zapomněl :-)
Set txtStream ... nastavuje objekt pro zápis do souboru pro logování - to jsou všechny ty txtStream.

Dodatečně přidáno po 28 minutách 52 vteřinách:
Ještě jsem našel něco z úplných začátků s arj:

Kód: Vybrat vše

'Konečný skript pro zálohování souboru wb5. fil
'verze 1.0 19.6.2003
'
'Definice proměnných


Dim Titl
Dim Soubname
Dim Rok
Dim Mesic
Dim Den
Dim Hod
Dim Adrname
Dim WshShell
Dim Prikaz
Dim slozka
Dim zaladr
Dim fso
Dim path

' Přiřazení hodnot

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FilesystemObject")
Titl = "Kontrolní hlášení"

Hod = Hour(Now())
Den = Day(Now())
Mesic = Month(Now())
Rok = Year(Now())

'  Vztvoření jména souboru

If Den < 10 Then Den = "0" & Den
If Mesic < 10 Then Mesic = "0" & Mesic
If Hod < 10 Then Hod = "0" & Hod
Soubname = Mesic & Den & Hod

'   Zadání adresáře a vytvoření příkazu

zaladr = "D:\zaloha\"
path = zaladr & Rok
Prikaz = "arj a d:\zaloha\" & Rok & "\" & soubname & " c:\winbase\wb5.fil"

'   Kontrolní zprávy - pro zfunkčnění odstraňte apostrofy

'MsgBox "Jméno souboru:  " & vbCrLf & vbCrLf & Soubname & ".arj", vbOKOnly + vbInformation, Titl
'MsgBox "Jméno složky je:   " & vbCrLf & vbCrLf & path, vbOKOnly + vbInformation, Titl
'MsgBox "Bude proveden následující příkaz:" & vbCrLf & vbCrLf & Prikaz, vbOKOnly + vbExclamation, Titl

'  kontrola zda cílový adresář existuje a jeho případné vytvoření

If (Not fso.FolderExists(path)) Then

   If (Not fso.FolderExists(zaladr)) Then _
      fso.CreateFolder(zaladr)

   fso.CreateFolder(path)

End If

'   Provedení příkazu

WshShell.Run Prikaz

'Konec scriptu

Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: záhadné chování datumu v BAT

Příspěvekod atari » 18 kvě 2020 23:13

Díky za ten druhý skript, ten je takový jednodušší.

Máš nějaké doporučení v čem to edituješ?
Já na to koukal v Excelu, tam je to hezky barevné a zformátované, ale tam se to nedá ladit.
V Pspadu, to zase není barevné, je to míň přehlednější, ale také tam nelze ladit chyby.

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: záhadné chování datumu v BAT

Příspěvekod ITCrowd » 18 kvě 2020 23:17

Existuje progámek, který používám - vbsedit: https://www.vbsedit.com/
Obsahuje i základní funkce a třídy. Není to přímo freeware, jsou tam některé funkce omezeny. Ladit umí, i s breakpointy, ale každým spuštěním se přidává na odpočtu, takže čekáš. A nejdou kompilace do .exe.
Já to dělám tak, že v něm edituju, uložím, poklepáním spustím, opravím chybu, uložím atd...
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Záhadné potíže se zvukem u hry.
    od liborek » 19 čer 2023 21:16 » v Problémy s hardwarem
    1
    848
    od liborek Zobrazit poslední příspěvek
    24 čer 2023 18:53
  • Podivné chování touchpadu v MS Excel
    od Peťa » 13 čer 2023 16:58 » v Kancelářské balíky
    4
    1827
    od atari Zobrazit poslední příspěvek
    16 čer 2023 08:19

Zpět na “Windows 11, 10, 8...”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů