执行ROBOCOPY命令后添加确认

执行ROBOCOPY命令后添加确认

ROBOCOPY我已经开始大量使用命令。我使用ROBOCOPY source destination /MIR。有没有办法在命令执行后添加确认“y/n”,但实际上并没有运行。所以我会输入ROBOCOPY source destination /MIR,按下后enter会出现are you sure yes/no确认框。这样,如果命令意外执行,我仍然可以停止它。

编辑

我尝试使用 .bat 文件,但无法弄清楚如何在运行命令后运行确认,我的意思是在我按下enter键盘上的运行键之后ROBOCOPY和实际运行之前ROBOCOPY,所以它会暂停命令直到我按下yn

对于cmd如此强大的命令,他们应该添加一个标志来启用/禁用此功能。

编辑

我可以看到这引起了很大的混乱,所以让我解释一下它应该如何运行:

C:> 批处理文件名称.bat 源 目标

{进入}

C:> 你确定吗 y/n

{y}

联系人:>

答案1

你想要的东西不可能直接实现。

您可以做的是编写一个脚本,接受您的输入,显示确认提示,然后运行 ​​robocopy 来完成操作。

PowerShell 可以非常轻松地完成此操作。以下是可行的方法:

Param (
    [Parameter(Mandatory = $true)]
    [string] $SourcePath,
    [Parameter(Mandatory = $true)]
    [string] $DestinationPath
)

Write-host "You want to MIRROR the contents of $SourcePath to $DesinationPath"
$confirmation = Read-Host "Please confirm this is what you want to do: y/n"

If($confirmation -eq "y") {
    ROBOCOPY $SourcePath $DesinationPath /MIR
}
Else {
    Write-Host "The process has been declined."
}

您需要将任何包含非标准字符或空格的路径括在引号中,但这将把您提供的两个路径作为参数,提示您确认这是您想要执行的操作,如果您以“y”回应,它将完成操作。

答案2

请求退货条目是使用 SET 命令

一个简单的测试示例是:

@echo Off
set /p "ans=are you sure y/n - "

if "%ans" equ "y" (
  echo you said y 
) else (
  echo you said n
)

相关内容