Batch file 使用通配符文件夹批复制某些文件
我对bat文件的技能/知识有限。基本上,我使用它们来整理特定文件类型的文件夹,或者将文件备份到dropbox文件夹 我现在想使用它们来查找某个文件夹路径中的文件,并将其复制到镜像文件夹路径的本地驱动器。。。文件夹路径有50个文件夹,其中有1000多个子文件夹。 网络位置的两个示例:Batch file 使用通配符文件夹批复制某些文件,batch-file,xcopy,Batch File,Xcopy,我对bat文件的技能/知识有限。基本上,我使用它们来整理特定文件类型的文件夹,或者将文件备份到dropbox文件夹 我现在想使用它们来查找某个文件夹路径中的文件,并将其复制到镜像文件夹路径的本地驱动器。。。文件夹路径有50个文件夹,其中有1000多个子文件夹。 网络位置的两个示例: 报告\ASD01\ASD01\u 01 报告\ASD01\ASD01\u 02 报告\ASD01\ASD01\u 03 报告\DVC05\DVC05\u 01 报告\DVC05\DVC05\u 12 报告\DVC05
报告\ASD01\ASD01\u 01
报告\ASD01\ASD01\u 02
报告\ASD01\ASD01\u 03
报告\DVC05\DVC05\u 01
报告\DVC05\DVC05\u 12
报告\DVC05\DVC05\u 13
报告\DVC06\DVC06\U 01
每个文件夹包含几个文件。我对将pdf和CSV从子文件夹复制到本地驱动器上的镜像文件夹感兴趣
我有一个谷歌和XCOPY不能复制文件夹作为通配符
报告\*\*.pdf
我会定期运行bat来更新任何新文件。
我无法复制子文件夹的全部内容,因为它们太大了
我希望我已经提供了足够的信息,并在此感谢任何帮助 假设您想在目标位置重新创建文件夹结构,那么Robocopy就是您的选择
Robocopy "C:\Source\Reports" "C:\Destination\Reports" *.pdf /S /DCopy:T /NP /MT:64 /R:2 /W:2 /B
上述操作将所有PDF文件从源复制到目标,并将它们放在相同的子文件夹中
您可以在cmd脚本中使用上述内容,也可以将其粘贴到CLI中
如果您不想要文件夹结构,那么For
循环就是您的伙伴
但是,您必须稍微更改它,这取决于您是想在CLI中还是在aCMD脚本中使用它
CLI
CopyReplace.cmd
您是否要求将在
报告
下找到的所有.pdf和.csv文件复制到您指定的目录中?我希望复制包含pdf和csv的所有文件夹。还有镜像的目录。我明天可以试一试,让你知道!这起作用了。谢谢有没有一种方法可以在没有“以管理员身份运行”权限的情况下运行它?我想我的一些同事没有管理员权限。只要源和目标不需要管理员权限,你就应该能够在rhem之间阅读和复制
@For /F "Tokens=*" %A IN ('
WHERE /R "C:\Source\Reports" /F "*.pdf"
') DO @(
IF NOT EXIST "C:\Destination\%~nxa" @(
Copy /B /Y /F "%~fA" "C:\Destination\%~nxa"
) ELSE @(
ECHO."C:\Destination\%~nxa" Already Exists, NOT Copying "%~fA" due to conflict!
)
)
@(
ECHO OFF
SETLOCAL EnableDelayedExpansion
SET "_Src=C:\Source\Reports"
SET "_Dst=C:\Destination"
SET "_FileGlob=*.pdf"
)
For /F "Tokens=*" %%A IN ('
WHERE /R "%_Src%" /F "%_FileGlob%"
') DO (
IF NOT EXIST "%_Dst%\%%~nxa" (
Copy /B /Y /F "%%~fA" "%_Dst%\%%~nxa"
) ELSE (
ECHO."%_Dst%\%%~nxa" Already Exists, NOT Copying "%%~fA" due to conflict!
)
)