标题: [文件操作] 求助BAT代码把文件夹的EXCEL剪切到另一个文件夹 [打印本页]
作者: 小嘟嘟 时间: 3 天前 16:23 标题: 求助BAT代码把文件夹的EXCEL剪切到另一个文件夹
我桌面上有一个文件夹1,里面是各种命名的EXCEL的表格,例如AAE...BAC..等等
另一个文件夹2,里面是命名好的各种子文件夹(比如AAE...BAC...前几位是相同的),子文件AAE里面又分月和日期
能不能根据文件夹1里面的EXCEL的命名和创建的时间,自动剪切到文件夹2中相同的名字的文件夹里面的日期中。可以实现嘛
作者: flashercs 时间: 3 天前 17:46
保存为test.bat,脚本编码是ANSI.请先测试再使用.- @echo off
- cd /d "%~dp0"
- set "dir1=文件夹1"
- set "dir2=文件夹2"
- REM 前缀长度
- set "prefix_length=3"
-
- md "%dir1%" 2>nul
- md "%dir2%" 2>nul
- 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;"
- pause
复制代码
作者: aloha20200628 时间: 3 天前 18:48
本帖最后由 aloha20200628 于 2025-2-2 18:50 编辑
回复 1# 小嘟嘟
须明确文件夹2下的日期子文件夹的命名格式,例如 2025-1-2 还是 2025-01-02 还是 1-2-2025?
作者: Five66 时间: 3 天前 18:51
请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,请用使用网盘。
如果需要上传截图,可以找个图床,例如:
http://www.bathome.net/thread-60985-1-1.html
作者: 小嘟嘟 时间: 3 天前 19:25
回复 3# aloha20200628
1-2就可以啦
作者: 小嘟嘟 时间: 3 天前 19:26
回复 2# flashercs
我试下看行不行
作者: aloha20200628 时间: 3 天前 20:40
本帖最后由 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 子目录,假设该子目录已存在)- @echo off &set "d1=c:\1" &set "d2=c:\2"
- cd /d "%d1%" &for /f "delims=" %%F in ('dir /b/a-d "%d1%\*.xls" ') do (
- set "F=%%F" &set "nF=%%~nF" &setlocal enabledelayedexpansion
- set "t=%%~tF" &set/a "m=!t:~5,2!,d=!t:~8,2!" &set "t=!m!-!d!"
- if exist "%d2%\!nF!\!t!" move /y "!F!" "%d2%\!nF!\!t!\"
- endlocal)
- pause&exit/b
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |