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

[文件操作] 求助BAT代码把文件夹的EXCEL剪切到另一个文件夹

我桌面上有一个文件夹1,里面是各种命名的EXCEL的表格,例如AAE...BAC..等等
另一个文件夹2,里面是命名好的各种子文件夹(比如AAE...BAC...前几位是相同的),子文件AAE里面又分月和日期
能不能根据文件夹1里面的EXCEL的命名和创建的时间,自动剪切到文件夹2中相同的名字的文件夹里面的日期中。可以实现嘛

本帖最后由 aloha20200628 于 2025-2-2 20:46 编辑

回复 5# 小嘟嘟

以下代码存为 test.bat 运行,其中变量 %d1%,%d2% 分别定义源目录(如 c:\1,可修改)和目标目录(如 c:\2,可修改)
运行结果会将源目录中的 *.xls 文件(如 c:\1\a.xls,其最后修改日期=2025-02-02)移动至目标目录下同名子目录中的相应日期子目录(如 c:\2\a\2-2 子目录,假设该子目录已存在)
  1. @echo off &set "d1=c:\1" &set "d2=c:\2"
  2. cd /d "%d1%" &for /f "delims=" %%F in ('dir /b/a-d "%d1%\*.xls" ') do (
  3.    set "F=%%F" &set "nF=%%~nF" &setlocal enabledelayedexpansion
  4.    set "t=%%~tF" &set/a "m=!t:~5,2!,d=!t:~8,2!" &set "t=!m!-!d!"
  5.    if exist "%d2%\!nF!\!t!" move /y "!F!" "%d2%\!nF!\!t!\"
  6.    endlocal)
  7. pause&exit/b
复制代码

TOP

回复 2# flashercs


    我试下看行不行

TOP

回复 3# aloha20200628


    1-2就可以啦

TOP

请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,请用使用网盘。
如果需要上传截图,可以找个图床,例如:
http://www.bathome.net/thread-60985-1-1.html

TOP

本帖最后由 aloha20200628 于 2025-2-2 18:50 编辑

回复 1# 小嘟嘟

须明确文件夹2下的日期子文件夹的命名格式,例如 2025-1-2 还是 2025-01-02 还是 1-2-2025?

TOP

保存为test.bat,脚本编码是ANSI.请先测试再使用.
  1. @echo off
  2. cd /d "%~dp0"
  3. set "dir1=文件夹1"
  4. set "dir2=文件夹2"
  5. REM 前缀长度
  6. set "prefix_length=3"
  7. md "%dir1%" 2>nul
  8. md "%dir2%" 2>nul
  9. powershell -c "gci -literal $env:dir1 -filter *.xls|where{$_ -is [IO.FileInfo]}|Move-Item -Destination {$baseName=$_.BaseName;$prefix=$baseName.Substring(0,[Math]::Min($baseName.Length,$env:prefix_length));$sdtm=$_.CreationTime.ToString('yyyyMMdd');$di=[IO.Directory]::CreateDirectory($env:dir2+'\'+$prefix+'\'+$sdtm);$di.FullName;} -Verbose;"
  10. pause
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表