标题: [文件操作] 批处理怎样在多个文件夹里指定文件移动到一个文件夹? [打印本页]
作者: miaojiahong 时间: 2019-6-18 20:51 标题: 批处理怎样在多个文件夹里指定文件移动到一个文件夹?
请教下大神们,我电脑上有个目录存放了多个文件夹,现在的需求是用批处理把1,2,3,4这四个文件夹下面的xlsx文件移动到《归类》里面,跪求批处理,谢谢!
作者: Batcher 时间: 2019-6-18 21:04
test.bat 放在【文件同步工具】文件夹下执行- @echo off
- pushd "%~dp0"
- for /f "delims=" %%i in ('dir /b /ad') do (
- if "%%i" neq "归类" (
- move /y "%%i" "归类\"
- )
- )
复制代码
作者: zaqmlp 时间: 2019-6-18 21:07
- @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- cd /d "%~dp0"
- powershell -NoProfile -ExecutionPolicy bypass ^
- $fd='归类';^
- [void](md $fd -force);^
- $folders=@(dir^|?{($_.Name -ne $fd) -and ($_ -is [System.IO.DirectoryInfo])});^
- for($i=0;$i -lt $folders.length;$i++){^
- $file=@(dir -liter $folders[$i].FullName -r^|?{@('.xlsx' -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])});^
- for($j=0;$j -lt $file.length;$j++){^
- $n=1;^
- $newname=$file[$j].Name;^
- $newfile=$fd+'\'+$newname;^
- while(test-path -liter $newfile){^
- $newname=$file[$j].BaseName+'('+$n.toString()+')'+$file[$j].Extension;^
- $newfile=$fd+'\'+$newname;^
- $n++;^
- };^
- write-host ($file[$j].FullName+' --^> '+$newfile);^
- mv -liter $file[$j].FullName $newfile;^
- };^
- }
- echo;%info%
- pause
复制代码
作者: miaojiahong 时间: 2019-6-19 14:41
回复 2# Batcher
您好!我执行了这个批处理之后,会把1,2,3,4这几个文件夹都移动到《归类》文件夹,实际我只需要把这4个文件夹内后缀名为.xlsx文件移动过去就好了,请指教。
作者: Batcher 时间: 2019-6-19 15:35
回复 4# miaojiahong - @echo off
- pushd "%~dp0"
- for /f "delims=" %%i in ('dir /b /ad') do (
- if "%%i" neq "归类" (
- move /y "%%i\*.xlsx" "归类\"
- )
- )
复制代码
作者: miaojiahong 时间: 2019-6-19 18:02
回复 5# Batcher
好了,没有问题了,谢谢大神!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |