You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#调用Microsoft PowerShell执行ulozto-downloader命令?

C#调用PowerShell顺序执行ulozto-downloader命令方案

你可以通过.NET的System.Diagnostics.Process类直接启动PowerShell进程,按顺序执行指定的下载命令,每个命令执行完成后再启动下一个。以下是具体实现代码和注意事项:

实现代码

using System;
using System.Diagnostics;
using System.Collections.Generic;

class UloztoDownloaderRunner
{
    static void Main(string[] args)
    {
        // 预先存储需要下载的URL列表
        var targetUrls = new List<string>
        {
            "https://ulozto.cz/example/file1",
            "https://ulozto.cz/example/file2"
        };

        foreach (var url in targetUrls)
        {
            // 构建完整的下载命令
            string downloadCommand = $"ulozto-downloader --parts 50 \"{url}\"";

            // 配置PowerShell进程启动参数
            var processConfig = new ProcessStartInfo
            {
                FileName = "powershell.exe",
                Arguments = $"-Command \"{downloadCommand}\"",
                UseShellExecute = false,
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                CreateNoWindow = true, // 隐藏PowerShell窗口,需显示则设为false
                WindowStyle = ProcessWindowStyle.Hidden
            };

            // 启动进程并等待执行完成
            using (var process = Process.Start(processConfig))
            {
                process.WaitForExit();

                // 可选:读取命令输出和错误信息用于调试/日志
                string output = process.StandardOutput.ReadToEnd();
                string error = process.StandardError.ReadToEnd();

                Console.WriteLine($"URL [{url}] 执行完成");
                if (!string.IsNullOrWhiteSpace(output))
                {
                    Console.WriteLine("输出日志:\n" + output);
                }
                if (!string.IsNullOrWhiteSpace(error))
                {
                    Console.WriteLine("错误日志:\n" + error);
                }
            }
        }

        Console.WriteLine("所有下载任务已执行完毕");
        Console.ReadLine();
    }
}

关键注意事项

  • 确保ulozto-downloader已安装并添加到系统环境变量中,若未添加,需在命令中指定工具的完整路径,例如:"C:\\Tools\\ulozto-downloader.exe"
  • 如果URL包含特殊字符(如空格、引号),代码中用\"{url}\"的方式进行了转义,避免命令解析错误
  • WaitForExit()方法会阻塞当前线程,确保当前命令执行完成后才会处理下一个URL
  • 若需要显示PowerShell窗口,将CreateNoWindow设为false,WindowStyle设为ProcessWindowStyle.Normal即可

内容的提问来源于stack exchange,提问作者ParaLizzard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:40:49