I have multiple zip files with names such as 001.zip, 002.zip, 003.zip and have the potential to go up to 999.zip. Each zip file has exactly one text file. I would like to extract each zip file using Batch, and then rename the text file it extracted to the file name of the zip.
For example, if I extract 001.zip, I want the text file that gets extracted (all the text files that get extracted have different names) to be name 001.txt.
I at least am extracting all the files right now, but I am too unfamiliar with Batch, and am not sure if there is a simple way to do this?
cd test
echo Decompressing zip4 data.
7z e *.zip
for %F in (*.zip) do 7z e "%F" -so >"%~nF.txt"
- provided there is only 1 file in in zip archive as you said (shown as if executed directly from command line, if used in batch use%%F
)Try this
Just make sure there are no existing text files in this folder and this should work. It just creates a temporary folder and moves all text files there (only the extracted one will be present at the time but this works as the filename is not known) and renames it to the zip file name.
After all the extractions and renames are done it just moves all the textfiles back to the original folder and deletes the temporary one.
Hope this helps.