I have the following folders:
Apple_folder
Pear_folder
Tomatoes_folder
Within Apple_folder
, I have the following files:
Extracted-Apple_1.txt
Extracted-Apple_2.txt
Extracted-Pear_1.txt
Extracted-Pear_2.txt
Extracted-Apple_3.txt
Extracted-Tomatoes_1.txt
How do I move Extracted-Pear_1.txt
, Extracted-Pear_2.txt
, Extracted-Tomatoes_1.txt
to their relevant folders, i.e. keep file name that contain apple
under Apple_folder
, etc.
Expected Apple_folder
contents:
Extracted-Apple_1.txt
Extracted-Apple_2.txt
Extracted-Apple_3.txt
I am still a beginner in batch script, so not sure how to proceed?
for %%a in (*.txt) do (
echo %filename%
for /f "tokens=* delims=- _" %%f in (%filename%) do (
if tokens==Pear move Extracted-Pear*.txt "C:\Users\ABCD\Documents\Pear_folder\"
if tokens==Tomatoes move Extracted-Pear*.txt "C:\Users\ABCD\Documents\Tomatoes_folder\"
)
I am using this code to try to rename the files to avoid overwriting files with similar name in the destination folder.
setlocal enabledelayedexpansion
set /A counter=0
@echo off
for %%a in (*.txt) do (
set /A counter+=1
for /f "tokens=2 delims=-_" %%f in ("%%a") do (
move Extracted-%%f_*.txt "C:\Users\ABCD\Documents\%%f_folder\Extracted-%%~nf_moved_!counter!.txt"
)
)
only one file gets moved/renamed and then get an error message
"Cannot move multiple files to a single file."