Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've 80.000 files in a folder and I need to rename all them from

filename.jpg

to

._filename.jpg

in Windows environment, I guess from dos. The reason is that I've compressed these files into a tar.gz from unix and copied into windows and for some reason the filenames have changed.

Could you tell me what's the command to do it ? thanks

share|improve this question
add comment

9 Answers

up vote 4 down vote accepted

You can use the built in rename or ren command:

ren *.jpg ._*.jpg

Though, as with all these things, try it on a directory containing just a few files first.

share|improve this answer
1  
I like your approach, but i have 2 issues: (1) the first letters of the filenames are replaced. In other terms, the "._" is not added at the beginning but it replaces the first 2 letters. (2) "._" actually doesn't work. If I use, for instance "__" then it works. I think the dot, "." gives some issues –  Patrick Apr 20 '11 at 12:02
    
@Patrick - I must admit I didn't have chance to fully test this this, and yes I think you're right about the dot causing problems. –  ChrisF Apr 20 '11 at 12:05
add comment

Here's a way using PowerShell:

Navigate to your folder and run this command

Get-ChildItem *.jpg | Rename-Item -newname {"._" + $_.Name}

Extra bonus short version:

gci *.jpg | ren -newname {"._" + $_.Name}
share|improve this answer
add comment

I have 2 solutions:

  1. all files is in the same folder

    • run the following dos command line in the root folder:

      for /f "delims=¯" %i in ('dir /b /on') do ren "%i" "._%i"
      
  2. complete solution when there are files in subfolders AND when you wanna to replace the "n" first characters with a string you want :D

    • create a batch file with the following command
    • change variable parameters to what you want
      • path: put inside "" the root path of your files (e.g. "C:\documents and settings\user\desktop\new folder"
      • numfirstchars2replace: put a number with the first characters to reclace (in your case, 2)
      • str2put: put a string to be added as a prefix of the new filename (in your case, "._", without "")
    • run it in a folder different from where the files are


@echo off

::only to tell user what this bat are doing
echo.1.initializing...

::enable that thing to allow, for example, incremental counter in a for loop :)
echo.- EnableDelayedExpansion
SETLOCAL EnableDelayedExpansion

::variables
echo.- variables
:: - place here the absolute root path of your files
set path="put here where are the root folder of your files"
set pathbak=%cd%
set numfirstchars2replace=2
set str2put=._

::go to %path% and its driveletter
echo.- entering the path you want
for /f "delims=¯" %%i in ('echo.%path%') do %%~di
cd %path%

::search all subfolders and save them to a temp file
echo.- searching for subfolders
echo.%path%>%temp%\tmpvar.txt
for /f "delims=¯" %%i in ('dir /s /b /on /ad') do echo."%%i">>%temp%\tmpvar.txt

::execute command for root folder and all found subfolders
echo.
echo.2.executing...
for /f "delims=¯" %%i in (%temp%\tmpvar.txt) do (
  cd %%i
  echo.- in folder: %%i
  for /f "delims=¯" %%j in ('dir /b /on /a-d') do (
    set newname=%%j
    set newname=!newname:~%numfirstchars2replace%,1000!
    echo.- renaming from "%%j" to "%str2put%!newname!"...
    ren "%%j" "%str2put%!newname!"
  )
)

echo.
echo.3.exiting...
::return to %pathbak% and its driveletter
for /f "delims=¯" %%i in ('echo.%pathbak%') do %%~di
cd %pathbak%

@echo on
share|improve this answer
    
fully tested :) it solves your problem, including with some specs you give in @ChrisF comment. note: in "delims=¯", if "¯" is used in a filename, change "¯" with another character you know that is not used in the filenames –  kokbira Apr 20 '11 at 14:12
    
voted up because of your incredibly long script to just do a loop and rename sth. :) –  wullxz Apr 20 '11 at 22:27
    
well, justly, I could make a "for /f" loop with all files sorted by name and then renaming them to "._lenameX.jpg" with X as the order number, but I thought in a way to do it for other cases - if in future a similar problem appears, someone can modify some commands... –  kokbira Apr 22 '11 at 7:38
    
you can use "delims=" instead of "delims=¯" (I forgot that :D). also you can use for /f intead of for /f "delims=" because it does what I want in that case... –  kokbira Apr 25 '11 at 12:56
add comment

If they are all in the same folder, you could select them all with Control + A and then hit F2 to rename one of them. All subsequent files will be named file(2), file(3), etc

share|improve this answer
add comment

Try Powershell (preinstalled in Windows 7):

Get-Childitem /path/to/your/files | foreach-object { move-item $_ $("._" + $_.name) }

(tested it in my download-dir.)

Edit: Siim K's code will append an additional ".jpg" to every "._filename.jpg". Remove that last ".jpg" in Siim K's code and you have a short, elegant code to rename your files.

share|improve this answer
    
thanks, updated. Re-used code from a similar rename command which required the extension manipulation and didn't notice. –  Siim K Apr 20 '11 at 12:05
add comment

Total Commander has a really nice multi-renaming tool.

share|improve this answer
add comment

I've always found Flash Renamer to be a good tool for renaming files in batches.

It has trial and full versions ($20) and can rename files based on meta data - very useful for renaming MP3 files which I what I use it for mostly.

share|improve this answer
add comment

If your looking for a user friendly way of renaming in bulk you could try the free tool Ant Renamer, there's a huge list of actions you can take and it also gives a handy preview before you do any renaming. I use it a lot when messing with my music, photo or video librarys.

share|improve this answer
add comment

I have used this freeware File Renamer program with great results. Many different filters and options, plus it gives you the ability to test results. A little outdated UI perhaps but works like a champ.

http://www.webxpace.com/software/freeware.shtml#FileRenamer

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.