Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [DOS] Leggere un txt da un .bat

    Salve a tutti,
    scusate ma sto impazzendo.

    Premessa:
    - Ho un file master.doc e devo copiarlo in un altra directory con un altro nome quando eseguo un file .bat ma ogni volta deve avere alla fine del nome un numero progressivo diverso.
    \cartella1\master.doc
    \cartella2\file1.doc
    \cartella2\file2.doc
    ... etc

    Problema:
    - Ho creato un .bat semplice che copia il mio file e lo rinomina. Non so muovermi nel dos e dovrei farlo il più semplice possibile quindi ho pensato ad una soluzione:
    Scrivo un file txt con un numero e dal .bat lo leggo, salvo il valore nella variabile e sovrascrivo il file con il valore incrementato di uno (così in memoria mi tengo salvato "dove sono arrivato" con i numeri) e infine rinomino il file appena copiato con "nome file %variabile%.doc".

    Come posso fare?

    Per ora ho scritto questo codice:
    codice:
    @echo off
    set /a var < c:\prova\numero_nome.txt
    echo %var% > c:\prova\prova2.txt
    set /a var=%var%+1
    echo %var% > c:\prova\prova3.txt
    ho provato anche con
    codice:
    set var = TYPE c:\prova\numero_nome.txt
    echo %var% > c:\prova\prova2.txt
    set /a var=%var%+1
    echo %var% > c:\prova\prova3.txt
    per provare la funzione di lettura/scrittura su file e mi sono bloccato.. ho fatto due file di prova per vedere se riuscivo a prelevare il valore, salvarlo altrove e salvarlo altrove incrementato di 1 ma non funziona.
    in "prova2.txt" mi salva "ECHO Disabilitato" (oppure "ECHO Attivo" nel secondo caso) e in "prova3.txt" mi salva "1".

    Come posso prelevare il numero presente in "numero_nome.txt" e salvarlo in una variabile?

  2. #2
    Up nulla da fare?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Non sono sicuro di aver capito esattamente qual'è il problema
    ma questo ultimo numero che vuoi salvarti non lo puoi salvare come
    unico CONTENUTO del file, tipo un file ultimo.txt che contiene solo "27"
    invece di lavorare sul nome del file?

  4. #4
    Dopo giorni di tentativi ci sono riuscito proprio ora!!

    Eccone il codice:
    codice:
    @echo off
    setlocal enabledelayedexpansion 
    set numero= 
    for /f "delims=" %%a in (numero_nome.txt) do ( 
    set appoggio=%%a 
    set numero=!appoggio!
    )
    
    copy "C:\path\documento_originale.doc" "C:\path\di\destinazione"
    rename "C:\path\di\destinazione\documento_copiato.docx" "Nome File %numero%.docx"
    
    SET /a numero = %numero%+1
    
    echo %numero% > "C:\path\da\tenere\al\sicuro\numero_nome.txt"
    P.S.
    @c0der:
    No, io HO un file che ha come unico contenuto un numero, e da quello devo prendere quell'unico contenuto, metterlo in una variabile ed usare quel numero (finalmente in una variabile) per dare il nome ad un file. Il problema è leggere "QUELL'UNICO CONTENUTO" da un file .txt ._. non è semplice xD

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    tu intendevi proprio usare il contenuto del file, sono io che non ero
    sicuro di aver capito, dal tuo preambolo alla domanda....

    Per dire, se avessi dovuto chiedere quello che hai chiesto tu ridurrei drasticamente a:
    "Vorrei assegnare a una variabile d'ambiente dos il contenuto di un file. Come si fa?"

    Ciao.

  6. #6
    Si, ma quando si scapoccia appresso ad un codice che non si conosce sai com'è.. ho preferito mettere tutto in chiaro

    Grazie per l'interessamento ed il tentato aiuto

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Succede tante volte, come a te adesso, che uno fa una domanda e poi si risponde da solo
    prima di ricevere risposte dagli altri, forse perché si mette in una condizione di maggior
    ottimismo verso la soluzione del problema e la soluzione arriva. Ciao.

  8. #8
    Si, esporlo a se stesso pensandolo non è come esporlo scrivendolo o parlandone.. la mente non a caso è ancora un mistero

    Ma vabè, l'importante è aver risolto (anche se c'ho messo una settimana xD)

  9. #9
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    bellissimo, non lo conoscevo...

    capitato tante volte che conoscenti mi telefonano perché sono "l'esperto di computer"
    e mentre mi spiegano il problema al telefono davanti al computer, trovano una soluzione,
    il problema sparisce e dicono: "vedi, basta parlarti, hai poteri anche a distanza..."
    In realtà il potere ce l'ha la mente umana.

    Sapendo di questo racconto ora gli mando una mia foto davanti al computer e gli dico,
    "la prossima volta prima di chiamare fai la domanda alla foto..."

    Oppure tante email mandate da me con "Non funziona..." e 1 minuto dopo ne mando un'altra con "Risolto..."

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.