Come posso creare un file txt per ogni parola in un elenco


5

Esempio:

Ho un file .txt ... (C: \ Gardening \ WordFile.txt) ... con le seguenti parole ...

Aquaculture
Aquaponics
Hydroponics
Aeroponics

Ho bisogno di un file .TXT creato in una directory specificata ... (IE: C: \ Gardening) come questo

C:\Gardening\Aquaculture.txt

C:\Gardening\Aquaponics.txt

C:\Gardening\Hydroponics.txt

C:\Gardening\Aeroponics.txt

per OGNI parola nel file (C: \ Gardening \ WordFile.txt)

Ho già un file batch che crea una cartella per ogni file in una directory e sposta il file nella sua directory omonimo.

Ho davvero bisogno di ENTRAMBI le funzioni in file batch separati poiché ho bisogno che ciascuna funzione lavori separatamente in momenti diversi.

Risposte:


4

Come posso creare un file txt per ogni parola in un elenco

Prova questo come una soluzione se ogni parola in C: \ Giardinaggio \ WordFile.txt si trova sulla propria riga separata nel file:

Testo in WordFile.txt Esempio:

Aquaculture 
Aquaponics 
Hydroponics 
Aeroponics

Script di batch implicito

Questo script batch dovrebbe essere eseguito dalla stessa directory di list.txt e i file da creare risiederanno; così la script batch , il file-list , e il file creati saranno tutti nel stesso una cartella per questo.

@ECHO ON

::: Implicitly Written
SET FileList=List.txt

FOR /F "TOKENS=*" %%F IN (%FileList%) DO (

    ECHO ^0>"%%~F.txt"

)
GOTO EOF

Script batch esplicito

Questo script batch può essere eseguito da qualsiasi luogo poiché viene specificato il percorso completo che punta a file-list e dove vengono creati i nuovi file.

@ECHO ON

:::Explicitly Written
:::: Ensure there are NO SPACES in this path
SET FileList==H:\OMGA\AutoRefresh\FileList.txt
SET CreateFileDir=H:\OMGA\AutoRefresh\OutputFiles\

FOR /F "TOKENS=*" %%F IN (%FileList%) DO (

    ECHO ^0>"%CreateFileDir%\%%~F.txt"

)
GOTO EOF

Se ogni parola in C: \ Giardinaggio \ WordFile.txt si trova sulla stessa linea esatta con ogni essere separato da uno spazio quindi utilizzare la soluzione seguente invece:

Testo in WordFile.txt Esempio:

Aquaculture Aquaponics Hydroponics Aeroponics

FOR /F "DELIMS=" %%F IN (C:\Gardening\WordFile.txt) DO FOR %%G IN (%%F) DO ECHO. >> "C:\Gardening\%%~F.txt"

Aggiunto per richiesta commentata. . .

@ECHO ON

::: Implicit
:::: Ensure there are NO SPACES in this path
SET FileList=List.txt

FOR /F "TOKENS=*" %%F IN (%FileList%) DO (

    ECHO.  >>"%%~F.txt"
    CALL :CreateFile "%%~F.txt"
)
GOTO EOF

:CreateFile
ECHO ^0>"%~1"
GOTO EOF

I commenti non sono per discussioni estese; questa conversazione è stata trasferito in chat .
Journeyman Geek

Questo è stato. Ora funziona!
user3626994

@ user3626994 Si prega di vedere Accettare una risposta per assicurarti di capire come dovrebbe funzionare per le risposte che ti aiutano a risolvere il tuo problema per la domanda che chiedi. Quando ne hai la possibilità, dai un'occhiata e considera di accettare la mia risposta per chiudere il ciclo sulla tua richiesta per la tua domanda.
Pimp Juice IT

2

Se PowerShell è un'opzione:

Supponendo che ogni parola sia su una linea separata.

Get-Content "C:\Gardening\WordFile.txt" | Foreach-Object {New-Item "C:\Gardening\$_.txt" -Type file}

Penso che sia auto esplicativo.

  • leggere il contenuto del file riga per riga

  • creare per ogni riga di detto file un nuovo file di testo con il nome della riga corrente ($ _)

Se le tue parole sono separate da delimitatori come , è necessario sostituire la parte _Get-Content _ del comando precedente (la parte prima del simbolo pipe |) con quanto segue: (Get-Content "C:\Gardening\WordFile.txt").split(",").

Funziona come sopra tranne che invece di leggere riga per riga, inoltre divide ogni voce in base al delimitatore specificato.

È possibile sostituire il carattere nel metodo Split () con il proprio delimitatore specifico.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.