This forum uses cookies. Click X button to hide this message. What is stored? 
Total Commander Forum Index Total Commander
Forum - Public Discussion and Support
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Zopakování série prikazuuu

 
Post new topic   Reply to topic    Total Commander Forum Index -> Slovak and Czech Printable version
View previous topic :: View next topic  
Author Message
Terka
Senior Member
Senior Member


Joined: 24 May 2006
Posts: 287

PostPosted: Thu Feb 27, 2014 10:17 am    Post subject: Zopakování série prikazuuu Reply with quote

Mám 2 disky, jeden jako záložní.
Na prvním disku pracuji se soubory, přesouvám do jiných adresářů (v rámci pouze jednoho disku), mažu atd. To samé chci provést na záložním disku a ideálně rychle.
Zkoušel někdo něco v tomto duchu?
Moje idea je využít tclog...
Back to top
View user's profile Send private message
Hacker
Moderator
Moderator


Joined: 06 Feb 2003
Posts: 10443
Location: Bratislava, Slovakia

PostPosted: Thu Feb 27, 2014 3:07 pm    Post subject: Reply with quote

Ahoj Terka Smile
No, ako prve mi napadlo Synchronize dirs s moznostou Asynchronous, ale tvoj napad tiez nie je zly, len zautomatizovat to cele nie je momentalne mozne, by si sa musela asi zasa raz vrhnut na AHK.

Roman
_________________
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Back to top
View user's profile Send private message Send e-mail
ja
Junior Member
Junior Member


Joined: 05 Apr 2014
Posts: 22

PostPosted: Sun Apr 06, 2014 1:34 am    Post subject: Reply with quote

Ako píše Hacker, riešením je synchronize dirs (asynchrónne). Výsledok dostaneš rovnaký, akurát synchronize dirs nevykonáva zmeny postupne podľa logu, ale iba zladí výsledný stav diskov. Spôsob ale nie je dôležitý, dôležitý je výsledok a ten je rovnaký. Čím by bolo opakovanie úkonov lepšie?

Je otázne, či log obsahuje naozaj všetky zmeny a čo napr. s úkonmi, ktoré vykonáš s dočasne pripojenými mechanikami, ktoré v momente vykonávania zmien z logu by pripojené neboli (a ešte horšie, ak by boli). Alebo ak nejaké procesy v systéme zmenia súbory (čo je mimo tc), prípadne iné záludnosti. Nevyzerá to spoľahlivo Smile
Back to top
View user's profile Send private message
Terka
Senior Member
Senior Member


Joined: 24 May 2006
Posts: 287

PostPosted: Sat Apr 25, 2015 3:47 am    Post subject: Reply with quote

Rozdil je v rychlosti. Pokud presunu film do jineho adresare, tak to trva sekundu, pri mazani a kopirovani to trva minutu.
Back to top
View user's profile Send private message
Hacker
Moderator
Moderator


Joined: 06 Feb 2003
Posts: 10443
Location: Bratislava, Slovakia

PostPosted: Sat Apr 25, 2015 5:26 am    Post subject: Reply with quote

Terka,
Ak vyfiltrujes TC log, tak ho mozes predhodit tomuto skriptu - najde vsetky move operacie a vykona ich so subormi v rovnakych adresaroch na NewDriveLetter.

Code:
NewDriveLetter = D
FileRead, TcLog, totalcmd.log
Loop, Parse, TcLog, `n, `r
   If (RegExMatch(A_LoopField, ".+?: Move: [a-zA-Z](.+?) -> [a-zA-Z](.+)", FilePath))
   {
      MsgBox, %A_LoopField%`n%NewDriveLetter%%FilePath1%`n%NewDriveLetter%%FilePath2%
;      FileMove, %NewDriveLetter%%FilePath1%, %NewDriveLetter%%FilePath2%
   }


Roman
_________________
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Back to top
View user's profile Send private message Send e-mail
Terka
Senior Member
Senior Member


Joined: 24 May 2006
Posts: 287

PostPosted: Sat Apr 25, 2015 6:11 am    Post subject: Reply with quote

Smile
diky, zkusim.


