I have a bunch of files with the same prefix "prefix_filename.txt". I want to remove this prefix and underscore from all filenames, how can I do this?
Use the for command - no batch file needed or third party tool either
for /f "tokens=1* delims=_" %a in ('dir /b /a-d') do @if "%b" NEQ "" ren "%a_%b" "%b"
(always test first)
To break it down, the for command executes the dir command in bare (/b) format and showing files only (attributes NOT directory - /a-d). The tokens are the "columns" in the output - Column 1, then Column 2 is everything NOT in column 1, excluding the delimiter. The delimiter is the underscore. Now that everything is defined, we "do" a check to ensure there is a second column (%b) and if there is, we rename the full file name to the file name without the prefix and underscore.