我正在尝试从深度嵌套的文件结构中获取前(任意)10 个文件。我可以XCOPY source dest /T /E
用来构建文件夹结构,但我想要做的是从每个文件夹和子文件夹中获取 10 个文件,然后也复制这些文件。
有没有工具可以为我做到这一点?
小智 12
您的问题听起来像是您想要每个子文件夹中的前 10 个文件?这应该这样做(没有经过详尽的测试!):
echo off
xcopy /Y %1 %2 /T /E
dir %1 /b /s /A:D >tempfolderlist.txt
for /f "tokens=1 delims=¬" %%a in (./tempfolderlist.txt) do (
dir "%%a" /b /A:-D >tempfilelist.txt
setlocal enabledelayedexpansion
set counter=0
for /f "tokens=1 delims=¬" %%b in (./tempfilelist.txt) do (
IF !counter! LSS 10 call :docopy %1 "%%a\%%b" %2
set /a counter+=1
)
endlocal
)
del /q tempfolderlist.txt
del /q tempfilelist.txt
GOTO:EOF
:docopy
set sourcePath=%~1
set sourceFile=%~2
set targetPath=%~3
set sourceNoDrive=%sourceFile:~3,5000%
set sourcePathNoDrive=%sourcePath:~3,5000%
set sourceNoDrive=!sourceNoDrive:%sourcePathNoDrive%\=!
copy "%sourceFile%" "%targetPath%\%sourceNoDrive%" >> out.txt
GOTO:EOF
Run Code Online (Sandbox Code Playgroud)
如果它保存到名为“first10.cmd”的批处理文件中,您可以像这样使用它:
first10.cmd "C:\Temp\SourcePath" "C:\Temp\DestPath"
Run Code Online (Sandbox Code Playgroud)
首先,它使用 xcopy 准备目标文件夹结构,就像您的问题一样。然后我们将所有文件夹的列表保存到一个文件中,并遍历每个文件夹。对于每个文件夹,我们保存该文件夹中所有文件的列表,并遍历每个文件。对于每个文件,:docopy
构建复制命令并执行它。
归档时间: |
|
查看次数: |
6918 次 |
最近记录: |