Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755

    [batch] ciclare su files

    ciao a tutti
    il mio problema è questo
    ho vari files txt chiamati pippo_20131001 pippo_20131002 pippo_20131003 etc.
    Li vorrei consolidare su base mensile ottenendo pollo_201310.log
    Pensavo che la cosa più veloce da fare fosse ciclare su ciascun file pippo e reindirizzarne il contenuto in pollo tramite il comando TYPE.
    Per praticità vorrei farlo via batch. Non riesco però ad utilizzare il FOR.
    Ho trovato millanta esempi nella forma tipo questo http://www.robvanderwoude.com/for.php

    speravo di poter fare così ma già nella prima prova
    @for %miofile in (dir files\pollo*) DO echo %miofile

    ottengo l'errore
    miofile was unexpected at this time.

    cosa sbaglio?

    grazie
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  2. #2
    Hai provato con
    type pippo*.quelcheé > c:\poppi.log

  3. #3
    Se scrivi un for in un file batch devi mettere due % prima della variabile (questo dipende dal fatto che il parser batch è un accrocchio scritto quando ancora il DOS girava sui 386, ma non si può sistemare perché si romperebbe la compatibilità con i file batch esistenti).

    Occhio comunque che non è garantito che l'ordine fornito da dir (o dai wildcard nell'argomento passato a type) sia alfabetico... che io sappia è vero sui volumi NTFS, ma (1) non è garantito, e (2) su volumi FAT non accade. Con dir, dovresti passare il flag /O:N per essere sicuro che l'ordine sia quello atteso (alfabetico).
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    Quote Originariamente inviata da denis76 Visualizza il messaggio
    Hai provato con
    type pippo*.quelcheé > c:\poppi.log
    si, alla fine ho risolto così, ma il ciclo for potrebbe servirmi in altre occasioni

    grazie
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  5. #5
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    Se scrivi un for in un file batch devi mettere due % prima della variabile (questo dipende dal fatto che il parser batch è un accrocchio scritto quando ancora il DOS girava sui 386, ma non si può sistemare perché si romperebbe la compatibilità con i file batch esistenti).
    ...
    ho modificato così
    for %%m in (dir files\pollo*) DO echo %%m
    e funziona. grazie mille

    avevo trovato nelle guide la storia del doppio % ma non ci avevo capito niente
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  6. #6
    Quote Originariamente inviata da wallrider Visualizza il messaggio
    ho modificato così
    for %%m in (dir files\pollo*) DO echo %%m
    e funziona. grazie mille

    avevo trovato nelle guide la storia del doppio % ma non ci avevo capito niente
    Perché in effetti non ha nessun senso; in sostanza, in un file batch nel for (e solo nel for) metti il doppio %, se invece lo scrivi "a mano" ci va un % solo (se non ricordo male).
    Amaro C++, il gusto pieno dell'undefined behavior.

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.