我试图让它工作,成功复制了 1K 文件,然后在我下次运行它时停止工作。我做错了什么?
有些东西是不会终止的,但我终其一生都无法弄清楚。
我想让脚本执行以下操作:
在文件夹和所有子文件夹中搜索特定文件。然后将这些文件复制到新文件夹中。我不希望它复制文件夹结构或任何类型的东西。只需将文件复制到新目录,不要覆盖新文件夹中已有的任何内容。
@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "SourceBaseFolder=G:\Drive\Catalog\Photography\Upload"
set "TargetBaseFolder=C:\Users\%USERNAME%\Desktop\New folder"
if not exist "%SourceBaseFolder%\*" (
echo %~nx0: There is no folder %SourceBaseFolder%
set "ErrorCount=1"
goto HaltOnError
)
cd /D "%SourceBaseFolder%"
if not exist "FileNames.txt" (
echo %~nx0: There is no file %SourceBaseFolder%\FileNames.txt
set "ErrorCount=1"
goto HaltOnError
)
set "ErrorCount=0"
for /F "usebackq delims=" %%N in ("FileNames.txt") do (
for /R %%J in ("%%N*") do (
set "FilePath=%%~dpJ"
if "!FilePath:%TargetBaseFolder%=!" == "!FilePath!" (
set "TargetPath=%TargetBaseFolder%\Copy"
md "!TargetPath!" 2>nul
if exist "!TargetPath!\*" (
echo Copying file %%~fJ
copy /Y "%%~fJ" "!TargetPath!" >nul
) else (
set /A ErrorCount+=1
echo Failed to create directory !TargetPath!
)
)
)
)
:HaltOnError
if %ErrorCount% NEQ 0 (
echo.
pause
)
endlocal