?
Solved

pass argument to batch file with space in the argument

Posted on 2011-09-21
7
Medium Priority
?
728 Views
Last Modified: 2012-05-12
I have a console application written in C# that starts a process and I need to pass an argument to it that has a space in the name. This example shows how I can have the batch file start an application that I set as the parameter. I used it to launch notepad, but if I put a space between note and pad it no longer works.

                try
                {
                    string targetDir;
                    targetDir =
                      string.Format(@"W:\");
                    p = new Process();
                    p.StartInfo.WorkingDirectory = targetDir;
                    p.StartInfo.FileName = "test.bat";

                    p.StartInfo.Arguments =
                      string.Format("note pad");
                    p.StartInfo.CreateNoWindow = false;
                    p.Start();
                    p.WaitForExit();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception Occurred :{0},{1}",
                                ex.Message, ex.StackTrace.ToString());
                }

Open in new window


How can I pass that argument with the space in it?
0
Comment
Question by:wiggy353
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 43

Expert Comment

by:Steve Knight
ID: 36576547
You need double quotes around the argument on the command line.  As to how to escape the " characters in C#,not my language.  
May involve referring to it as character 34, doubling up "" or using \" etc.
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 36576566
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 36576570
So I presume that is

string.Format("\"note pad\"");

or
string.Format("""note pad""");

0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 1

Author Comment

by:wiggy353
ID: 36576580
Tried both of those. Still just sees the argument as note.
0
 
LVL 1

Author Comment

by:wiggy353
ID: 36576615
Actually, when I do it with the "\"note pag\"", it opens a new console window titled "note pad", but doesn't launch the note pad.exe application.
0
 
LVL 1

Author Comment

by:wiggy353
ID: 36576683
which is actually what it does if I hard code note pad into the batch file... hmm.. so it is passing the argument correctly, I must need to do something with the batch file.
0
 
LVL 43

Accepted Solution

by:
Steve Knight earned 2000 total points
ID: 36576694
I presume you are using something else to note pad.exe as of course it's real name is notepad.exe ?

Ahh so if that is doing the same as start then?...
If so the first command in "" is the title.  The second is the progr. to run, so
try
 "\"Some title\" note pad.exe"

Anyway I see this already in c# zone so should leave it to someone who knows the language...
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

TOMORROW TOMORROW.BAT is inspired by a question I get asked over and over again; that is, "How can I use batch file commands to obtain tomorrow's date?" The crux of this batch file revolves around the XCOPY command - a technique I discovered w…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
Suggested Courses

777 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