¿Cómo dividir archivos rápidamente en Windows?

La transferencia de archivos grandes es una gran molestia, especialmente cuando desea cargarlos en Internet o usar una unidad extraíble que tiene poco espacio de almacenamiento.

Es posible comprimir y dividir archivos utilizando herramientas de archivo. Sin embargo, no puede usar los archivos divididos individualmente sin descomprimirlos en un solo archivo.

Por lo tanto, en este artículo, le presentaremos diferentes formas de dividir archivos mientras hacemos que ciertos archivos como audio, video, texto, etc. sean legibles incluso en el estado dividido.

Compartir archivos en Windows

Estos son los métodos que puede usar para compartir archivos en Windows:

Comparta archivos con un script personalizado

Windows no tiene una utilidad o aplicación integrada para dividir un archivo. Es por eso que hemos creado un script de PowerShell personalizado fácil de usar para dividir y volver a fusionar un archivo para ayudarlo.

Dado que la mayoría de las personas necesitan dividir un archivo por un tamaño determinado, nuestro script personalizado implementa solo esa función. Puede usarlo para crear archivos divididos con el tamaño de MB ingresado.

Si desea dividir con otras métricas, puede modificar el código como se indica en los comentarios (líneas seguidas de #).

Comparte el archivo

Primero, abra Windows PowerShell como administrador e ingrese el comando Get-ExecutionPolicy -Scope CurrentUser. puedes escribir powershell Haga clic en Ejecutar y presione Ctrl + Shift + Enter para ejecutar como administrador.

Si ve Restringido, Indefinido o Todo firmado, no puede ejecutar el script. Para cambiarlo, ingrese Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned.

Consulte nuestro artículo sobre la desactivación de scripts en este sistema para obtener más información.

Después de cambiar la política de ejecución, siga las instrucciones a continuación:

  1. Abre un editor de texto. Para abrir el bloc de notas, escriba notepad en correr
  2. Copie el siguiente código en el editor de texto:
# Function to Split File
function Split-File
{
    param
    (
        [Parameter(Mandatory)]
        [String]
        $Path,
        $SavePath,
        [Int32]
        $PartSizeBytes = 1MB
    )
    try
    {
        # Get separate parts of filename to construct new names
        $NameWithoutExtension = [IO.Path]::GetFileNameWithoutExtension($Path)
        $ParentDirectory = [IO.Path]::GetDirectoryName($Path)
        $Extension = [IO.Path]::GetExtension($Path)

        # Calculate total number of chunks possible
        $OriginalFile = New-Object System.IO.FileInfo($Path)
        $TotalPartsCount = [int][Math]::Log10([int]($OriginalFile.Length / $PartSizeBytes) + 1) + 1
        $ReadFile = [IO.File]::OpenRead($Path)
        $Count = 0
        $Chunk = New-Object Byte[] $PartSizeBytes
        $DataLeftFlag = $true

        # Read chunks till data is left
        while($DataLeftFlag)
        {
            # read individual chunks
            $ReadBytes = $ReadFile.Read($Chunk, 0, $Chunk.Length)
            
            # create filenames for the chunks
            $chunkFileName = "$SavePath$NameWithoutExtension.{0:D$TotalPartsCount}$Extension" -f $Count
            $Output = $Chunk

            # For the final part, where the chunksize is less
            if ($ReadBytes -ne $Chunk.Length)
            {
                $DataLeftFlag = $false # No more data
    
                # Use the final chunk as the last part by shrinking the bytesize
                $Output = New-Object Byte[] $ReadBytes
                [Array]::Copy($Chunk, $Output, $ReadBytes)
            }
   
            # save the chunk to a file
            [IO.File]::WriteAllBytes($chunkFileName, $Output)
            ++$Count
        }
        $ReadFile.Close()
    }
    catch
    {
        throw "Can't split file ${Path}: $_"
    }
}
#Create dialog box to open file
Add-Type -AssemblyName System.Windows.Forms
$FileBrowser = New-Object System.Windows.Forms.OpenFileDialog
$null = $FileBrowser.ShowDialog()

# Ask for size # CHANGE THIS SECTION to ask for size in other units
# 1KB=1024Bytes, 1MB = 1024KB, 1GB = 1024TB
$NumMB = read-host -Prompt "Enter Size in MB"
$NumBytes = 1024*1024*($NumMB -as [int]) # This section converts the MB input to bytes

#Create dialog box to save file
Add-Type -AssemblyName System.Windows.Forms
$SaveFileBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
$null = $SaveFileBrowser.ShowDialog()

# Call Split-File Function to Split file
Split-File -SavePath $SaveFileBrowser.SelectedPath  -Path $FileBrowser.FileName -PartSizeBytes $NumBytes -Verbose
  1. Ir expediente > Guardar como.
  2. ajustado a Guardar como a Todos los archivos y nombre de archivo a Split.ps1.
  3. Puede establecer cualquier ubicación. Cuando haya terminado, haga clic en Guardar en la computadora.
    dividir-guardar-como
  4. Ahora navega a Split.ps1 Expediente.
  5. Haga clic derecho sobre él y seleccione Ejecutar con PowerShell.
    Ejecutar con PowerShell
  6. Navegue y seleccione el archivo que desea dividir.
  7. hacer clic Abierto.
    seleccionar-archivo-para-dividir
  8. Ingrese el tamaño deseado para cada pieza dividida.
    introducir-tamaño-en-mb
  9. Navegue a la carpeta de salida, selecciónela y haga clic en OK.Guardar la ubicación del archivo
Leer:   Crear un enrutador virtual en Windows

También puede abrir PowerShell y cambiar la carpeta a Split.ps1 la ubicación del archivo y entrar. en .Split.ps1 para ejecutarlo

Únete al archivo

Primero, asegúrese de que la política de ejecución de PowerShell permita la creación de secuencias de comandos (consulte la sección anterior). Luego siga las instrucciones a continuación para fusionar los archivos:

  1. Asegúrese de que los archivos que desea fusionar tengan la misma extensión (no solo el nombre) en la misma ubicación.
  2. Cambiar sus nombres como name.xx.extensiondonde xx es el número de pieza, por ejemplo music.00.mp3.Salida de archivos divididos
  3. Abra un editor de texto y copie el siguiente código en el Bloc de notas.
# Function to Join File
function Join-File
{
    param
    (
        [Parameter(Mandatory)]
        [String]
        $Path,
        $SavePath
    )
    try
    {
        # Get separate parts of filename to construct new names
        $NameWithoutExtension = [IO.Path]::GetFileNameWithoutExtension($Path)
        $OutputName = $NameWithoutExtension.Split(".")[0]
        $ParentDirectory = [IO.Path]::GetDirectoryName($Path)
        $Extension = [IO.Path]::GetExtension($Path)

        # Get all files, in order
        $Files = Get-ChildItem -Path "$ParentDirectory$OutputName.*$Extension" | Sort-Object -Property {
            $Name = [IO.Path]::GetFileNameWithoutExtension($_.Name)
            $Part = [IO.Path]::GetExtension($Name)
            if ($Part -ne $null -and $Part -ne '')
            {
                $Part = $Part.Substring(1)
            }
            [int]$Part
        }
  
        # Create output file
        $WriteFile = [IO.File]::OpenWrite($SavePath+""+$OutputName+$Extension)
  
        # Write on output file
        $Files |
        ForEach-Object {
            $bytes = [IO.File]::ReadAllBytes($_)
            $WriteFile.Write($bytes, 0, $bytes.Length)
        }
        $WriteFile.Close()
    }
    catch
    {
        throw "Can't join file ${Path}: $_"
    }
}
# Create dialog box to open file
Add-Type -AssemblyName System.Windows.Forms
$FileBrowser = New-Object System.Windows.Forms.OpenFileDialog
$null = $FileBrowser.ShowDialog()

# Create dialog box to save file
Add-Type -AssemblyName System.Windows.Forms
$SaveFileBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
$null = $SaveFileBrowser.ShowDialog()


# Call Join-File Function to Join selected files
Join-File -SavePath $SaveFileBrowser.SelectedPath -Path $FileBrowser.FileName -Verbose
  1. Ir expediente > Guardar como.
  2. ajustado a Guardar como a Todos los archivos y nombre de archivo a Join.ps1.
  3. Puede establecer cualquier ubicación. Cuando haya terminado, haga clic en Guardar en la computadora.
  4. Ahora navega a Join.ps1 Expediente.
  5. Haga clic derecho sobre él y seleccione Ejecutar con PowerShell.
  6. Navegue y seleccione uno de los archivos que desea combinar.abrir-archivo-unirse
  7. hacer clic Abierto.
  8. Navegue a la carpeta de salida, selecciónela y haga clic en OK.
Leer:   Instalación en la nube frente a reinstalación local de Windows: ¿cuál es mejor?

También puede ejecutar el script desde PowerShell escribiendo .Join.ps1 si en la carpeta del archivo.

Dividir archivo con utilidades GNU para Win32

Si bien Windows no tiene una utilidad nativa para dividir y fusionar archivos, los sistemas GNU como UNIX y Linux sí tienen una. Si tiene instalado git-bash en su máquina, puede usar los comandos de Linux split para dividir un archivo y cat para fusionarlos desde su CLI.

Muchos desarrolladores han creado proyectos de código abierto para permitir algunas utilidades GNU en Windows, como B. GNU CoreUtils para Windows. Estas herramientas solo se basan en Microsoft C Runtime (msvcrt.dll) para ejecutar algunos comandos GNU. Esto incluye las utilidades Split y Cat.

Aquí hay alguna información necesaria para usar estos comandos:

  • La sintaxis completa para dividir el archivo es: split [options] file_name [new_files_prefix] donde los valores entre paréntesis son opcionales. Debe reemplazar «file_name» y «new_files_prefix» con los nombres de archivo apropiados.
  • Si solo ingresa split file_name, el archivo se dividirá en fragmentos de 1000 líneas cada uno.
  • Si desea dividir los archivos por tamaño, puede usar el indicador -b o -size en [options]. Por ejemplo, split -b 10m myfile.txt newfile.
  • Para recombinar el archivo, necesita la sintaxis cat parte_archivo* > archivo. Por ejemplo, puedes cat file1.txt file2.txt file3.txt > merged_file.txt o cat file* > merged_file.
  • Recomendamos usar rutas completas para los nombres de archivo si su directorio de trabajo actual no coincide con la ubicación del archivo que desea dividir.

Consulte la documentación de CoreUtils GNU para obtener más información sobre el uso de estas herramientas.

Archivo dividido con aplicaciones de terceros

Las soluciones anteriores ofrecen opciones limitadas para compartir un archivo en Windows. También utilizan interfaces de línea de comandos, por lo que debe estar familiarizado con dichas interfaces si desea personalizar los métodos para compartir un archivo.

Leer:   ¿Cómo obtener el valor del registro en powershell?

Por lo tanto, la mayoría de la gente prefiere usar herramientas de terceros porque es más conveniente y tiene más funciones. Algunas aplicaciones confiables que puede usar para este propósito son 7-Zip, HJSplit, GSplit, Total Commander, Fastest File Splitter and Joiner, etc.

Gracias por leer absolutoyrelativo.com. ¡Hasta la próxima!

Deja un comentario