[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [分享]批处理根据xpl文件内容复制文件

【问题描述】
  1. @echo off
  2. cd /d "%~dp0"
  3. set "NewFolder=我自己创建的"
  4. if not exist "%NewFolder%" (
  5.     md "%NewFolder%"
  6. )
  7. for /f "delims=" %%i in ('dir /b /a-d *.xpl') do (
  8.     echo --- %%i
  9.     for /f tokens^=2^ delims^=^" %%a in ('type "%%i" ^| findstr "filename"') do (
  10.         set "MyFile=%%a"
  11.         setlocal enabledelayedexpansion
  12.         set "MyFile=!MyFile:\\isilon.zf.com\ADASdata\=Z:\!"
  13.         echo xcopy /y "!MyFile!" "!NewFolder!"
  14.         xcopy /y "!MyFile!" "!NewFolder!"
  15.         endlocal
  16.     )
  17. )
  18. pause
复制代码
就是针对上周的脚本又出现了新的需求
1.每个xpl文件里面读取的文件放到以xpl文件命名的文件夹
2.根据读取到的xpl文件内容找到前两分钟和后一分钟的文件

https://pan.baidu.com/s/1BTfzhFcD18uvPoGjFjQRlA?pwd=9wf4
就以这个为例
里面的文件名最后是619.sdf
往前两分钟就是617,618,往后一分钟就是620
最小的是001.sdf,最大的是999.sdf
不会超过这个区间
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

【解决方案】

放到以xpl文件命名的文件夹.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /a-d *.xpl') do (
  4.     echo --- %%i
  5.     for /f tokens^=2^ delims^=^" %%a in ('type "%%i" ^| findstr "filename"') do (
  6.         set "MyFile=%%a"
  7.         setlocal enabledelayedexpansion
  8.         set "MyFile=!MyFile:\\isilon.zf.com\ADASdata\=Z:\!"
  9.         set "NewFolder=%%~ni"
  10.         if not exist "!NewFolder!" (
  11.             md "!NewFolder!"
  12.         )
  13.         echo xcopy /y "!MyFile!" "!NewFolder!"
  14.         xcopy /y "!MyFile!" "!NewFolder!"
  15.         endlocal
  16.     )
  17. )
  18. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

1+2.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /a-d *.xpl') do (
  4.     echo --- %%i
  5.     for /f tokens^=2^ delims^=^" %%a in ('type "%%i" ^| findstr "filename"') do (
  6.         set "MyFile=%%a"
  7.         setlocal enabledelayedexpansion
  8.         set "MyFile=!MyFile:\\isilon.zf.com\ADASdata\=Z:\!"
  9.         set "NewFolder=%%~ni"
  10.         if not exist "!NewFolder!" (
  11.             md "!NewFolder!"
  12.         )
  13.         echo xcopy /y "!MyFile!" "!NewFolder!"
  14.         xcopy /y "!MyFile!" "!NewFolder!"
  15.         set "FileThis=1!MyFile:~-7,3!"
  16.         set /a FileBefore2=FileThis-2
  17.         set /a FileBefore1=FileThis-1
  18.         set /a FileAfter1=FileThis+1
  19.         if !FileThis! equ 1001 (
  20.             xcopy /y "!MyFile:~0,-8!!FileAfter1:~1!%%~xa" "!NewFolder!"
  21.         ) else if !FileThis! equ 1002 (
  22.             xcopy /y "!MyFile:~0,-8!!FileBefore1:~1!%%~xa" "!NewFolder!"
  23.             xcopy /y "!MyFile:~0,-8!!FileAfter1:~1!%%~xa" "!NewFolder!"
  24.         ) else if !FileThis! equ 1999 (
  25.             xcopy /y "!MyFile:~0,-8!!FileBefore2:~1!%%~xa" "!NewFolder!"
  26.             xcopy /y "!MyFile:~0,-8!!FileBefore1:~1!%%~xa" "!NewFolder!"
  27.         ) else (
  28.             xcopy /y "!MyFile:~0,-8!!FileBefore2:~1!%%~xa" "!NewFolder!"
  29.             xcopy /y "!MyFile:~0,-8!!FileBefore1:~1!%%~xa" "!NewFolder!"
  30.             xcopy /y "!MyFile:~0,-8!!FileAfter1:~1!%%~xa" "!NewFolder!"         
  31.         )
  32.         endlocal
  33.     )
  34. )
  35. pause
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

1+2.bat
Batcher 发表于 2023-8-21 18:18



    谢谢分享
我是小白,希望老师多多帮助

TOP

鼓励辛苦了!学习

TOP

返回列表