如何用BAT命令批量移动文件到文件夹?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用BAT命令批量移动文件到文件夹?相关的知识,希望对你有一定的参考价值。
现有若干文件,文件名为不同姓名加序号,现在想将同名字的文件移动到新建的同名文件夹
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为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;
$files=@(dir -liter $path|?($self.Name -ne $_.Name) -and ($_ -is [System.IO.FileInfo]));
for($i=0;$i -lt $files.length;$i++)
$m=[regex]::match($files[$i].BaseName, '[\u4e00-\u9fa5]+');
if($m.Success)
$newfolder=$path+'\'+$m.groups[0].value;
if(-not (test-path -liter $newfolder))[void][IO.Directory]::CreateDirectory($newfolder);
$files[$i].Name+$c+$m.groups[0].value;
参考技术A COPY 名字*.* 路径(比如C:\新建文件夹)
如何用批处理写自动安装软件的脚本
参考技术A1、新建一个Ergodic.txt文件然后重名成Ergodic.bat文件,然后输入前置声明:@echooff,pause。
2、set给路径赋值,设定一个路径,比如说D盘的bat。setwork_path=D:\\bat。
3、然后cd到文件路径,用cd%work_path%。
4、然后用for循环遍历文件用echo打印出文件名for/R%%sin(.,*)do( echo%%s)。
5、运行脚本,可以发现没有跳转到D盘目录下,而是在当前文件下输出文件名了。
6、应该在cd前面加上D:以用来表示进入的是D盘,再次运行结果如下。
注意事项:
目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的。
- 官方服务
- 官方网站官方网站
以上是关于如何用BAT命令批量移动文件到文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
bat批处理,根据清单中的文件名将多个文件移动到另外一个路径下,如何批量处理?非常感谢!