cmd copy的使用

使用cmd进行文件合并速度很快,比常规的打开文件流写入要快很多。

如果是将a文件合并到b文件中(a,b都已存在),那么在b文件的结尾会多出来一个特殊字符,不知道如何去掉。但是如果将a、b文件合并到一个新文件c中就不存在这个问题,一直未解决,暂时用临时文件进行合并,合并完成后删除即可。

//合并文件
            Process proc = new Process();
            proc.StartInfo.CreateNoWindow = true;
            proc.StartInfo.FileName = "cmd.exe";
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.RedirectStandardError = true;
            proc.StartInfo.RedirectStandardInput = true;
            proc.StartInfo.RedirectStandardOutput = true;

            //绑定执行完成消息监听
            proc.EnableRaisingEvents = true;
            proc.Exited += new EventHandler(proc_Exited);
           
            proc.Start();

            //先合并tmp和varchar文件到中间文件(由于文件合并后结尾有个特殊字符无法取消,合并到中间文件不存在这个问题)
            proc.StandardInput.WriteLine("copy c:\1.txt+c:\2.txt c:\3.txt &exit");
            
            proc.WaitForExit();
            proc.Close();
注:WirteLine方法后面需要加 
&exit

否则无法正常监听到执行结束方法。

在 Windows 的 CMD 命令行环境中,复制文件和目录是常见任务。`copy` 命令用于复制一个或多个文件,而 `xcopy` 或 `robocopy` 通常用于复制目录及其子目录中的内容。 ### 复制单个文件 使用 `copy` 命令可以将一个文件复制到另一个位置: ```cmd copy source_file destination_path ``` 例如: ```cmd copy C:\test\file.txt D:\backup\ ``` 此命令会将 `file.txt` 文件从 `C:\test\` 目录复制到 `D:\backup\` 目录中[^1]。 如果目标路径中已经存在相同名称的文件,系统会提示是否覆盖该文件。可以通过 `/Y` 参数来禁止提示并自动覆盖: ```cmd copy /Y C:\test\file.txt D:\backup\ ``` ### 合并文件 `copy` 还可用于合并多个文件为一个文件: ```cmd copy file1.txt + file2.txt combined.txt ``` 这会将 `file1.txt` 和 `file2.txt` 的内容合并,并保存为 `combined.txt`。 ### 复制整个目录 要复制包含子目录在内的整个目录树,应使用 `xcopy` 命令: ```cmd xcopy source_directory destination_directory /E /I /H ``` - `/E`:复制所有子目录,包括空目录。 - `/I`:如果目标不存在且正在复制多个文件,则假定目标必须是目录。 - `/H`:复制隐藏和系统文件。 示例: ```cmd xcopy C:\test\ D:\backup\test_backup\ /E /I /H ``` 这条命令会将 `C:\test\` 目录下的所有内容复制到 `D:\backup\test_backup\` 中。 ### 高级复制(推荐) 对于更复杂的复制需求,例如同步目录、处理权限等,推荐使用 `robocopy`(Windows Vista 及更高版本默认提供): ```cmd robocopy source_directory destination_directory /E /COPYALL /R:3 /W:5 ``` - `/E`:复制所有子目录,包括空目录。 - `/COPYALL`:复制所有文件信息(数据、属性、时间戳、NTFS 权限、所有者信息等)。 - `/R:3`:失败时重试 3 次。 - `/W:5`:每次重试间隔 5 秒。 示例: ```cmd robocopy C:\test\ D:\backup\test_backup\ /E /COPYALL /R:3 /W:5 ``` 此命令适合用于备份或迁移大量数据。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值