Solved

pass argument to batch file with space in the argument

Posted on 2011-09-21
7
713 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
  • 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
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
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 500 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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

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…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

757 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now