Board logo

标题: 【已解决】【100元红包】判断本地文件夹是否为空,将NAS文件剪切到本地文件夹里 [打印本页]

作者: linfeng_321    时间: 2022-5-27 19:15     标题: 【已解决】【100元红包】判断本地文件夹是否为空,将NAS文件剪切到本地文件夹里

本帖最后由 linfeng_321 于 2022-5-27 21:29 编辑

NAS文件(文件名有版本号区分:V14、V15...):
A120001-V15.zip
A120002-V14.zip
A120003-V15.zip
...

本地文件夹:
.\aaa\bbb-V15
.\aaa\bbb-V14
...

操作步骤:
1、判断本地文件夹是否为空,将NAS文件名(判断版本号:V14,V15...)剪切到本地对应编号文件夹里,再执行123.bat。
2、设置延迟时间120秒,再重复一次“第1步”操作,一直循环下去。

注:每次只能剪切一个文件(按时间升序剪切)。
如果本地文件夹里包含隐藏文件“thumb.db或.DS_Store文件”时,也判断文件夹为空。顺便删除这些文件。

NAS信息和延迟时间,放在批处理顶部变量区域,便于我修改。
作者: zaqmlp    时间: 2022-5-27 19:59

本帖最后由 zaqmlp 于 2022-5-27 21:13 编辑
  1. @echo off&cd /d "%~dp0"&mode con lines=5000&rem bat存为编码ANSI
  2. set "nas_folder=\\nas_ip\zipfolder"
  3. set sleep=120
  4. set "run_bat=.\123.bat"
  5. :loop
  6. set "local_folder="
  7. for %%a in (
  8.     ".\aaa\bbb-V15\ccc"
  9.     ".\aaa\bbb-V14\ccc"
  10. ) do (
  11.     set "count="
  12.     if exist "%%~a" (
  13.         for /f "delims=" %%b in ('dir /a-dh/b "%%~a\" 2^>nul') do del /a /f /q "%%~a\%%~nxb"
  14.         for /f "delims=" %%b in ('dir /a-d-h/b "%%~a\" 2^>nul') do set /a count+=1
  15.         if not defined count (
  16.             set "local_folder=%%~a"
  17.             goto :movefile
  18.         )
  19.     ) else (echo;"%%~a" path error or not existed)
  20.    
  21. )
  22. if not defined local_folder (
  23.     echo;can not find any empty local folders
  24.     goto :break
  25. )
  26. :movefile
  27. echo;local_folder="%local_folder%"
  28. set "ver="
  29. for /f "delims=" %%a in ("%local_folder%") do set "fd=%%~dpa"
  30. for /f "delims=" %%a in ("%fd:~,-1%") do (
  31.     for /f "tokens=1* delims=-" %%b in ("%%~nxa") do set "ver=%%c"
  32. )
  33. if not defined ver (
  34.     echo;can not get version number
  35.     goto :break
  36. )
  37. echo;ver="%ver%"
  38. echo;"%nas_folder%\*-%ver%.zip" is finding……
  39. for /f "delims=" %%a in ('dir /a-d/b/od/tw "%nas_folder%\*-%ver%.zip"') do (
  40.     echo;"%nas_folder%\%%~nxa" --^> "%local_folder%\"
  41.     move "%nas_folder%\%%~nxa" "%local_folder%\"
  42.     if exist "%run_bat%" (start "" "%run_bat%") else (echo;"%run_bat%" not found)
  43.     goto :break
  44. )
  45. :break
  46. timeout /t %sleep% /nobreak
  47. goto loop
复制代码

作者: linfeng_321    时间: 2022-5-27 20:58

回复 2# zaqmlp


    大佬你好,帮我修改下
本地文件夹(修改为):
.\aaa\bbb-V15\ccc
.\aaa\bbb-V14\ccc
作者: zaqmlp    时间: 2022-5-27 21:14

回复 3# linfeng_321


    已修改
作者: linfeng_321    时间: 2022-5-27 21:28

回复 4# zaqmlp


    已支付,谢谢大佬




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2