提示コードですがProcessStartInfo.ArgumentList
と ProcessStartInfo.Arguments
の使い分け知りたいです。下記の文章はリファレンスサイトのものを引用したのですがちょっと文章の意味が理解できません。1 つの文字列を 内部的に 構築することです
とは結局のところ一つの一列のコマンドを生成しているのではないのでしょうか?提示コードのように同じコマンドの列を試しましたがArgumentList
の場合は正常に実行されません。二つは何が違うのでしょうか?またエスケープとはどういう意味なのでしょうか?
実行外部アプリケーション
yt.dlp
ArgumentListArgumentsプロパティは互いに独立しており、 同時 に使用できるのはそのうちの 1 つだけです。 両方の API の主な違いは、 ArgumentList指定された引数をエスケープし、 呼び出Process.Start(info)し時にオペレーティング システムに渡される 1 つの文字列を 内部的に 構築することです。 あなたの引数を適切にエスケープする方法がわからない場合は、上をArguments選択ArgumentListする必要があります.
ERROR: ERROR: [generic] '"https://www.youtube.com/watch?v=P3ANka_yMJs&list=PL6CA81883A4C0A9CD"' is not a valid URL. Set --default-search "ytsearch" (or run yt-dlp "ytsearch:"https://www.youtube.com/watch?v=P3ANka_yMJs&list=PL6CA81883A4C0A9CD"" ) to search YouTube
環境
OS: windows 10
IDE: Visula studio 2022
環境: .Net 6.0
参考サイト
cs
1 2 /* ########################### プレイリストをデータ化 ###########################*/ 3 public List<string> getURL_List(string url) 4 { 5 6 //IDを取得 7 8 9 10 process.OutputDataReceived += this.Output; 11 12 //process.StartInfo.Arguments = "--flat-playlist --ignore-errors --no-warnings --no-check-certificate --get-url " + url + " -o \"%(url)s\" "; 13 14 process.StartInfo.ArgumentList.Add("--flat-playlist "); 15 process.StartInfo.ArgumentList.Add("--ignore-errors "); 16 process.StartInfo.ArgumentList.Add("--no-warnings "); 17 process.StartInfo.ArgumentList.Add("--no-check-certificate "); 18 process.StartInfo.ArgumentList.Add("--get-url "); 19 process.StartInfo.ArgumentList.Add(url); 20 process.StartInfo.ArgumentList.Add("-o" ); 21 process.StartInfo.ArgumentList.Add("\"%(url)s\""); 22 23 24 25 26 27 28 29 30 process.Start(); 31 32 process.BeginOutputReadLine(); 33 process.BeginErrorReadLine(); 34 35 process.WaitForExit(); 36 37 // 使い終わったら止める 38 process.CancelOutputRead(); 39 process.CancelErrorRead(); 40 41 return url_List; 42 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/25 03:27
2022/05/25 03:32