Need help with dnscmd.exe

Posted on 2007-12-01
Medium Priority
Last Modified: 2010-08-05
Environment: Windows 2003 server, AD integrated DNS

Hi there:
I'm having a devil of a time tyring to do a delete/replace all A and www records in 1000+ DNS records for our websites (the IIS server has moved to another IP address ( and I'm also trying to set up a new DNS server.  I am on the new DNS server and all DNS zones have been set up, but they have the old A and www records pointing to the IP address of the old IIS server.
I have written two batch files and I am executing one against the other.
One .bat program has all the website names and I am doing a  
for %%1 in (
) Second_bat_file

The second .bat file against which the first program is executing has the following dsncmd commands:

dnscmd /recorddelete %1 @ A www /f
dnscmd /recorddelete %1 @ A /f
dnscmd /recordadd %1 @ A www /f
dnscmd /recordadd %1 @ A /f

From the commands, you can see I am trying to delete the A and www records in each DNS zone and replace them with new a and www records.

When I run the program batch file against this second one, it keeps giving me invalid syntax or missing syntax errors . The program goes through all the websites (and gives all the errors), so I don't see a problem with the first .bat file that contains the for/do program and the domains.  The problem appears to be in my syntax in the second .bat file that contains the dnscmd lines. What am I doing wrong? I have tried all kinds of combinations and nothing works.

Open in new window

Question by:PWyatt1
  • 2
  • 2
LVL 86

Expert Comment

ID: 20391474
The error is in your first script.
The "for" command has to be used with letters from a to z or A to Z, and you didn't pass the variable to the second batch script, either.

for %%a in (domain1 domain2 ...) do call SecondFile.bat %%a

Open in new window


Author Comment

ID: 20391841
Thanks. So I replace the "1" with an "a" in the first script. Does the "a" variable also have to appear in the second script. If so, where does it appear in each dnscmd line?
LVL 86

Accepted Solution

oBdA earned 500 total points
ID: 20391884
The "%%a" variable is only visible in the "for" loop.
It is then passed using the command line to the second batch file (and the first command line argument in the second batch is then %1).

Author Comment

ID: 20392095
Excellent! Thanks for the help. I'm assuming I can have multiple dnscommand line arguments in the second batch file.

Featured Post

Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

It’s time for spooky stories and consuming way too much sugar, including the many treats we’ve whipped for you in the world of tech. Check it out!
Transferring FSMO roles is done when an admin wants to split roles between certain Domain Controllers or the Domain Controller holding the Roles has been forcefully demoted using dcpromo / forceremoval
This tutorial will walk an individual through the process of transferring the five major, necessary Active Directory Roles, commonly referred to as the FSMO roles from a Windows Server 2008 domain controller to a Windows Server 2012 domain controlle…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

600 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question