Monday, November 24, 2014
   
Text Size
Login

Batch Process to rename multiple files using Windows DOS

Applies to:
  • Microsoft Windows 7 Professional
  • Ms-DOS Command Prompt (6.1.7601)

What?
A quick article on how to rename multiple files using the command prompt and a bit of string manipulation. This example will rename files which contain the string " (Copy)" and replace it with nothing (so removes it). The challenge here is the space character and delimiting by a string.

The Gist

  1.  -- What I have 
  2.  Image00001 (Copy).jpg 
  3.  Image00002 (Copy).jpg 
  4.   
  5.  -- What I want 
  6.  Image00001.jpg 
  7.  Image00002.jpg 

How?
Before I continue, the undo may work in MS Windows (Control key + Z) but don't count on it. I'm going to use a short batch process but to save time on the different ways of doing this, the example below uses a command prompt to a) create a batch file b) use it to rename the files c) delete the batch file.

MS-DOS: Copy folders without overwriting files

What?
A quick note on how to copy files and folders over without overwriting existing files. It's easy to say "Yes" and replace all files. What I need is something that synchronizes files on an internal hard drive to an external one. I wanted it to copy only the files that were new in the original folder and only copy those over (reason being, the archive is 4 terabytes and backing up only the changed files would speed things up).

Applies to:
  • Microsoft Windows XP
  • Microsoft Windows 7
  • Microsoft Windows 8
  • for Vista and Windows 2008 without XCOPY, try ROBOCOPY.

How?
We're going to use MS-DOS because I'm that old.

A for loop within a for loop in MS-DOS

What?
A quick note for myself as I'd forgotten how to do this (we're talking technology belonging to the 90s - MS-DOS v6.22). The example wants to loop through a directory and then loop through the line it finds.

Why?
I use another technology for automation but sometimes the simpler solution is the one I make for other people to use. Explaining MS-DOS batch programs is a lot easier and colleagues trust these more than my all-in-one GUI applications.

How?
Note: we're using the code in a DOS Batch program so our variables have to be prefixed with a double-percent rather than just the one:

Determine if a program is run by another user

Why?
During a critical business period, we monitor the use of a program which only one user can be using at a time. We encountered the issue where the user who would go in to check for any errors, would forget to tell everyone else that they are no longer using the program when they are done.

What?
The program is on a server to which our standard credentials cannot use the "OPENFILES" command on the server to determine who is using a specific program. We wanted IT staff to be able to check for this without disrupting other staff, all our IT staff are admins on standard workstations.

How?
We don't have access to the server but what we do have is admin access to the workstations connected to that server. In order for the following to work, we had to pass the following criteria:
  • Administrator rights on remote workstation.
  • Need to know the computer name or IP address of the remote workstation.

Open a command prompt

  1.  tasklist /s <computername> 

Prefix Line Numbers in a Text File

Intro
Prefixing lines with their respective line number in a text file using a Microsoft Windows Operating System... I've just googled this as I couldn't remember how I did this last time and a number of people showing off their MS-DOS batch skills have proposed stupid extensive solutions when all you need is one command-line.


Why?
Working with programming languages, I often need to write the accompanying documentation. Within the documentation, I may want to refer to a line of code within a text file. I also find myself copying amounts of code into the same document and then needing lines prefixed so that I can explain the code.


What?
Change contents of "original_file.txt"

  1.  The first line of my code 
  2.  The second line of my code 
  3.  The third line of my code 
To "results_file.txt"

  1.  1:  The first line of my code 
  2.    2:  The second line of my code 
  3.    3:  The third line of my code 


How?

Latest Posts

  • Convert to Proper Case in T-SQL

    • Tue 11-Nov-14
      Hi Brandon, An excellent point as I completely forgot about that one. I guess in the UK we don't get ...
      Joel L.  
    • Thu 06-Nov-14
      Thank you for this! One of the cases I'm going to try to adapt it for is addresses. In the US, we ...
      Brandon C.
  • SSIS: How to loop through multiple flat files as data sources

    • Thu 13-Nov-14
      Hey Mario, Looks like for each loop you set up at #5 will take care of that, doesn't matter if you ...
      Ramsey K.  
    • Sat 01-Nov-14
      Hi, thanks, bit not clear on #6, I still have file name from step #1
      Mario17
  • Windows 7: System Clock is constantly going out of sync

    • Sat 01-Nov-14
      Thank you..that solved my issue. Just wondering whether preventing my computer from synchronizing ...
      Ravi G.