不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,带帆跟要处理的文件放一起双击运行
<# :
cls&echo off&mode con lines=3000
rem 根据列出的多个关键字/关键词,将当前目录下文件名称中包含有这些关键字的txt文本文件分别拷贝/复制到以关键字命名的子文件夹里
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
#>
$keywords=@"
关键词1
关键词闹弊2
关键词3
关键词N
"@
$arr=$keywords.trim() -split '[\r\n]+'
[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|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])})
for($i=0$i -lt $files.length$i++){
for($j=0$j -lt $arr.length$j++){
if($files[$i].BaseName.toLower().Contains($arr[$j].toLower())){
$newfolder=$path+'\蠢弯雹'+$arr[$j].trim()
if(-not (test-path -liter $newfolder)){[void][IO.Directory]::CreateDirectory($newfolder)}
$files[$i].Name+$c+$arr[$j]
}
}
}
首先悄首厅获取源文件夹下所有文件名:string[] files = Directory.GetFiles(path)
path是文件夹全路径
循环files,用下述方法就可以把文件复制过去
FileInfo fi = new FileInfo(path1)
fi.CopyTo(path2, true)
path1源芹旁文件路径,path2目标启隐文件路径。
可以弄全自动创建文伏困件夹,根据文件名关乱局联把序号文件夹创建好,然后查找一个,关联对应的保存,可以分类存储这样子
如图,缺陪念可以在这个基础上设置分类存储,创建文件夹不以文件清单名,以文件清单名关联的序号进行自动创建文件夹,保存也是全自动保存到对应创建的文件夹,加一个映射表就可以了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)