DOMANDA Consigli su come realizzare questa funzione?

Pubblicità

Warmuser

Utente Èlite
Messaggi
1,835
Reazioni
96
Punteggio
95
Mi servirebbe generare dalla lista di titoli in un file di testo dei molteplici file di testo con ciascuno un titolo della lista. Esempio:

Lista in Gruppi.txt:

Queen
Led Zeppelin
Guns N' Roses
Aerosmith
etc..

in

Queen.txt
Led Zeppelin.txt
Guns N' Roses.txt
Aerosmith.txt

Ed il batch dovrebbe fare questa cosa: Dal file "gruppi.txt" genera da ogni riga un "nome gruppo.txt" e se esiste un .txt uguale, ignoralo (così da escludere i duplicati).

Mi sono scervellato un po' ma non sono riuscito a concludere nulla. Ho deciso di provare ad rielaborare un batch che avevo creato qualche anno fa per comprimere massivamente con 7zFM tutte le cartelle (anche files mi pare) presenti in una cartella principale.

for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\"

Da questo ho tentato di elaborare questo batch:

for /d %%X in (test.txt) do "%windir%\system32\notepad.exe" a "%%X.txt" "%%X\"

Ma mi apre solo il .txt e mi dice che la sintassi non è corretta.

Non mi ricordo più molto di batch. Sto cercando di ricordare quanto più possibile rileggendo guide. Consigli?
 
non avendo nulla da fare te l'ho creato io, ecco il download --> http://s000.tinyupload.com/?file_id=04170711531594797827

Il funzionamento è semplice, estrai l'.exe in una nuova cartella, metti Lista dei Gruppi.txt nella stessa cartella, quando lanci l'exe inserisci il nome esatto del tuo file cioè Lista dei Gruppi.txt e il codice prende ogni riga in esso, ci appiccica .txt e ti crea il file in quella cartella.

codice:
C++:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
    string inputFilePath;

    cout << "Insert list path: ";
    cin >> inputFilePath;

    ifstream inputFile{ inputFilePath };

    string newFileName;
    while (getline(inputFile, newFileName))
    {
        newFileName += ".txt";
        ofstream newFile { newFileName };
        newFile.close();       
    }
    inputFile.close();
    return 0;
}
 
non avendo nulla da fare te l'ho creato io, ecco il download --> http://s000.tinyupload.com/?file_id=04170711531594797827

Il funzionamento è semplice, estrai l'.exe in una nuova cartella, metti Lista dei Gruppi.txt nella stessa cartella, quando lanci l'exe inserisci il nome esatto del tuo file cioè Lista dei Gruppi.txt e il codice prende ogni riga in esso, ci appiccica .txt e ti crea il file in quella cartella.

codice:
C++:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
    string inputFilePath;

    cout << "Insert list path: ";
    cin >> inputFilePath;

    ifstream inputFile{ inputFilePath };

    string newFileName;
    while (getline(inputFile, newFileName))
    {
        newFileName += ".txt";
        ofstream newFile { newFileName };
        newFile.close();    
    }
    inputFile.close();
    return 0;
}


Ciao, sei un grande. PS: Ti consiglio di metterlo su github se vuoi condividerlo e/o implementarlo (può sempre tornare utile per altri scopi). :)
 
Ultima modifica:
Pubblicità
Pubblicità
Indietro
Top