此问题与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个文件夹中只有一个)。首先...
我建议对aGallery-dl.bat
使用以下几行。