大家早。
因此,我花了几个小时试图将其他帖子的各种回复拼凑到我自己的代码中,以便看看是否可以获得有用的东西。不许去。我已经完全迷失在酱汁中了,所以我现在必须向你寻求帮助。
背景:
操作系统:Windows 10
我每天晚上使用程序 text2folders.exe 在辅助驱动器上创建 20-30 个新文件夹。
首先,我有一个基本文件“aGallery-dl.bat”,我使用 xcopy 批处理文件填充每个文件夹。其次,我时不时地使用相同的 xcopy 更新源文件“aGallery-dl.bat”,这会覆盖旧的目标文件,填充所有文件夹使用最新的“aGallery-dl.bat”(无论他们是否需要)。一切都很好。
@echo off
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy /y /d ".\aGallery-dl.bat" "%%a\"
我最近决定向每个文件夹添加两个新文件,并扩展了我的 xcopy 以包含这些文件。一切都很好。
@echo off
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy /y /d ".\aGallery-dl.bat" "%%a\"
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder.jpg" "%%a\"
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder2.jpg" "%%a\"
文件夹.jpg一个红色的大X https://i.stack.imgur.com/M3CsM.jpg
文件夹2.jpg一大黄!标记 https://i.stack.imgur.com/Jq0gm.jpg
当我选择在给定文件夹(同样是100个文件夹之一)中运行“aGallery-dl.bat”时,它首先删除Folder.jpg,然后将Folder2.jpg重命名为Folder.jpg。这具有将红色 X 替换为黄色的效果!在文件资源管理器父文件夹中查看文件夹时。其次,它调用“gallery-dl.exe”。我使用从红色到黄色的方式让我知道我至少运行过一次“aGallery-dl.bat”。一切都很好。
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
如果“aGallery-dl.bat”成功完成,它最终会删除Folder.jpg(当前为黄色!),并且现在该文件夹的代表性内容(通常是DeviantArt .jpg)可见。
Problem:当我必须重新运行原始 xcopy 命令来更新所有文件夹中的“aGallery-dl.bat”时,Folder.jpg 和 Folder2.jpg 将被重新复制到所有文件夹,从而达不到通过“删除它们一次的目的” aGallery-dl.bat”。我不想返回并在 100 个文件夹中间歇性地重新运行“aGallery-dl.bat”(同样,仅限那些至少运行过一次 aGallery-dl.bat 的文件夹)。我需要某种类型的测试,如果“aGallery-dl.bat”已经存在于目标文件夹中,请勿复制Folder.jpg和Folder2.jpg(又名模糊示例),如下所示。
*********************************Some sort of test statement here!!!***********************
:aGallery-dlPresent
GOTO eof
:aGallery-dlNotPresent
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder.jpg" "%%a\"
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder2.jpg" "%%a\"
GOTO eof
:eof
我在下面找到了一个有希望的候选测试声明(以原始形式从我在其他帖子中读到的内容/位置复制),但正在寻找想法/替换,因为我不知道如何修改/注入/实现以下内容从事上述工作。
If exist \\%DIR%\%Folder%\123456789.wav xcopy \\%DIR%\%Folder%\123456789.wav D:\%New Folder%\ /y
让 XCopy 复制文件并且不覆盖前一个文件(如果存在)(不提示) https://stackoverflow.com/questions/5152835/having-xcopy-copy-a-file-and-not-overwrite-the-previous-one-if-it-exists-withou
注意:下面是它应该是什么样子的模糊近似(除非有正确的-测试语句-)。
rem @echo off
*********************************Some sort of test statement here!!!***********************
:aGallery-dlPresent
GOTO eof
:aGallery-dlNotPresent
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder.jpg" "%%a\"
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder2.jpg" "%%a\"
GOTO eof
:eof
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy /y /d ".\aGallery-dl.bat" "%%a\"