batch-file - 以任何特定模式从最新文件夹中复制 pdf 文件
问题描述
我创建了一个 .bat,它将在指定的服务器中复制 pdf 文件。文件的文件夹结构是这样的:
\\server\
'----010000-0000\
'----010000-0000-0705-1\
'-------010000-0000-DATA.pdf
'----010000-0000-0705-2\
'-------010000-0000-DATA.pdf
010000-0000
是用户将输入的代码。然后批处理将使用代码作为文件名的确切文件夹进行搜索,并且必须复制 pdf 文件。
我的问题是pdf文件之前的文件夹总是有一个4个随机数0705
(例如)。我在想的是通过那个文件夹,无论 4 个随机数的值是多少。复制 pdf 文件
例如(如果会做一个静态代码,它会是这样的):
set /p code=Input Control Number:
goto FILE
:FILE
set VER=0
:FILE1
set /a VER +=1
if exist "%fp%\%CODE%\%CODE%-0705-%VER%\%CODE%-DATA.pdf" goto FPCOPY
IF NOT EXIST ELSE GOTO FILE1
:FPCOPY
xcopy "%fp%\%CODE%\%CODE%-0705-%VER%\%CODE%-DATA.pdf" "%HOMEPATH%\Desktop\Backup\%CODE%\" /D /E /C /I /Y /H
start "" "%HOMEPATH%\Desktop\Backup\%code%"
它肯定会复制数据。但正如我所说,4位数字总是随机的。
我试过的是这个(我只用*替换4位数字):
set /p code=Input Control Number:
goto FILE
:FILE
set VER=0
:FILE1
set /a VER +=1
if exist "%fp%\%CODE%\%CODE%-*-%VER%\%CODE%-DATA.pdf" goto FPCOPY
IF NOT EXIST ELSE GOTO FILE1
:FPCOPY
xcopy "%fp%\%CODE%\%CODE%-*-%VER%\%CODE%-DATA.pdf" "%HOMEPATH%\Desktop\Backup\%CODE%\" /D /E /C /I /Y /H
start "" "%HOMEPATH%\Desktop\Backup\%code%"
解决方案
这是假设更高版本的目录总是在之前的版本之后创建:
@echo off
set fp=<SET YOUR FILEPATH HERE>
set /p "code=Input Control Number: "
set cnt=0
:start
for /f "delims=" %%a in ('dir /b /s /ad /o-d "%fp%\%code%" ^| findstr "%code%" ^|more +%cnt%') do (
if exist "%%~a\%code%-DATA.pdf" (
set "found=%%~a"
goto :done
) else (
if %cnt% equ 10 goto :eof
set /a cnt+=1
goto start
)
)
:done
set cnt=
xcopy "%found%\%code%-DATA.pdf" "%USERPROFILE%\Desktop\Backup\%code%\" /D /E /C /I /Y /H
start "" "%USERPROFILE%\Desktop\Backup\%code%"
我们实际上只是检查文件的最新文件夹,如果它不存在,我们跳过该文件夹并尝试旧版本,直到找到它,然后复制文件。
推荐阅读
- r - R group_by 一个变量或(不是和)另一个
- php - 创建 S3Client 的 PHP AWS SDK 致命错误
- vue.js - 为 vue-shepherd 导入 CSS 文件时遇到问题
- mongodb - 如何在 MongoDB 中删除此弃用警告,为什么会这样?
- python - numpy IndexError:索引 1 超出轴 3 的范围,大小为 1
- git - 如何将 ed25519 ssh 密钥添加到 eclipse 以与 github 一起使用?
- drupal - How to add a static content in a specific drupal page something like like using {% if is_front %} {% endif %} to add it in the home page
- python - Distribute dataset evenly by range of id in PySpark
- matlab - Simplify symbolic expression in matlab and get only the coeeficents
- c# - How to solve a variation to the maximum subarray problem, so that the sum should be between two bounds?