Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
228 views
in Technique[技术] by (71.8m points)

c# - How can i add some bat files to my project so i will not need them anymore on the hard disk?

For example i have this code:

Process proc = new Process();
proc.EnableRaisingEvents = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "dxdiag.bat";
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
proc.Close();

I did a test if i delete the file dxdiag.bat from my project debug directory im getting an exception on the line:

proc.Start();

That the file is not found. Once the file is in the debug directory its working.

I want to add the dxdiag.bat file to my project so if i send to someone else my program he will be able run my program and the process will run the dxdiag.bat from the program it self so the one i sent the program wont need the bat file on his own hard disk.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

As long as you have no variables or nonsingleline-commands you can run this function with each line of the bat-file

    internal static void executeCommand(string command, bool waitForExit,
    bool hideWindow, bool runAsAdministrator)
    {
        System.Diagnostics.ProcessStartInfo psi =
        new System.Diagnostics.ProcessStartInfo("cmd", "/C " + command);

        if (hideWindow)
        {
            psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        }

        if (runAsAdministrator)
        {
            psi.Verb = "runas";
        }

        if (waitForExit)
        {
            System.Diagnostics.Process.Start(psi).WaitForExit();
        }
        else
        {
            System.Diagnostics.Process.Start(psi);
        }
    }

so you can also save the text in the code

string bat_file = @"@echo off
copy c:usersDesktopfilea.txt c:usersDesktopfileb.txt
...";

otherwise i would create a temporary bat file, run it and delete it.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...