编写一个从用户输入运行robocopy的批处理文件

时间:2018-11-30 06:26:12

标签: batch-file robocopy

如何编写运行cmd.exe的批处理文件,输入部分命令robocopy,然后等待用户输入完成并执行robocopy命令?看来这应该是最简单的事情,但我尝试过的任何方法都无法以等待并等待用户输入然后成功执行完整的robocopy命令的方式输入命令

例如:

@echo off
set var="robocopy "
cmd.exe %var%

似乎可以工作,但是例如,用户输入/?调出robocopy的信息,而是调出cmd.exe的信息

另一个例子:

@echo off
cmd /k robocopy

在没有目标/源文件夹或开关的情况下运行robocopy,然后关闭robocopy,并等待新的用户输入命令。

我要做的是有一个批处理文件,当我单击它时,将打开一个cmd窗口,其中已经输入了部分命令robocopy,可以让我用源/目标/开关完成命令,并且按下Enter键执行它-我整天使用robocopy,这样可以节省大量时间。

1 个答案:

答案 0 :(得分:3)

以您看来的方式是不可能的。那将意味着弄乱键盘缓冲区(在那个时候,C64很常见,但是(纯)批处理是不可能的。)

但是以下内容将为您提供自动化的良好开端。它假定您每次都使用相同的参数,并且只想为其提供源文件夹和目标文件夹。调整以适应您的需求(尤其是参数-我添加了/L,以防止在测试过程中采取不必要的措施)

@echo off
set "command=robocopy"
set "params=/L /E /MOV /MT:12 /FP /log+:robocopy.log /TEE"
set /p "source=Enter Source: "
set /p "destin=Enter Destination: "
%command% "%source%" "%destin%" %params%

在您希望robocopy在新窗口中工作之前,不需要cmd.execmd.exe /k