Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    Importare file video appena creato in un batch

    Salve a tutti.

    Sto cercando un modo importare un file video appena registrato in una determinata cartella in un processo batch di ricodifica .
    Il problema che sorge è questo: Come faccio a dire al batch che il file da cercare è quello appena creato ( cioè non è piu' in esecuzione dal registratore video) e importarlo nel mio file batch ?
    quale funzione nello script batch devo usare ? C'è una funzione che controlla la data e l'ora di modifica e lo importa? oppure c'è un altro modo?

    Spero di essermi spiegato correttamente e che qualcuno possa aiutarmi.

    grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ti faccio un esempio sul come recuperare il file con la data di modifica più recente e copiarlo altrove.

    codice:
    cd "cartella che vuoi"
    for /f %%a in ('dir /o:d /b *.estensione_che_cerchi') do (set ultimo=%%a)
    copy "%ultimo%"  c:\

  3. #3
    Grazie mille!!!

    Scusa se approfitto, ti chiedo solo una cosa .

    cd " cartella che vuoi" devo specificare il percorso completo del file da recuperare?

    Così : cd "c:\documents..\pippo\filename.wmv" e il resto del codie rimane uguale perchè punta a quella cartella?

    grazie ancora nicola75ss

  4. #4
    OOPPPPSSS Scusa ....

    ho riletto bene....dicevi " la cartella " del file. Basta il percorso.

  5. #5
    Ciao
    Ho appena provato a copiare quel file come mi hai specificato con questo codice

    cd "D:\Documents and Settings\fabio xp\Desktop\registrazioni progdvb"
    for /f %%a in ('dir /o:d /b *.wmv') do (set ultimo=%%a)
    copy "%ultimo%" d:\Documents and Settings\fabio xp\Desktop



    Succede una cosa strana. in un computer con win xp funziona , con il portatile sempre con xp NO.

    C'è qualche motivo? ho cambiato la path, naturalmente, ma in questo non funziona.

    Suggerimenti?

    Grazie

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Racchiudi il percorso in cui vuoi copiare il file tra doppi apici se questo contiene spazi come nel tuo caso.

  7. #7
    Grazie...era proprio quello l'errore.

    Funziona bene, l'unica modifica che non saprei se è possibile fare è che il file ( ultimo per modifica ) che prende dovrebbe accettarlo nel processo batch seguente "solo" se non è in uso, altrimenti mi da errore perchè parte subito il batch di codifica in .avi
    Il file *.wmv proviene da una registrazione. Come posso dire al Batch che può prenderlo solo quando non è più in uso ( cioè ha finito di registrare )?

    Forse non è più questione di comandi Dos, e devo creare uno script in un altro linguaggio?

    grazie dell'aiuto.

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Mah, prova a spiegare nel dettaglio tutto l'iter, che sw utilizzi per la registrazione, ecc.

  9. #9
    E' semplice.

    Registro con ProgDvb .Quando inizio la registrazione con il tasto "Rec" mi crea subito in uscita un file .wmv che finquando non premo " stop" rimane chiaramente in uso dal software.
    Ora, avendo creato una file Batch con i parametri di FFMPEG per la codifica, e grazie al tuo suggerimento per catturare appunto quell'ultimo file video (che pero' come ultima modifica intende il momento in cui è partita la registrazione ), per cui se lancio il batch al momento della registrazione da errore da file in uso...Se aspetto la fine della registrazione devo lanciare il batch a mano.
    In pratica vorrei automatizzare questo processo, cioè appena finisce di registrare (stop) parte il file batch che fa il resto quando il file registrato non è piu' in uso.




    Spero di essermi spiegato correttamente.

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Vediamo se riusciamo a risolvere.

    Inizia col scaricare l'utility handle
    Scompatta l'exe e copialo nella cartella system32.

    Tramite questa utility potrai monitorare i file attualmente in uso.

    A questo punto lavorerei di powershell. Se hai windows 7 l'hai già integrata, in caso contrario la devi scaricare.

    Ti posto un esempio di codice da cui partire.

    codice:
    do {
    $handle = handle
    $inuso = @()
    foreach ($riga in $handle) {
        if ($riga -match 'C:\\cartella_da_monitorare\\' ) 
             {$inuso+=$riga}
        }
    } until ($inuso.Length -eq 0)
    write-Host "libero"
    In pratica questo ciclo continuerà fino a quando l'utility handle rileverà file in uso nella cartella specificata. Una volta "liberati" tutti i file mostrerà a video la scritta "libero".
    Chiaramente a libero andrà sostituita l'elaborazione di ffmpeg ecc.

    Quando sei "operativo" con la powershell batti un colpo.
    P.S. Alla fine del percorso ci vuole ugualmente il doppio backslash. Ho visto che il forum se ne è mangiato uno.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.