批量移动当前目录下的所有子文件夹?

批量移动当前目录下的所有子文件夹?,第1张

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行

<# :

cls&echo off&mode con lines=5000

rem 将当前目录下第二级子文件夹里的文件剪切/移动到第一级子文件夹里/上一级子文件夹里

set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%_% %z%

cd /d "%~dp0"

powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%~f0'"

echo%#% +%$%%$%/%_% %z%

pause

exit

#>

[byte[]]$b=@(32,45,45,62,32)

$c=[Text.Encoding]::Default.GetString($b)

$self=get-item -liter $args[0]

$path=$self.Directory.FullName

$folders1=@(dir -liter $path|?{$_ -is [System.IO.DirectoryInfo]})

for($i=0$i -lt $folders1.length$i++){

$folders2=@(dir -liter $folders1[$i].FullName|?{$_ -is [System.IO.DirectoryInfo]})

for($j=0$j -lt $folders2.length$j++){

$files=@(dir -liter $folders2[$j].FullName)

for($k=0$k -lt $files.length$k++){

$files[$k].FullName.substring($path.length)+$c+$folders1[$i].FullName.substring($path.length)+'\'+$files[$k].Name

}

#remove-Item -liter $folders2[$j].FullName -ErrorAction SilentlyContinue

}

}

可以不用BAT的形式,点点鼠标就完成

参考图主要分5个步骤:

第一、加载文件库,如果有子文件夹,选择多级文件夹

第二、文件清单填在左边框内一行一个,有空行清除掉

第三、设置保存路径,就是处理完后我们文件放哪里

第四、文件 *** 作方式,移动分2种是要复制还是剪切

第五、选择匹配方式,文件名包含文件清单呢,还是等于,还是连格式都完全相同

最后点击确定按钮查找,就可以找出来,最上面可以导出表格来哪些是匹配好的日志信息

@echo off

set "DstFolder=C:\新文件夹"

if not exist "%DstFolder%\" (

md "%DstFolder%"

)

for /f "delims=" %%i in ('dir /b /s /a-d *.MP4 *.MKV *.RMVB *.AVI') do (

move /y "%%i" "%DstFolder%"

)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11978931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存