Monday, February 11, 2019

windows 10 - Bulk move via CMD Regex



I have about 15k files in a flat folder. All are named something like blah blah - whatever.png. Basically, I'd like to move them all into folders named blah blah. I don't want to rename any of them, just bump them into their respective folders. I imagine I need to do this with some kind of regex, but I can't seem to workout how to apply regex in this context.


Answer



The for command does not support regular expressions.



Assuming all files contain a - character, you could probably use this code in a batch file:




for /f "delims=- tokens=1* usebackq" %%a in (`dir /b *.png`) do (
if not exist "%%a" mkdir "%%a"
move "%%a-%%b" "%%a"
)


delims=- will split the filenames on -, giving you the directory name which will be created if it doesn't exist yet. Next, the original filename, %%a-%%b, will be moved to that directory.


No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...