[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

(已解决)合并2个文件夹内的BIN文件。(50元)

本帖最后由 81442818 于 2024-12-5 20:27 编辑

每次从文件夹1和文件夹2分别取出一个文件合并成一个新的文件。
删除文件夹1/2内合并过的文件。
联系QQ 353560609

  1. <# :
  2. cls&echo off&cd /d "%~dp0"
  3. path %SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%path%
  4. set "current=%cd%"
  5. powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
  6. pause
  7. exit
  8. #>
  9. $current=($env:current).trimend('\');
  10. $folder1=$current+"\1";
  11. $folder2=$current+"\2";
  12. $output=$current+"\3";
  13. if(-not (test-path -literal $folder1)){write-host ('"'+$folder1+'" path error or not exist');exit;}
  14. if(-not (test-path -literal $folder2)){write-host ('"'+$folder2+'" path error or not exist');exit;}
  15. if(-not (test-path -literal $output)){[void][IO.Directory]::CreateDirectory($output);}
  16. $codes=@'
  17. using System;
  18. using System.Collections.Generic;
  19. using System.Runtime.InteropServices;
  20. public static class ExpDir
  21. {
  22.     [DllImport("Shlwapi.dll", CharSet=CharSet.Unicode)]
  23.     public static extern int StrCmpLogicalW(string p1, string p2);
  24.     public static string[] Sort(string[] f)
  25.     {
  26.         Array.Sort(f, StrCmpLogicalW);
  27.         return f;
  28.     }  
  29. }
  30. '@;
  31. Add-Type -TypeDefinition $codes;
  32. $arr=@(dir -literal $folder1|?{('.bin' -ne $_.Extension) -and ($_ -is [System.IO.FileInfo])});
  33. $brr=@(dir -literal $folder2|?{('.bin' -ne $_.Extension) -and ($_ -is [System.IO.FileInfo])});
  34. for($i=0;$i -lt $arr.length;$i++){
  35.     remove-item -literal $arr[$i].FullName -force -ErrorAction SilentlyContinue;
  36. }
  37. for($i=0;$i -lt $brr.length;$i++){
  38.     remove-item -literal $brr[$i].FullName -force -ErrorAction SilentlyContinue;
  39. }
  40. $arr=@(dir -literal $folder1|?{('.bin' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])}|%{$_.Name});
  41. $brr=@(dir -literal $folder2|?{('.bin' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])}|%{$_.Name});
  42. if(($arr.length -ge 1) -and ($brr.length -ge 1)){
  43.     $files1=[ExpDir]::Sort($arr);
  44.     $files2=[ExpDir]::Sort($brr);
  45.     for($i=0;$i -lt $files1.count;$i++){
  46.         if($i -lt $files2.count){
  47.             $f1=get-item -literal ($folder1+'\'+$files1[$i]) -force;
  48.             $f2=get-item -literal ($folder2+'\'+$files2[$i]) -force;
  49.             write-host $f1.FullName;
  50.             write-host $f2.FullName;
  51.             $b1=[IO.File]::ReadAllBytes($f1.FullName);
  52.             $b2=[IO.File]::ReadAllBytes($f2.FullName);
  53.             $nb=$b2+$b1;
  54.             $newfile=$output+'\ALL_'+$f2.Name;
  55.             [IO.File]::WriteAllBytes($newfile, $nb);
  56.             remove-item -literal $f1.FullName -force -ErrorAction SilentlyContinue;
  57.             remove-item -literal $f2.FullName -force -ErrorAction SilentlyContinue;
  58.             break;
  59.         }
  60.     }
  61. }
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

返回列表