1

C#Winフォーム

こんにちは。CMDウィンドウは「指定されたファイルが見つかりません」と表示し続けますCMDウィンドウにコマンドを入力すると「copy/b myfile.txttest.txt」が機能します:S

ところで:CMDウィンドウでコマンドが実行されるのを実際に確認する方法はありますか?

    public void OutputBtn_Process_Click(object sender, EventArgs e)
    {
        foreach (FileInfo fi in listBox1.Items)
        {
            Process process1 = new Process();
            process1.StartInfo.UseShellExecute = false;
            process1.StartInfo.Arguments = "copy /b \""+fi.Name+"\"test.txt";
            //process1.StartInfo.LoadUserProfile = true;
            process1.StartInfo.FileName = "cmd.exe\"/k";
            process1.StartInfo.WorkingDirectory = Path.GetDirectoryName(fi.FullName);
            process1.Start();

            process1.Dispose();
            process1.Close();
        }
    }
4

3 に答える 3

2

test.txtの前にスペースを入れてください

copy /b \""+fi.Name+"\" test.txt";
于 2012-08-18T09:17:56.100 に答える
2

/ Kは引数であり、FileNameプロパティではなくArgumentsプロパティに含める必要があります(もちろん、test.txtの前にスペースを入れることを提案した場合はLBが正しいです)

process1.StartInfo.Arguments = "/k copy /b \""+fi.Name+ "\" test.txt"; 
process1.StartInfo.FileName = "cmd.exe"; 

ちなみに、記述されているコードはリストボックスでループし、各ループで、現在のFileInfoアイテムの内容を使用してファイルtest.txtを再書き込みします。このようにして、リストの最後のファイルは、そのコンテンツがtest.txtにコピーされるファイルになります。このロジックは正しいですか?

于 2012-08-18T09:26:52.873 に答える
0

xcopyを使用して、(cmdコード のようにではなく)プロセスのように呼び出し、そこからの出力を処理できます。

C#からのxcopyの使用

于 2012-08-18T09:20:03.490 に答える