批处理:仅删除指定文件的命令

时间:2017-02-06 15:28:13

标签: batch-file

我想创建一个批处理文件,它将从某个(服务器)路径中删除某个文件。以下代码将删除123.pdf,但如果我没有特别提到文件名,它会询问我是否要删除该文件夹的所有内容。

路径和文件名由另一个脚本自动插入,有时结果为null,这意味着不会插入文件名。 我将其设置为不提示是/否许可这是危险的,因为如果没有给出文件名,它将删除整个文件夹内容。

我只希望它只删除一个确切命名的文件,当/如果命令行只包含路径,没有文件名 - 跳过并且不删除任何内容。

例如:

del "\\tbiscan\SCAN\Dosare de executare scanate\Curtea de Apel Bacau\BACAU\280555A\123.pdf"

请帮忙

1 个答案:

答案 0 :(得分:1)

您可以尝试使用

2>nul ( <"%targetFile%" break ) && del "%targetFile%"

Asumming %targetFile%变量包含对文件(或文件夹)的引用以删除此代码:

  • 尝试使用输入重定向运算符打开文件以进行读取(break命令对文件不执行任何操作,但我们需要一个不会引发错误级别的命令,但不必使用{{ 1}},可以使用breakcall;之类的东西。
    • 如果可以打开文件,则不会出现任何错误,条件运算符type nul(如果前一个命令没有失败,则执行下一个命令)将执行&&命令。
    • 如果文件无法打开(不可读,它是一个文件夹,它不存在),则无法执行重定向,并生成错误(由del隐藏)和命令后2>nul条件运算符未执行。