Novità

Problema backup scripts da pasticcere...

lotto_tom75

Advanced Premium Member

come trovare in c: d: ed e: e copiare in una determinata directory di raccolta solo files di una certa estensione (es: .ls) e senza relativo percorso? :unsure:

Negli anni ho salvato molti files con estensione .ls (script) in diversi percorsi ramificati con directory di molti livelli... Quando cerco di trovarli e sopratutto salvarli in altra directory e hd esterno e/o cloud per backup mi scontro con la difficoltà di copiarli per i path troppo lunghi... (si parla a volte di oltre 10 livelli di cartelle ramificate o_O🧑‍🍳 ). Ho provato con vari comandi dos tipo copy e robocopy ma per taluni di questi ho solo peggiorato la situazione... 😱🧑‍🍳 Anche con i programmi di gestione files non sono riuscito a risolvere... e addirittura alcuni di questi (anche tra i + robusti e pieni di opzioni...) durante la ricerca e/o copia si chiudono improvvisamente... 😤🧑‍🍳 C'è una soluzione a questo mio piccolo grande dilemma? Se si quale? Grazie 👋🙃🧑‍🍳
 
certo che c'è . mai sentito parlare di a "manella" :-)
comunque strano non è che avrai il filesystem corrotto prova a passare il controllo

1636188393394.png
 
certo che c'è . mai sentito parlare di a "manella" :)
comunque strano non è che avrai il filesystem corrotto prova a passare il controllo

Vedi l'allegato 2224555

Purtroppo carissimo a "manella" ci ho già provato ma essendo oltre 150.000, solo quelli su C:, sono un pò troppi (ovviamente conta anche doppioni ecc...) e non ce la fa nemmeno a selezionarli tutti... Proverò a verificare anche il filesystem ma advsystclean e norton per adesso non mi hanno segnalato alcun problema al riguardo... 😶 👋🙂
 
che bib ci fai con 150mila script ... cavolo c'hai l'enciclpoedia ? :)

Sono tanti si ma moltissimi sono solo copie di se stessi... Nel senso che spesso per salvarli con piccole modifiche per non perdere la versione funzionante precedente la conservo invece di sovrascriverla... 🧑‍🍳 o_O Ecco perchè sono così tanti... Es. ne ho molti con numeri progressivi sempre dello stess tipo... Es. pippo1 pippo2 pippo3 ecc.. :D

Ad ogni modo mi sembra impossibile che non ci sia un comando (anche dos) che riesca a copiare i files di estensione voluta (appunto in questo caso .ls) in una specificia cartella di destinazione ma senza relativo percorso...

es.

c:\pippo\pippo\pippo\pippo\pippo.ls
c:\cartelladidestinazione

per far andare pippo.ls e tutti i files .ls presenti in c: in cartelladidestinazione senza che si portino dietro il loro percorso di origine... e avere quindi solo alla fine del comando...

in cartelladidestinazione:

pippo.ls
pippo1.ls
pippo2.ls
pluto.ls
paperino.ls
ecc...

quale comando dos o programma o altro potrei usare? 🤔

Grazie infinite a te luigi o a chiunque lo sappia...

Good Sunday 👋🙂
 
scusa tom ma non puoi procdere facendo prima un find dei file con *.ls e poi piano piano fare taglia e incollarli nella dir di destinazione ?
ripetendo il processo finche la ricerca di *.ls da risultati
 
scusa tom ma non puoi procdere facendo prima un find dei file con *.ls e poi piano piano fare taglia e incollarli nella dir di destinazione ?
ripetendo il processo finche la ricerca di *.ls da risultati

Purtroppo "a mano" mi seleziona solo massimo ca 3000 files alla volta e spesso non ce la fa nemmeno a copiarli in questo modo..., per le troppe ramificazioni di directory appunto, e ad ogni modo dovrei ripetere il procedimento x oltre 50 volte... segnandomi ogni volta l'ultimo file copiato... Una roba estenuante... o_O Che ne nel 2021 non ci sia un sistema per raccogliere velocemente senza blocchi tutti i files di una certa estensione disseminati ovunque nel pc in una sola directory senza doverne copiare anche il relativo loro percorso comunque mi sembra davvero assurdo... :unsure::eek:😑 👋🙂
 
se fa itaglia non ti devi segnare niente .. paino piano finiscono

Ahaha :LOL: in quel modo cosi' rischio pure di perderli nel limbo dei file appunti... se va via la corrente o altri prob eventuali.. 😵 No grazie.. comunque l'ultimo aggiornamento è che... ho trovato come fare!!! 😮 :D con uno dei prg che avevo già provato senza successo. In questo caso unreal commander. In pratica devo fermarmi a max 10 sotto livelli ca e togliere quindi l'impostazione per la ricerca di livelli senza limiti e poi ce la fa... 👌💪:) Me felice 👋🤖🧑‍🍳
 
