编写从用户输入运行 robocopy 的批处理文件
Writing a batch file that runs robocopy from user input
如何编写运行 cmd.exe 的批处理文件,输入部分命令 robocopy
然后等待用户输入完成并执行 robocopy 命令?看起来这应该是最简单的事情,但是我尝试过的方法都没有以保持并等待用户输入然后成功执行完成的 robocopy 命令的方式输入命令
例如:
@echo off
set var="robocopy "
cmd.exe %var%
似乎可以工作,但随后,例如,用户输入 /?调出 robocopy 的信息而不是调出 cmd.exe
的信息
另一个例子:
@echo off
cmd /k robocopy
在没有 destination/source 文件夹或开关的情况下运行 robocopy
,然后关闭 robocopy
并等待新的用户输入命令。
我想要做的是有一个批处理文件,当我单击它时,cmd window 将打开,部分命令 robocopy
已经输入,准备好让我完成命令source/destination/switches 并按回车键执行它 - 我整天都在使用 robocopy
,所以这会节省很多时间。
这不可能是你想的那样。这意味着会弄乱键盘缓冲区(在那个时代的 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%
不需要 cmd.exe
或 cmd.exe /k
,除非您希望 robocopy 在新的 window.
中工作
如何编写运行 cmd.exe 的批处理文件,输入部分命令 robocopy
然后等待用户输入完成并执行 robocopy 命令?看起来这应该是最简单的事情,但是我尝试过的方法都没有以保持并等待用户输入然后成功执行完成的 robocopy 命令的方式输入命令
例如:
@echo off
set var="robocopy "
cmd.exe %var%
似乎可以工作,但随后,例如,用户输入 /?调出 robocopy 的信息而不是调出 cmd.exe
的信息
另一个例子:
@echo off
cmd /k robocopy
在没有 destination/source 文件夹或开关的情况下运行 robocopy
,然后关闭 robocopy
并等待新的用户输入命令。
我想要做的是有一个批处理文件,当我单击它时,cmd window 将打开,部分命令 robocopy
已经输入,准备好让我完成命令source/destination/switches 并按回车键执行它 - 我整天都在使用 robocopy
,所以这会节省很多时间。
这不可能是你想的那样。这意味着会弄乱键盘缓冲区(在那个时代的 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%
不需要 cmd.exe
或 cmd.exe /k
,除非您希望 robocopy 在新的 window.