Hoe bestanden snel in Windows te splitsen?

Het overbrengen van grote bestanden is een serieus gedoe, vooral als u naar internet wilt uploaden of een verwisselbare schijf met kleine opslagruimte wilt gebruiken.

Het is mogelijk om bestanden te comprimeren en te splitsen met behulp van archieftools. U kunt de gesplitste bestanden echter niet afzonderlijk gebruiken zonder ze te decomprimeren tot een enkel bestand.

Dus in dit artikel zullen we verschillende manieren bieden waarop u bestanden kunt splitsen terwijl u bepaalde bestanden zoals audio, video, tekst, enz. leesbaar maakt, zelfs in gesplitste staat.

Bestanden splitsen in Windows

Dit zijn de methoden die u kunt gebruiken om bestanden in Windows te splitsen:

Bestanden splitsen met een aangepast script

Windows heeft geen ingebouwd hulpprogramma of app om een ​​bestand te splitsen. Daarom hebben we een gebruiksvriendelijk aangepast PowerShell-script gemaakt voor het splitsen en opnieuw samenvoegen van een bestand om u te helpen.

Aangezien de meeste mensen een bestand moeten splitsen volgens een bepaalde grootte, implementeert ons aangepaste script alleen deze functie. U kunt het gebruiken om gesplitste bestanden te maken met een invoer MB-grootte.

Als u wilt splitsen met andere maten, kunt u de code wijzigen zoals we hebben aangegeven in de opmerkingen (regels met #).

Het bestand splitsen

Open eerst Windows PowerShell als beheerder en voer de opdracht in Get-ExecutionPolicy -Scope CurrentUser. Jij kan typen powershell op Uitvoeren en druk op Ctrl + Shift + Enter om het als admin uit te voeren.

Als het Restricted, Undefined of AllSigned toont, kunt u het script niet uitvoeren. Om het te veranderen, voer in Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned.

Als u meer informatie wilt, raadpleegt u ons artikel over het uitvoeren van scripts is uitgeschakeld op dit systeem.

Volg de onderstaande instructies na het wijzigen van het uitvoeringsbeleid:

  1. Open een teksteditor. Om kladblok te openen, typt u notepad op Uitvoeren.
  2. Kopieer de volgende code in de teksteditor:
# 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. Ga naar Bestand > Opslaan als.
  2. Set Opslaan als type naar Alle bestanden en Bestandsnaam naar Split.ps1.
  3. U kunt elke gewenste locatie instellen. Nadat u klaar bent, klikt u op Opslaan.
  4. Navigeer nu naar de Split.ps1 het dossier.
  5. Klik er met de rechtermuisknop op en selecteer Uitvoeren met PowerShell.
    Uitvoeren met PowerShell
  6. Navigeer naar en selecteer het bestand dat u wilt splitsen.
  7. Klik Open.
    selecteer-bestand-om te splitsen
  8. Voer de gewenste maat in voor elk gesplitst onderdeel.
    enter-size-in-mb
  9. Navigeer naar en selecteer de uitvoermap en klik op OK.bestandslocatie opslaan

U kunt PowerShell ook openen, de map wijzigen in de Split.ps1 de locatie van het bestand en voer . in .Split.ps1 om het uit te voeren.

Deelnemen aan het bestand

Zorg er eerst voor dat het uitvoeringsbeleid van PowerShell het uitvoeren van scripts toestaat (zie de bovenstaande sectie). Volg daarna de onderstaande instructies om de bestanden samen te voegen:

  1. Zorg ervoor dat de bestanden waaraan u wilt deelnemen dezelfde extensie hebben (niet alleen in naam) op dezelfde locatie aanwezig zijn.
  2. Verander hun namen als name.xx.extensionwaarbij xx staat voor het onderdeelnummer, voor bijv. music.00.mp3.split-files-output
  3. Open een teksteditor en kopieer de volgende code in de editor.
# 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. Ga naar Bestand > Opslaan als.
  2. Set Opslaan als type naar Alle bestanden en Bestandsnaam naar Join.ps1.
  3. U kunt elke gewenste locatie instellen. Nadat u klaar bent, klikt u op Opslaan.
  4. Navigeer nu naar de Join.ps1 het dossier.
  5. Klik er met de rechtermuisknop op en selecteer Uitvoeren met PowerShell.
  6. Navigeer naar en selecteer een van de bestanden waaraan u wilt deelnemen.open-file-join
  7. Klik Open.
  8. Navigeer naar en selecteer de uitvoermap en klik op Oké.

U kunt het script ook vanuit PowerShell uitvoeren door in te voeren .Join.ps1 wanneer in de map van het bestand.

Bestand splitsen met GNU-hulpprogramma’s voor Win32

Hoewel Windows geen native hulpprogramma heeft om bestanden te splitsen en samen te voegen, hebben GNU-systemen zoals UNIX- en Linux-systemen dat wel. Als je git-bash op je computer hebt geïnstalleerd, kun je de Linux-commando’s-split gebruiken om een ​​bestand te splitsen en cat om ze samen te voegen vanuit zijn CLI.

Veel ontwikkelaars hebben open-sourceprojecten gemaakt om sommige GNU-hulpprogramma’s op Windows toe te staan, zoals GNU CoreUtils voor Windows. Deze hulpprogramma’s vertrouwen alleen op Microsoft C-runtime (msvcrt.dll) om enkele GNU-commando’s uit te voeren. Ze omvatten ook de split- en cat-hulpprogramma’s.

Hier is wat noodzakelijke informatie over het gebruik van deze commando’s:

  • De volledige syntaxis om het bestand te splitsen is: split [options] file_name [new_files_prefix] waarbij de waarden tussen haakjes optioneel zijn. U moet “file_name” en “new_files_prefix” vervangen door de relevante bestandsnamen.
  • Als u just split file_name invoert, wordt het bestand opgedeeld in secties van elk 1000 regels.
  • Als u de bestanden op grootte wilt verdelen, kunt u de vlag -b of -size gebruiken voor [options]. Bijvoorbeeld, split -b 10m myfile.txt newfile.
  • Om het bestand opnieuw te combineren, is de syntaxis die u nodig hebt cat file_part* > file. U kunt bijvoorbeeld cat file1.txt file2.txt file3.txt > merged_file.txt of cat file* > merged_file.
  • We raden aan volledige paden voor de bestandsnamen te gebruiken als uw huidige werkdirectory niet dezelfde is als de locatie van het bestand dat u wilt splitsen.

U kunt de GNU-documentatie over CoreUtils bezoeken voor meer informatie over hoe u deze hulpprogramma’s kunt gebruiken.

Bestand splitsen met toepassingen van derden

De vorige oplossingen bieden beperkte opties voor het splitsen van een bestand op Windows. Ze gebruiken ook opdrachtregelinterfaces, dus u moet bekend zijn met dergelijke interfaces als u manieren wilt aanpassen om een ​​bestand te splitsen.

Dus de meeste mensen geven er de voorkeur aan om tools van derden te gebruiken omdat dit handiger is en meer functies biedt. Enkele betrouwbare apps die u voor dit doel kunt gebruiken, zijn 7-Zip, HJSplit, GSplit, Total Commander, Fastest File Splitter en Joiner, enzovoort.

Leave a Comment