stano che non ti sia venuto in mente di usare array push :-) comunque se se ne va la corrente semplicmennte il lavoro si interrompe quelli che ha copiato ha tagiato gli altri rimangono dove erano
 
prova questo script

Codice:
Option Explicit
Dim oFSO,oDrive,sFileName,nFileTrovati,coll
Sub Main
   Set oFSO = CreateObject("Scripting.FileSystemObject")
   Dim oFolder
   Dim nCopiati,sFileDest,sDirDest,sDirInput,n,bTaglia,sFile ,bProsegui , bSaltaSeEsiste
   Set coll = GetNewCollection
 
 
   sDirInput = "C:\Users\luigi\AppData\Roaming\spaziometria\Script\"
   sDirDest = "e:\temp\"
   bTaglia = False
   bSaltaSeEsiste  = False ' se false quando il file di destinazione esiste lo copia e aggiunge un numero al nome file , se impostato true i lfile viene saltato
 
   Set oFolder = oFSO.GetFolder(sDirInput)
   Call Recurse(oFolder)
   Set oFSO = Nothing
   If coll.count > 0 Then
      If bTaglia  Then
         If MsgBox("Eseguo lo SPOSTAMENTO di " & coll.count & " file da " & vbCrLf & sDirInput & vbCrLf & "Verso" & vbCrLf & sDirDest & " ?",vbQuestion + vbYesNo) = vbYes Then

            bProsegui = True
         End If
      Else
          If MsgBox("Eseguo la COPIA di " & coll.count & " file da " & vbCrLf & sDirInput & vbCrLf & "Verso" & vbCrLf & sDirDest & " ?",vbQuestion + vbYesNo) = vbYes Then

            bProsegui = True
         End If

      End If
      If bProsegui Then
         For Each sFile In coll
            n = 0
            sFileDest = sDirDest & GetNomeFile(sFile)
            If FileEsistente(sFileDest) = False Then
             
               Call CopiaFile(sFile,sFileDest)
               nCopiati = nCopiati + 1
             
               If bTaglia Then EliminaFile(sFile)
               Messaggio "Copia in corso ..." & nCopiati
            Else
               If bSaltaSeEsiste  = False Then
                  Do While FileEsistente(sFileDest)
                     n = n + 1
                     sFileDest = sDirDest & GetNomeFile(sFile) & "." & n & ".ls"
                  Loop
                  Call CopiaFile(sFile,sFileDest)
                  nCopiati = nCopiati + 1
                  If bTaglia Then EliminaFile(sFile)
  
                  Messaggio "Copia in corso ..." & nCopiati
               End If
            End If
            If ScriptInterrotto Then Exit Sub

         Next
      End If
   End If
  
   Set oFSO = Nothing
   Set  oFolder = Nothing
   Set coll = Nothing
  
End Sub
Function GetNomeFile(sFile)
   Dim av
   av = Split(sFile,"\")
   GetNomeFile = av(UBound(av))
End Function
Sub Recurse(oFolder)
   Dim oSubFolder,oFile
   If ScriptInterrotto Then Exit Sub
   If IsAccessible(oFolder) Then
      For Each oSubFolder In oFolder.SubFolders
         Recurse oSubFolder
      Next
      For Each oFile In oFolder.Files
         If Right(oFile.Name,3) = ".ls" Then
            nFileTrovati = nFileTrovati + 1
            Messaggio("file trovati :" & nFileTrovati)
            coll.Add oFile.path 
         End If
      Next
   End If
End Sub
Function IsAccessible(oFolder)
   On Error Resume Next
   IsAccessible = oFolder.SubFolders.Count >= 0
End Function
 
Ultima modifica di un moderatore:
per sicurezza sostituisci questa

If Right(oFile.Name,3) = ".ls" Then

con

If lcase(Right(oFile.Name,3)) = ".ls" Then
 
Luigi you are genius a 360°! :eek:💪👌👍👏😎 Ad ogni modo per adesso ho già risolto con unreal commander e già backuppato tutto con norton 😉. Alla fine erano in tutto solo.... 9800 e passa files e non 150.000 (non contando appunto le copie in eccesso dislocate nelle varie sotto directories). Testerò comunque anche questo tuo nuovo utilissimo script per la ricerca, copia e spostamento dei files di estensione voluta che sicuramente sarà strafigo. Grazie infinite genius! 👋🙂
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 11 gennaio 2025
    Bari
    73
    43
    01
    58
    81
    Cagliari
    69
    60
    18
    02
    10
    Firenze
    25
    32
    18
    55
    54
    Genova
    48
    05
    40
    34
    69
    Milano
    10
    07
    70
    44
    79
    Napoli
    11
    89
    01
    34
    80
    Palermo
    37
    80
    82
    44
    77
    Roma
    78
    04
    38
    39
    56
    Torino
    08
    13
    30
    27
    24
    Venezia
    56
    75
    36
    18
    70
    Nazionale
    63
    83
    19
    31
    80
    Estrazione Simbolotto
    Bari
    35
    34
    12
    23
    20
Indietro
Alto