Could any of you help me with a problem I have with a lot of files with the same name, placed in sperate folders.
The folders are named with numbers, but the files
I agree with Brandon that the Bulk File Rename (http://www.bulkrenameutility.co.uk/) is a great way to rename/suffix the files with their directory names under Windows.
To copy all the renamed files to a common directory, use Windows Explorer to do a search for all the filenames with a with a wildcard (e.g. readme*.txt). Then select all the found files, select copy, navigate to the target directory, and paste.
If you want a GUI to do all the above, Use Bulk File Rename.
Open it up, Browse to your folder. Now check the Sub Folders option in the Selections tab. All your files under the folders will be listed. Select the files in the browser.
In the File tab switch the first option from Keep to Remove. Then go to the Append Folder Name tab and set option Prefix for property Name. Click on Rename to complete.
The advantage with this is that it shows you a preview of what your files will be renamed to.
@Echo OFF
FOR /D /R %%# in (*) DO (
PUSHD "%%#"
FOR %%@ in ("index*") DO (
Echo Ren: ".\%%~n#\%%@" "%%~n#%%~x@"
Ren "%%@" "%%~n#%%~x@"
)
POPD
)
Pause&Exit
Tested folder structure:
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123321
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123321\Index.txt
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123456
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123456\Index.php
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123456\000000
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123456\000000\Index.css
C:\Users\Administrador\Desktop\Nueva carpeta (3)\654321
C:\Users\Administrador\Desktop\Nueva carpeta (3)\654321\Index.html
C:\Users\Administrador\Desktop\Nueva carpeta (3)\654321\666999
C:\Users\Administrador\Desktop\Nueva carpeta (3)\654321\666999\Index.jpg
Output:
Ren: ".\123321\Index.txt" "123321.txt"
Ren: ".\123456\Index.php" "123456.php"
Ren: ".\654321\Index.html" "654321.html"
Ren: ".\000000\Index.css" "000000.css"
Ren: ".\666999\Index.jpg" "666999.jpg"
@ECHO OFF
SETLOCAL enabledelayedexpansion
SET startfrom=c:\sourcedir
SET destdir=c:\destdir
FOR /f "delims=" %%i IN ('dir /s /b "%startfrom%\index.*"') DO (
FOR %%e IN (jpg html pdf) DO IF /i .%%e==%%~xi (
FOR %%d IN ("%%~dpi.") DO (
SET "var=%%~nxd"
IF "!var:~6!"=="" (
SET "var="
SET /a var=1%%~nxd 2>NUL
IF DEFINED var IF !var! geq 1000000 IF !var! leq 1999999 (
ECHO MOVE "%%i" "%destdir%\%%~nxd%%~xi"
)
)
)
)
)
set
a variable to 1000000..1999999 if 6-digit nameECHO
the move command (remove ECHO keyword to perform move)Annotated test structure:
c:\sourcedir\index.pdf not 6-digit dir
c:\sourcedir\000000\index.jpg
c:\sourcedir\000009\index.css extension not specified
c:\sourcedir\000009\index.html
c:\sourcedir\000009\index.jpg
c:\sourcedir\000009\index.pdf
c:\sourcedir\000009\index.txt extension not specified
c:\sourcedir\010+39\index.txt not 6-digit dir
c:\sourcedir\12345\index.jpg not 6-digit dir
c:\sourcedir\1234567\index.jpg not 6-digit dir
c:\sourcedir\123x56\index.jpg
c:\sourcedir\50000-0000\index.jpg not 6-digit dir
c:\sourcedir\5000000000\index.jpg not 6-digit dir
c:\sourcedir\999-99\index.jpg not 6-digit dir
c:\sourcedir\999999\index.jpg
c:\sourcedir\a\index.jpg not 6-digit dir
c:\sourcedir\yellow\index.jpg not 6-digit dir
Results:
MOVE "c:\sourcedir\000000\index.jpg" "c:\destdir\000000.jpg"
MOVE "c:\sourcedir\000009\index.html" "c:\destdir\000009.html"
MOVE "c:\sourcedir\000009\index.jpg" "c:\destdir\000009.jpg"
MOVE "c:\sourcedir\000009\index.pdf" "c:\destdir\000009.pdf"
MOVE "c:\sourcedir\999999\index.jpg" "c:\destdir\999999.jpg"