测试IF文件是否存在,请删除此本地文件

问题描述 投票:0回答:1

此问题与Test IF file exist, ELSE xcopy these two files有关。

背景:有时,我选择在给定的文件夹中运行aGallery-dl.bat(每100个文件夹中只有一个)。它首先删除Folder.jpg,然后将Folder2.jpg重命名为Folder.jpg。当查看在文件资源管理器中选择了父文件夹的文件夹时,这会导致红色X被黄色替换。其次,它调用gallery-dl.exe。我使用从红色X到黄色的方式来告知我至少运行过一次aGallery-dl.bat。如果aGallery-dl.bat成功完成,它将最终删除Folder.jpg(当前为黄色),现在该文件夹的代表内容(通常是DeviantArt .jpg)可见。一切都很好。

rem @echo off
del .\Folder.jpg
ren .\Folder2.jpg Folder.jpg
FOR /F %%i IN ('cd') DO set FOLDER=%%~nxi
"C:\Program Files (x86)\gallery-dl\gallery-dl.exe" -d "U:\11Web\gallery-dl" --download-archive ".\aGDB.sqlite3" "https://www.deviantart.com/"%FOLDER%"/gallery/all"
del .\Folder.jpg

问题:正在恢复,Gallery-dl.bat位于100的文件夹中。有时,我从本地文件夹中运行其中之一。第5行,如果对网站的调用成功,则gallery-dl.exe在本地文件夹中创建zzzGDB.sqlite3

在上一个代码中,当aGallery-dl.bat完成时,它将仅删除Folder.jpg。这假定网页调用成功。在极少数情况下,由于多种原因,对网页将失败的调用,尽管处于关闭状态(由于最后的del .\Folder.jpg),仍会删除folder.jpg

如果zzzGDB.sqlite3未创建/不存在,我需要Folder.jpg(黄色)> 保留。

因此,在下面的代码(第6行,现在为空白)中,我放弃了最后的del .\Folder.jpg,并尝试从第7行开始插入提供的代码,并插入zzzGDB.sqlite的测试。如果找到,则为del .\Folder.jpg。如果未找到,则不会对folder.jpg采取任何措施(仍保留)。(据我所知,最底部的rem语句仅充当占位符。)

rem @echo off
del .\Folder.jpg
ren .\Folder2.jpg Folder.jpg
FOR /F %%i IN ('cd') DO set FOLDER=%%~nxi
"C:\Program Files (x86)\gallery-dl\gallery-dl.exe" -d "U:\11Web\gallery-dl" --download-archive ".\zzzGDB.sqlite3" "https://www.deviantart.com/"%FOLDER%"/gallery/all"

setlocal EnableExtensions DisableDelayedExpansion
for /D %%I in ("U:\11Web\gallery-dl\deviantart\*") do (
    if exist "%%I\zzzGDB.sqlite3" (
        del "%%I\Folder.jpg"
    )
rem 
)
endlocal

注:

当前,修改后的代码可追溯到U:\11Web\gallery-dl\deviantart\*中的每个文件夹。此操作应仅保留给本地文件夹。我猜这是问题所在。
for /D %%I in ("U:\11Web\gallery-dl\deviantart\*")

我不知道如何删除它,并且在do之后仍然执行所有操作?

do (
if exist ".\zzzGDB.sqlite3" (
    del ".\Folder.jpg"
)
rem 
)

此问题与Test IF文件是否存在有关,ELSE xcopy这两个文件。背景:有时候,我选择在给定的文件夹中运行aGallery-dl.bat(每100个文件夹中只有一个)。首先...

batch-file if-statement exists
1个回答
0
投票

我建议对aGallery-dl.bat使用以下几行。

© www.soinside.com 2019 - 2024. All rights reserved.