Batch dos per dimensione file

di Anonimizzato12977 il
10 risposte
Salve a tutti

ho già postato nella sezione "Il bar dei programmatori", ma senza successo. Riprovo qui, che mi sembra quella giusta.

Ho un piccolo problema nel far funzionare un file Batch dos. Ho trovato in rete un esempio, ma non riesco a farlo girare (non mastico questo linguaggio).

il file dovrebbe scrivere su un txt quali file contenuti in una cartella hanno dimensioni minori di un "tot", in modo che io possa poi prendere i file indicati ed analizzarli.

Questo esempio non riesco a farlo funzionare:

FOR %%F IN (c:\cartella\*.pdf) DO ( IF %%~zF LSS 1000000 echo %%~nF >> CONTROLLO\dimensioni.txt)

Suppongo che le variabili, tipo %%F, debbano essere settate, tuttavia non so come fare.
Cosa devo mettere al posto di queste variabili?
Spero di aver illustrato il problema nel modo piu opportuno, in caso chiedetemi precisazioni.

Grazie e buon pomeriggio ;o)

10 Risposte

  • Ciao RudyM4

    Immagino che ti dia un errore del tipo 'impossibile trovare il percorso', probabilmente l' errore è il nome del file di output. Ho scritto questo che è molto simile al tuo e funziona perfettamente:
    
    FOR %%F IN (c:\Temp\Test\*.png) DO ( IF %%~zF LSS 50000 echo %%~nF >> dimensioni.txt) 
    
  • Sposto la discussione sulla sezione calderone...
  • Buongiorno Toki!
    No, a dire la verità, faccio partire il Batch, ma non funziona....non succede nulla....vedo che scrive delle righe, ma non produce nessun file txt con dentro i nomi dei file la cui grandezza è inferiore a un tot prestabilito.

    non sò....vedo quelle variabili %%F, %%~zF, %%~nF .....io le ho lasciate così.....forse al posto di quelle devo mettere qualcos'altro? che sò, delle indicazioni per i miei file? Oppure dovrebbe funzionare secco così?

    La riga che continene l'istruzione ">> dimensioni.txt", dovrebbe produrre un file txt dal nome "dimensioni.txt"? se si, dove?

    Se riuscite a farmi capire come far funzionare questo file, mi fareste un gran favore

    Grazie Toki
  • Ciao mi sa che hai fatto confusione, ti sta seguendo barba59 non io.
  • Hai ragione Toki....avevo fatto riferimento all'ultimo post, sorry
  • barba59 ha scritto:


    Ciao RudyM4

    Immagino che ti dia un errore del tipo 'impossibile trovare il percorso', probabilmente l' errore è il nome del file di output. Ho scritto questo che è molto simile al tuo e funziona perfettamente:
    
    FOR %%F IN (c:\Temp\Test\*.png) DO ( IF %%~zF LSS 50000 echo %%~nF >> dimensioni.txt) 
    

    Provo a montare questo, vediamo che succede, grazie Barba59
  • Barba, grazie mille, funziona! Effettivamente, il nome in output sembra non andasse bene.
    Perchè non funzionava in quel modo??

    Grazie ancora!
  • Ciao RudyM4

    Il problema era solo il nome del file di output 'CONTROLLO\dimensioni.txt', la directory 'CONTROLLO' o non esiste o non è raggiungibile da dove lanci il batch.
  • Mah, non ricordo bene, ma nelle prove che avevo fatto, mi sembra che avessi provato a creare la cartella "CONTROLLO" all'interno della cartella che conteneva i file, tuttavia non riusciva a produrre nulla. Ora, per scrupolo, proverò a riprodurre le stesse condizioni di partenza (di quando ci avevo provato) e vedo di capire cosa non andasse. Caso mai ti faccio sapere, anche solo per curiosità o per lasciare un indicazione utile.


    Grazie ancora per l'aiuto e alla prossima!
  • RudyM4 ha scritto:


    nelle prove che avevo fatto, mi sembra che avessi provato a creare la cartella "CONTROLLO" all'interno della cartella che conteneva i file
    Allora il problema era questo, se la cartella 'CONTROLLO' era dentro la cartella dei file (che si chiamava 'cartella') il suo percorso doveva essere 'cartella\CONTROLLO\dimensioni.txt'
Devi accedere o registrarti per scrivere nel forum
10 risposte