23
7
i have a folder with 2K+ files in it, i need to delete around 200, i have a txt file with all the file names i need removed ordered in a list, how do i remove the specific files from the folder using the list? (OS is windows 7)
23
7
i have a folder with 2K+ files in it, i need to delete around 200, i have a txt file with all the file names i need removed ordered in a list, how do i remove the specific files from the folder using the list? (OS is windows 7)
18
Simple way is copy the txt file to a file called mydel.bat
in the directory of the files to delete. Using an editor like Microsoft Word edit this file. Do a global replace on Newline normally ^p
in Word. Replace it with space/f^pdelspace
. This will change
File1.bin
File20.bin
File21.bin
to (with /f
for "force delete read-only files"):
File1.bin /f
del File20.bin /f
del File21.bin /f
del
Edit the fist line to add the del
space
and delete the last line.
Run the batch command.
38
Type this on the command line, substituting your file for files_to_delete.txt
:
for /f %i in (files_to_delete.txt) do del %i
A version of this suitable to include in .cmd
files (double %%) and able to deal with spaces in file names:
for /f "delims=" %%f in (files_to_delete.txt) do del "%%f"
I created a bat file and copied the 2nd example: result: the files_to_delete.txt is still removed. (even with the /f flag) – bvdb – 2016-07-27T07:29:45.917
the first approach does not seem to work correct if the file containing the list has files with spaces in them. – SpaceTrucker – 2017-04-21T14:18:56.387
1This actually deleted the file list instead of the files themselves ... i had to create the list again :| – Avishking – 2011-11-09T19:11:01.040
4My deepest apologies. I forgot the /f
flag. – William Jackson – 2011-11-09T19:40:54.917
That's pretty nifty, I didn't know the command line supported loops like that. Care to write a blog post for the SU blog about this and other intricacies of the command line? – Ivo Flipse – 2011-11-09T22:11:32.297
1
@Ivo: You might want to take a look at http://www.computerhope.com/batch.htm or http://superuser.com/questions/tagged/batch to learn more. Like Unix, much of what can be done in scripts (batch files) can also be done directly from the command-line.
– BlueRaja - Danny Pflughoeft – 2011-11-09T22:50:36.40318
Using PowerShell:
Get-Content c:\path\to\list.txt | Remove-Item
For future readers... I had to change the pipe operator to a >
to make this work. I.e. Get-Content c:\path\to\list.txt > Remove-Item
... I had full UNC paths in my list.txt
. Hope this helps. – NateJ – 2017-04-11T21:43:37.640
@NateJ I tried using the >
and it just created a file for me, instead of deleting things. – Brian J – 2017-11-30T14:47:02.957
@BrianJ hmm, I’ll have to check back on what I did.. good catch. – NateJ – 2017-11-30T19:59:55.433
1Wow, that's way more readable than batch. – TheLQ – 2011-11-15T15:14:07.703
1
I imagine it can be done with powershell.
Knowing Perl, I tend to use it for this sort of thing
perl -l -n -e "unlink" filenames.txt
1
First method works after some changes:
copy all file names with extension which need to be deleted after adding del
at the beginning like
del File1.bin
del File20.bin
del File21.bin
save the file as xyz.bat
in the same folder
2
...the text file in the question has about 200 file names in it. Why add del
manually like you're proposing, while solutions were already posted to automate it? As an aside: any sane editor would have some support for searching and replace including line endings (or line starts, using regular expressions), macros, or for block or column mode editing (often initiated by holding down Option or Alt and then selecting a block, after which one can just type on multiple lines at once).
In editors who know how to do find/replace with regex, such as Notepad++, you would need to replace "^" with "del " and "$" with " /f", where ^ represents the beginning of each row and $ - the end. – Dan Mirescu – 2018-01-10T19:41:08.563
Apart from the /Y switch, which apparently doesn't work in win7 del command, this worked quite well .. thanks – Avishking – 2011-11-09T19:14:35.887
2That's probably supposed to be
/f
for "force delete read-only files" instead of/y
. – afrazier – 2011-11-09T19:55:50.093Correct afrazier. I was mixing up the /Y which works with XCOPY and one or two other DOS programs to 'Suppress prompting to confirm action' – kingchris – 2011-11-10T07:09:18.617