【问题标题】:Adding if exist to an existing batch file将如果存在添加到现有批处理文件
【发布时间】:2016-03-05 03:01:05
【问题描述】:

我正在尝试向现有批处理文件添加其他功能,以下代码 sn-p 将我的数据从一个位置复制到另一个位置,然后删除创建的 zip 文件,一切正常。

我想要做的是,如果 USB 驱动器上已经存在该文件,则在文件末尾添加一个增量编号,例如。 FileName-FileDate(1) 或 FileName-FileDate(2) 我可以为 FileStamp 添加时间,此时它会添加日期,但这可能会使文件名有点长。

我将文件复制到 USB 驱动器作为备份,这就是我使用驱动器 E、F、G、H 的原因,这取决于 Windows 将驱动器视为什么,创建的文件在C:驱动器因空间而被删除。

我使用 /y 来减少用户输入,因为这将由技术技能有限的人完成,所以我真的不想使用 /-y。而且机器没有键盘,只有触摸屏,所以重命名文件不是一件容易的事。

REM ------ Creation of the ZIP file ------

%SupervisorPath%\7-ZipPortable\App\7-Zip\7z a -tzip %BackupPath%\Backup\%FileStamp%.zip %BackupPath%\Backup\


REM ------ Copy the backup file to a USB drive with File Name and Date Stamp ------

IF EXIST E: (echo copying files to USB drive E:
             copy %BackupPath%\Backup\%FileStamp%.zip E: /y )
IF EXIST F: (echo copying files to USB drive F:
             copy %BackupPath%\Backup\%FileStamp%.zip F: /y )
IF EXIST G: (echo copying files to USB drive G:
             copy %BackupPath%\Backup\%FileStamp%.zip G: /y )
IF EXIST H: (echo copying files to USB drive H:
             copy %BackupPath%\Backup\%FileStamp%.zip H: /y )

REM ------ Delete the temporary zip file from the backup folder ------           

echo Deleting temporary zip file from the backup folder

Del %BackupPath%\Backup\%FileStamp%.zip

【问题讨论】:

标签: batch-file windows-xp windows-embedded


【解决方案1】:

IF EXIST 不适用于驱动器号和目录,但幸运的是,有一个模糊的解决方法:

C:\> IF NOT EXIST D:\NUL ECHO D:\ not present.
D:\ not present.
C:\> IF EXIST C:\NUL ECHO C:\ exists.
C:\ exists.

事实证明,为了支持在命令语句上附加>NUL 之类的结构,在每个目录(包括驱动器的根目录)中都有一种名为“NUL”的虚拟文件。检查其是否存在等同于检查目录或驱动器是否存在。

此行为记录在 Microsoft 知识库文章 (https://support.microsoft.com/en-us/kb/65994) 中,我已确认它在 FreeDOS 1.1 和 Windows 7 命令 shell 中的行为。

虽然知识库文章提到了检查目录是否存在,但它也表明该技术可用于查看驱动器是否存在。但是,在检查驱动器是否存在的情况下,存在一些注意事项:

  • 如果驱动器未格式化,则会出现Abort, Retry, Fail? 错误。

  • 使用此技术检查驱动器是否存在取决于设备驱动程序的实现,并且可能并不总是有效。

【讨论】:

    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多