Link to home
Start Free TrialLog in
Avatar of Pau Lo
Pau Lo

asked on

multiple net commands

Is there any easy way to do a bulk list of net commands in one single go? Without having to execute the commands one-by-one?
Avatar of Qlemo
Qlemo
Flag of Germany image

Use a text file containing all commands as you would enter them in the netsh prompt, and provide that file: netsh -f c:\Scripts\NetShCmds.txt

Or create the commands on the fly:
@echo off
( echo interface show interface
  echo ras ip show config
) | netsh

Open in new window

This is handy if you need to build the commands depending on conditions, have to insert e.g. interface names you got earlier from another netsh, and the like.
The answer above will work, if you are not very familiar with programming there are other ways to do similar net commands. For example three of the most use net commands are:
Net use
Net share
Net view

It is a straightforward process to add any of the net commands in a *.cmd or *.bat file.
For example:

Copy and paste the following into Notepad then run it in  command window aka dos prompt

:: ***************************************************
:: Filename: Netcmds.cmd
:: Purpose: to execute Net commands one at a time
:: (to loop use a call or other method)
:: ***************************************************
@echo off
@echo Following is list of shared drives for this PC
net use
::
@echo Following is list of netbios named sharable PC's
net view
pause
Exit
Oh, I misread the question to be about NETSH, which is different (has a prompt mode).
NET doesn't have such a mode, and there is no other way than to note each net cmd one after another. Maybe you should tell more about what you are targeting at, so we might be able to taylor something.
Avatar of Pau Lo
Pau Lo

ASKER

by: BlogITman

How do I split the commands, is it just one command per line?

How do you execute the actual *cmd file within the command prompt, once I have done it?

Essentially I have about 200

net view \\servername /all >servername.txt

commands to run.
ASKER CERTIFIED SOLUTION
Avatar of Qlemo
Qlemo
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Pau Lo

ASKER

I will opt for option number 2, however, in what format do you supply the "server" parameter? i.e. is it just \\server or IP, or domain\server
Avatar of Pau Lo

ASKER

And where exactly do you need to save "servers.txt", and how does it need to be delimited, i.e. line space, comma etc?
The servers.txt file just contains the server name, each one at an own line:
server1
server2

Open in new window

To make sure the paths used for all files are correct, add them:
@echo off
for /F "tokens=*" %%S in (c:\Scripts\servers.txt) do net view \\%%S /all > c:\Scripts\Results\%%S.txt

Open in new window

That way it doesn't matter where the cmd file is, and how you start it. The files will always be searched for and stored in those folders you noted in the cmd file.
Avatar of Pau Lo

ASKER

Ok thanks, so your code above it going to create one txt file per server?
Yes. It would be very difficult with cmd.exe batches to get the output into something more useful, like a table containing server name, share name, and description. But if you like that more, we could collect ALL output into a single file:
@echo off
copy nul c:\Scripts\NetView.txt
for /F "tokens=*" %%S in (c:\Scripts\servers.txt) do net view \\%%S /all >> c:\Scripts\NetView.txt

Open in new window

Avatar of Pau Lo

ASKER

As i am new to cmd/batch files, could you give a bit of a laymans guide of what

@echo off --  is actually doing?
@ prevents the following command from being echoed.
echo off switches off the default of echoing all commands as they are executed.

If you omit that line, all commands can be seen on "stdout", which is by default the console, but a file if using the ">" operator. Usually you do not want to see the commands, only specific output, and so @echo off is the first command in a cmd file you will see on most occasions.
Avatar of Pau Lo

ASKER

A bit lost. I have saved the code

"@echo off
copy nul c:\Scripts\NetView.txt
for /F "tokens=*" %%S in (c:\Scripts\servers.txt) do net view \\%%S /all>> c:\Scripts\NetView.txt "


as 123.cmd

What when I open the command prompt do I enter to run this file/script?
Just enter
   c:\Scripts\123
if you have saved the batch file in the Scripts folder.
Avatar of Pau Lo

ASKER

And save it as .bat or .cmd, or doesnt it matter?
Doesn't matter. .bat is the "old style" name, .cmd says that you use advanced features of NT cmd.exe. But nothing changes if you change the extension from one to the other.