Come rimuovere l'ultimo 4 carattere prima di salvare i dati nel file txt


0

Ho un file batch che salva i nomi delle immagini dalla cartella al file txt, ma prima di salvarli voglio rimuovere .png

Come posso farlo?

@echo
SET path = "C:\Documents\Img"
dir /b %path % > myImg.txt


Nota: quando si utilizza set non è una buona idea avere spazi attorno al = come aggiunge uno spazio al nome della variabile ...
DavidPostill

Risposte:


1

Una soluzione rapida (con grande aiuto da parte di: https://stackoverflow.com/questions/3215501/batch-remove-file-extension ) che ottiene solo il nome file (estensione minus) e restituisce l'elenco a un file:

(Ho modificato la mia risposta in modo che corrisponda alla directory / file)

@echo off
for /R "C:\Documents\Img" %%f in (*.*) do (
    echo %%~nf >>myImg.txt
)
pause

Lo script sarà continuamente aggiunto al pics.txt file quindi se hai bisogno di scrivere ogni volta un nuovo file, dovrai aggiungere un passaggio iniziale per sovrascrivere il file con una stringa vuota ( break>myImg.txt ):

@echo off
break>myImg.txt
for /R "C:\Documents\Img" %%f in (*.*) do (
    echo %%~nf >>myImg.txt
)
pause

Sarebbe stato ancora meglio se lo avessi modificato per usare il suo percorso piuttosto che quello dell'altra domanda.
LPChip

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.