批处理文件无法正常工作,它会一次又一次地提示用户输入

时间:2017-05-25 07:20:30

标签: batch-file

下面是脚本。我正在根据用户提供的日期复制文件。

@echo off
echo Enter Date in mm-dd-yyyy:
set /p dt= 
echo %dt%

if %dt% =="" goto :EnterDate


if not %dt% =="" goto :CopyFile

:CopyFile
xcopy C:\Users\hkum29\Desktop\Source\*.* C:\Users\hkum29\Desktop\Destination\*.* /d:%dt%

:EnterDate
echo Enter Date

Pause

2 个答案:

答案 0 :(得分:1)

IF语法为if string1 operator string2 action

如果string1string2被“引用”(允许字符串包含空格),则必须引用 BOTH 字符串。

批处理没有“部分”,“功能”,“程序”或“段落”的概念。标签只是一个参考点。当达到标签时,执行不会停止,它会一直延续,直到达到文件结尾, CALL GOTO 或<强> EXIT

答案 1 :(得分:0)

认为脚本逻辑应该是

//in my main viewcontroller
if let userDefaults = UserDefaults(suiteName: "$(TeamIdentifierPrefix)") {
        userDefaults.set("---" as AnyObject, forKey: "distance")
        userDefaults.set("---" as AnyObject, forKey: "altitude")
        userDefaults.synchronize()
}

//in my Safari Extension
if let userDefaults = UserDefaults(suiteName: "$(TeamIdentifierPrefix)") {
        print(userDefaults.string(forKey: "distance"))
        print(userDefaults.string(forKey: "altitude"))

您最好添加日期验证Batch Script: Validate Date Input

您也可以使用非常难看的技巧验证它(因为 ab 使用系统日期)

@echo off 
SetLocal
:EnterDate
set /p dt="Enter Date in mm-dd-yyyy: " 
if "%dt%" == "" goto :EnterDate

:CopyFile
echo %dt%
xcopy C:\Users\hkum29\Desktop\Source\*.* C:\Users\hkum29\Desktop\Destination\*.* /d:%dt%
EndLocal
Pause