文本文件合并到一个文件夹
bat吧
全部回复
仅看楼主
level 3
jyzbtjtomcom 楼主
在一个文件夹里面1000个txt文本,那么通过命令设置两个txt文本归一个文件夹。那么总共有500个文件夹可不可以自己设置合并的个数,也就是设置成3个文本合并到一个文件夹,或者4,5,6个合并到一个文件夹呢
2021年10月12日 04点10分 1
level 9
不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为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'"
title %#% +%$%%$%/%_% %z%
pause
exit
#>
#分配数量
$count=3;
$codes=@'
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
public static class ExpDir
{
[DllImport("Shlwapi.dll", CharSet=CharSet.Unicode)]
public static extern int StrCmpLogicalW(string p1, string p2);
public static string[] Sort(string[] f)
{
Array.Sort(f, StrCmpLogicalW);
return f;
}
}
'@;
Add-Type -TypeDefinition $codes;
$b=[Convert]::FromBase64String("IC0tPiA=");
$c=[Text.Encoding]::Default.GetString($b);
$n=1;
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$files=@(dir -liter $path|?{($_.Name -ne $self.Name) -and ($_ -is [System.IO.FileInfo])}|%{$_.Name})
$arr=[ExpDir]::Sort($files);
for($i=0;$i -lt $arr.Count;$i++){
$file=$path+'\'+$arr[$i];
$newfolder=$n.toString();
$newpath=$path+'\'+$newfolder;
if(-not (test-path -liter $newpath)){[void][IO.Directory]::CreateDirectory($newpath)};
$arr[$i]+$c+$newfolder;
if((($i+1) % $count) -eq 0){$n++;}
}
2021年10月12日 05点10分 2
还用了c#吗,这是
2021年10月13日 02点10分
1