重定向用于引导的命令行参数

2024-04-26 03:44:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用C重写下面的程序,而不是C(它的可移植性较差)。很明显,这是必要的。以“intmain(intargc,char*argv[])开头将允许获取命令行参数,但仍然存在一个难以理解的问题。你如何成功地避开带有空格的争论?在下面的程序中,参数中包含空格(例如:屏幕保护程序.scr“这是一个测试”)将作为单独的参数传递给脚本(例如:屏幕保护程序.scr这是一个测试),很容易引起问题。在

namespace Boids_Screensaver
{
    static class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            System.Diagnostics.Process python = new System.Diagnostics.Process();
            python.EnableRaisingEvents = false;
            python.StartInfo.FileName = "C:\\Python31\\pythonw.exe";
            python.StartInfo.Arguments = "boids.pyw";
            foreach (string arg in args)
            {
                python.StartInfo.Arguments += " " + arg;
            }
            python.Start();
        }
    }
}

Tags: 程序参数string屏幕argargsstaticprocess
3条回答
screensaver.scr "spaced argument" nonspaced_argument

argc = 2
argv[0] = "screensaver.scr"
argv[1] = "spaced argument"
argv[2] = "nonspaced_argument"

对不起,我的英语:)。在

窗户全乱了。每个程序都有自己的规则。在

在windows下执行此操作的正确方法是使用_spawnv

在类unix操作系统下,它的等价物是fork(),后跟execv。在

相关问题 更多 >