Delam to momentalne trochu jinak, bez logu. Porovnavam soubory v source a destination
a pokud jsou stejne ale jinde ulozene, tak davam move. Je to ale pomale protoze porovnava skoro S krat D souboru.
Code:

              ;kopirovani adr. struktury source -> destination
                                   ;- 2 = loop jen pres adresare
                    loop, i:\*.* , 2 , 1
                    {
                      NewDir := RegExReplace(A_LoopFileFullPath, "i(.+)", "j$1")  ;- nahrazeni i:\ za j:\
                      FileCreateDir, %NewDir%
                    }

                                                      ; Loop, FilePattern [, IncludeFolders?, Recurse?]
                                                      ; loop, i:\*.*      , 0/1/2 ,              1
                                                      ; 0 Files only
                                                      ; 1 BOTH Files and Folders
                                                      ; 2 Folders only
              ;vytvor sorted seznamy pro oba adresare
                  ;seznam1
                      inputPath:="i:\*.*"
                      seznam1:="c:\seznam1.txt"
                            FileDelete %seznam1%
                      f__z_cesty__serazeny_Seznam_souboru( inputPath, seznam1)

                  ;seznam2
                      inputPath:="j:\*.*"
                      seznam2:="c:\seznam2.txt"
                            FileDelete %seznam2%
                      f__z_cesty__serazeny_Seznam_souboru( inputPath, seznam2)

                    ;fce k vytvoreni seznamu
                                            f__z_cesty__serazeny_Seznam_souboru( inputPath, outputFile)
                                                  {
                                                          file=outputFile ;pro lepsi citelnost

                                                          ;vytvor seznam
                                                              ;- Loop, FilePattern [, IncludeFolders?, Recurse?]
                                                              loop, %inputPath% , 0 , 1
                                                              {
                                                                                              ;- TimeCreated nechodilo
                                                                FileAppend, %A_LoopFileName%%A_LoopFileTimeModified%%A_LoopFileSize%|%A_LoopFileFullPath% `n, %file%
                                                              }

                                                          ; sort seznam
                                                              FileRead, Contents, %file%
                                                              if not ErrorLevel  ; Successfully loaded.
                                                              {
                                                                  Sort, Contents, C  ;case sensitive
                                                                  FileDelete, %file%
                                                                  FileAppend, %Contents%, %outputFile%
                                                                  Contents =  ; Free the memory.
                                                              }
                                                  }
                    ;fce k vytvoreni seznamu konec

              ;seznamy oddeleny "|" (dva sloupce) - example: (2.a 4 radek budou kopirovane)
                          ;-       ___seznam1:___                                                                ___seznam2:___
                          ;- index.php201410200857464782|i:\index.php                                 index.php201410200857464782|j:\index.php
                          ;- project.properties20140815152635141|i:\root\project.properties           project.properties20140815152635141|j:\project.properties
                          ;- project.xml20140815152635322|i:\root\project.xml                         project.xml20140815152635322|j:\root\project.xml
                          ;- soubor.ke.kopirovani.txt201410201105378|i:\soubor.ke.kopirovani.txt      soubor.ke.kopirovani.txt201410201105378|j:\root\soubor.ke.kopirovani.txt


              ;porovnej 1. sloupce seznamů, pokud jsou stejné (stejné soubory) tak přesouvej
              ;přesouvej z             disk j:(SEZNAM2-SLOUPEC2)  do        disk j:(SEZNAM1-SLOUPEC2)

                      Loop, read, %seznam1%
                      {
                        i=%A_LoopReadLine%


                            Loop, read, %seznam2%
                            {
                              j=%A_LoopReadLine%
                              ;- v i je Source, v j je Destination
                              ; roztrhej i
                              ; roztrhej j
                              StringSplit, poleS, i,|
                              StringSplit, poleD, j,|
                                  if ( poleS1 = poleD1) { ;kdyz jde o stejne soubory
                                    Source = %poleD2%
                                    Dest:= RegExReplace(poleS2, ".(.+)", "j$1")  ; poleS2 ale s jinym diskem - nahrad i za j
                                    FileMove, %Source%, %Dest%, 0  ;-(1 = overwrite)
                                    ;pridej: odstran zaznam ??
                                    break ;pridano 2015-04-25
                                  }
                            }
                      }
                    FileAppend, Another line.`n, C:\F12end.txt
                    msgbox hotovo
Return
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Slovak and Czech All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Impressum: This site is maintained by Ghisler Software GmbH

Using phpBB © 2001-2005 phpBB Group