我有一些非常接近我需要的代码,但我无法弄清楚删除部分。这需要创建为.bat文件的代码。
我想做以下事情:
这非常适合将任何重复文件复制到新目录:
for %%F in ("E:\Temp only\dupe test\Holding Area\**") do (
if exist "E:\Temp only\dupe test\Stock Folder\%%~nxF" copy "%%~fF" "E:\Temp only\dupe test\Destination\%%~nxF"
if exist "E:\Temp only\dupe test\Special\%%~nxF" copy "%%~fF" "E:\Temp only\dupe test\Destination\%%~nxF"
)
因此,我不需要“复制”到新文件夹,而是需要从欺骗存在的文件夹中删除重复文件。第一个文件夹是要检查的“原始”文件,并且永远不应该从那里删除文件
如果可以,请帮忙。非常感谢!
答案 0 :(得分:1)
@echo off
setlocal
set "source_folder=E:\Temp only\dupe test\Holding Area"
set "folder2=E:\Temp only\dupe test\Stock Folder"
set "folder1=E:\Temp only\dupe test\Special"
set "log_file=.\log.txt"
setlocal enableDelayedExpansion
for %%F in ("%source_folder%\*") do (
if exist "%folder2%\%%~nxF" (
echo deleting "%folder2%\%%~nxF" at !date! !time!
del /q /f "%folder2%\%%~nxF"
if exist "%folder2%\%%~nxF" echo deleting failed
)>> "%log_file%"
if exist "%folder1%\%%~nxF" (
echo deleting "%folder1%\%%~nxF" at !date! !time!
del /q /f "%folder1%\%%~nxF"
if exist "%folder1%\%%~nxF" echo deleting failed
)>> "%log_file%"
)
endlocal
endlocal
答案 1 :(得分:0)
我想我想出来了。无论如何,这似乎都有效。如果您发现我可能忽略的任何问题,请告诉我。
for %%F in ("E:\Temp only\dupe test\Holding Area\**") do (
if exist "E:\Temp only\dupe test\Stock Folder\%%~nxF" del "E:\Temp only\dupe test\Stock Folder\%%~nxF"
if exist "E:\Temp only\dupe test\Special\%%~nxF" del "E:\Temp only\dupe test\Special\%%~nxF"
)
答案 2 :(得分:0)
我有类似的情况,当有同名的PDF可用时,我需要删除一个tif文件。这是一个5行批处理文件代码。
<Image>
将此代码放在批处理文件中并提供根文件夹。批处理过程将查看所有文件和子文件夹,并删除所有tif文件。