Notices: This section not yet converted to new layout. Download stats are rolling back out.

This is not the latest version of Total Commander available.

Total Commander


Package test results are passing.

This package was approved by moderator AdmiringWorm on 2/24/2019.

Total Commander is a file manager for Windows, a tool like the Explorer or file manager, which comes with windows.
But Total Commander uses a different approach: it has two fixed windows, which makes copying files much easier.


  • Two file windows side by side
  • Multiple language and Unicode support
  • Enhanced search function
  • Compare files (now with editor) / synchronize directories
  • Quick View panel with bitmap display
  • ZIP, 7ZIP, ARJ, LZH, RAR, UC2, TAR, GZ, CAB, ACE archive handling + plugins
  • Built-in FTP client with FXP (server to server) and HTTP proxy support
  • Parallel port link, multi-rename tool
  • Tabbed interface, regular expressions, history+favorites buttons
  • Thumbnails view, custom columns, enhanced search
  • Compare editor, cursor in lister, separate trees, logging, enhanced overwrite dialog etc.
  • Unicode names almost everywhere, long names (>259 characters), password manager for ftp and plugins, synchronize empty dirs, 64 bit context menu, quick file filter (Ctrl+S)
  • USB port connection via special direct transfer cable, partial branch view (Ctrl+Shift+B), and many improvements to ftp, synchronizing and other functions
  • And many more!

Plugin downloads
Plugin development

Package parameters

The following package parameters can be set:

  • /LocalUser - Install only for local user. By default it will be installed for all users.
  • /DesktopIcon - Add an icon for Total Commander to the Desktop. By default no icon is added.
  • /InstallPath - Use custom install path. By default Total Commander is installed to the %ProgramFiles%\totalcmd directory.
  • /DefaultFM - Use TC as default file manager instead of Explorer. Use /DefaultFM:explorer to return to Explorer.
  • /ShellExtension - Add Total Commander in shell context menu for directories.

These parameters can be passed to the installer with the use of --params. For example: --params '/LocalUser /DesktopIcon'.


  • This package sets system environment variable COMMANDER_PATH which points to the Total Commander install directory.
  • This package contain combined Total Commander installer which contains both x32 and x64 bit versions.
  • Total Commander is a Shareware program. This means that you can test it for a period of 30 days. After testing the program, you must either order the full version, or delete the program from your harddisk.

To install Total Commander, run the following command from the command line or from PowerShell:

C:\> choco install totalcommander --version 9.21.1

To upgrade Total Commander, run the following command from the command line or from PowerShell:

C:\> choco upgrade totalcommander --version 9.21.1


  • legal\LICENSE.txt Show
    Software Licence / Copyright
    Software Licence
    Please read the following lines carefully before using this software. If you disagree with any of the following, you are not allowed to use this program. You MUST then delete it immediately.
    You have the right to test this program for a period of one month. You are allowed to copy this Shareware-version (and ONLY the Shareware version) and give it to any other person, as long as it is not modified in any way. Under modifications is understood the changing, adding or removing of any files of this package without the author's written permission. You are NOT allowed to pack this program together with a commercial program or a book. Shareware dealers are allowed to sell the Shareware version for a small fee (around CHF/US$ 10.-). It must be clear to the buyer that he isn't receiving the full version! You are encouraged to put this program on as many BBS systems as possible. The distribution on CD-ROM is also permitted, as long as the original files are not changed in any way. Please contact me if you want to distribute the program with a different installation program, changed files etc. Programs marked as "Beta" or "Release candidate" may not be distributed under any conditions.
    Use of this software after the trial period of one month is in violation of international Copyright law! It is also unfair to the author, who has spent hundreds of hours developing this program.
    This program is neither freeware nor public domain. Use after the 30 day trial period requires registration. The registration fee is only CHF 40.- incl. S&H ($ 38.- US personal cheque or cash including handling fees) for a personal licence, or CHF 30.- for a student licence (with photocopy of student identity card). The student licence can only be registered to the full name of the student. See How to register for details on registration and support.
    Registered version (personal licence)
    The registered version may be installed on as many computers as desired, as long as it is used by only one person at any one time (I.e. one installation at home and one at the office used by the same person). Therefore you need only one licence for a port connection between two computers. The usage by multiple people at the same time (on multiple computers) requires additional licences.
    Additional licences (multi-user licences)
    Additional licences allow an institution, company or school to install the program on multiple computers and/or servers. Each licence allows one person at the same time to use the program on an unlimited number of computers. For example, if 10 people run Total Commander at the same time on 20 computers (desktop/notebook), a 10 user licence would be needed. All licences are issued to the same (company) name, which appears in the program's title bar. Additional licences cost CHF 20.- for the 2nd to 10th licence, etc. (see additional licences for details). For larger amounts than 1000 please contact the author. Each additional licence also allows a single user to use the program at home.
    We try to keep our software as bug-free as possible. But it's a general rule (Murphy's), that no software ever is error free, and the number of errors increases with the complexity of the program. That's why we cannot guarantee that this software will run in every environment, on any Windows compatible machine, together with any other application, without producing errors. Any liability for damage of any sort is hereby denied. In any case, the liability is limited to the registration fee.
    Please test this program with non-critical data. We cannot guarantee the safety of your data. Especially new operating systems released after a specific version of Total Commander can cause trouble, so make sure to upgrade often. Should you detect errors before registration, you accept them if you register. Any description of bugs will be accepted, but we cannot guarantee that we will be able to correct them (but we will try our best).
    Development of Total Commander
    Total Commander was written utilizing Borland Delphi 1.0 (16 bit) and 2.0 (32 bit) (© 1993-96 by Borland International), and Lazarus/Free Pascal (64 bit). The Drag&Drop-algorithms, especially the undocumented parts, were found in the very good book "Undocumented Windows", Andrew Schulman, Addison Wesley 1991. The DPMI-handling for setting the volume label was taken from the book "Turbo Pascal für Windows - Object Windows", A. Ertl/R. Machholz, Sybex 1992. Only the algorithms were taken and rewritten in Pascal. The idea for the screen layout was taken from DCC, a Norton Commander (© Symantec) clone. All code from the German issue WinDOS was removed and rewritten for Copyright reasons. The ARJ and LHA code was translated by Mart Heubels (WinCAT PRO) and myself from public C sources to Pascal. A free unpacking DLL is available upon request. The internal ZIP packer is based on Zlib by Jean-loup Gailly. The C sources are available on the Internet, on the same server as ZIP-NT. MD5 Implementation provided by Greg Carter, CRYPTOCard Corporation. The AES encryption code used in the ZIP packer was developed by Dr Brian Gladman. The LZMA SDK (ZIP method 14) is written and placed in the public domain by Igor Pavlov. The AES256 and AES512-hash functions are Copyright 2002-2007 Wolfgang Ehrhardt. Optimized MD5, SHA1 and SHA256 parts from DCPcrypt Cryptographic Component Library v2, Copyright (c) 1999-2003 David Barton.
    All mentioned Trademarks and Copyrights belong to their respective owners.
    Legal domicile is Bern, Switzerland.
    Christian Ghisler, Ghisler Software GmbH, PO Box, CH-3065 Bolligen, Switzerland, 2015
  • legal\VERIFICATION.txt Show
    Verification is intended to assist the Chocolatey moderators and community
    in verifying that this package's contents are trustworthy.
    The installer have been downloaded from TotalCommander website and can be verified like this:
    1. Download the following installers:
      setup: <>
      installer: <>
    2. You can use one of the following methods to obtain the checksum
      - Use powershell function 'Get-Filehash'
      - Use chocolatey utility 'checksum.exe'
      checksum type: sha256
      checksum-setup: 5330B7A45E9881D885067BF7DFEFA37F4502088D9FD259BF1F2CC3FBDD9E304B
      checksum-installer: 80DE9C2C49FC63965CF0E9BCB1A0E6D25187A1613BDE2086BDA79EFBDC8FCEB8
    File 'LICENSE.txt' is obtained from help file of the application.
  • tools\chocolateyInstall.ps1 Show
    $ErrorActionPreference = 'Stop'
    $toolsPath = Split-Path $MyInvocation.MyCommand.Definition
    . $toolsPath\helpers.ps1
    $is64 = (Get-OSArchitectureWidth 64) -and $env:chocolateyForceX86 -ne 'true'
    $tcExeName = if ($is64) { 'totalcmd64.exe' } else { 'totalcmd.exe' }
    $pp = Get-PackageParameters
    $tcmdWork = Get-PackageCacheLocation
    $packageArgs = @{
        PackageName    = 'totalcommander'
        FileType       = 'exe'
        File           = "$tcmdWork\INSTALL.exe"
        File64         = "$tcmdWork\INSTALL.exe"
        SilentArgs     = ''
        ValidExitCodes = @(0)
        SoftwareName   = 'Total Commander*'
    Install-ChocolateyInstallPackage @packageArgs
    Remove-Item $toolsPath\*.exe, $toolsPath\*.zip -ea 0
    $packageName = $packageArgs.packageName
    $installLocation = Get-TCInstallLocation
    if (!$installLocation)  { Write-Warning "Can't find $packageName install location"; return }
    Write-Host "$packageName installed to '$installLocation'"
    Write-Host 'Setting system environment COMMANDER_PATH'
    Set-EnvironmentVariable 'COMMANDER_PATH' $installLocation Machine
    if ($pp.ShellExtension)              { Set-TCShellExtension }
    if ($pp.DefaultFM -eq $true)         { Set-TCAsDefaultFM }
    if ($pp.DefaultFM -like 'explorer*') { Set-ExplorerAsDefaultFM }
    Register-Application "$installLocation\$tcExeName" tc
    Write-Host "$packageName registered as tc"
  • tools\chocolateyUninstall.ahk Show
    ; default environment
    DetectHiddenWindows, off
    SetControlDelay, 20
    ; modified environment
    DetectHiddenText, off
    SetTitleMatchMode, 2  ;contains
    ; variables
    winTitle1 = Uninstall /Repair Total Commander ahk_class #32770
    winTitle2 = Uninstall Total Commander ahk_class #32770
    winTitle3 = Uninstall ahk_class #32770
    WinWait, %winTitle1%, Removes the program, 20
    ControlClick, Button1 ; &Uninstall
    WinWait, %winTitle2%, Uninstall Program, 20
    ControlClick, Button4 ; Remove configuration files
    ControlClick, Button5 ; Uninstall
    WinWait, %winTitle3%, Warning: This will, 20
    ControlClick, Button1 ; Yes
    WinWait, %winTitle3%, The following, 20
    ControlClick, Button1 ; OK
    WinWait, %winTitle3%, Program removed, 20
    ControlClick, Button1 ; OK
  • tools\chocolateyUninstall.ps1 Show
    $packageName = 'totalcommander'
    $packageSearch = "Total Commander*"
    $installerType = 'exe'
    $silentArgs = ''
    $validExitCodes = @(0)
    $scriptPath = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
    $ahkFile = Join-Path $scriptPath "chocolateyUninstall.ahk"
    $ahkExe = 'AutoHotKey'
    $ahkRun = "$Env:Temp\$(Get-Random).ahk"
    Copy-Item $ahkFile "$ahkRun" -Force
    Start-Process $ahkExe $ahkRun
    Get-ItemProperty -Path @('HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*',
                             'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*') `
                     -ErrorAction:SilentlyContinue `
    | Where-Object   {$_.DisplayName -like $packageSearch} `
    | ForEach-Object {Uninstall-ChocolateyPackage -PackageName "$packageName" `
                                                  -FileType "$installerType" `
                                                  -SilentArgs "$($silentArgs)" `
                                                  -File "$($_.UninstallString.Replace('"',''))" `
                                                  -ValidExitCodes $validExitCodes}
    Remove-Item "$ahkRun" -Force
  • tools\helpers.ps1 Show
    function Set-TCParameters() {
        $localUser   = 'UserName='  + $(if ($pp.LocalUser)   { '' }  else { '*' })
        $desktopIcon = 'mkdesktop=' + $(if ($pp.DesktopIcon) { '1' } else { '0' })
        $installPath = 'Dir='       + $(if ($pp.InstallPath) { $pp.InstallPath } else { '%ProgramFiles%\totalcmd' })
        $installInf = Join-Path $tcmdWork "INSTALL.INF"
        (Get-Content $installInf)   -Replace 'UserName=',        $localUser `
                                    -Replace 'auto=0',           'auto=1' `
                                    -Replace 'hidden=0',         'hidden=1' `
                                    -Replace 'mkdesktop=1',      $desktopIcon `
                                    -Replace 'Dir=c:\\totalcmd', $installPath | Set-Content $installInf
    function Extract-TCFiles() {
        Write-Verbose "Extract EXE to change install options"
        $parameters = @{
          packageName = "$($env:chocolateyInstall) setup"
          fileFullPath = Get-Item $toolsPath\*.exe
          destination = $tcmdWork
        Get-ChocolateyUnzip @parameters
        Write-Verbose "Extract installer"
        $parameters["packageName"] = "$($env:chocolateyPackageName) installer"
        $parameters["fileFullPath"] = Get-Item $toolsPath\*.zip
        Get-ChocolateyUnzip @parameters
        if ($is64) {
            Move-Item $tcmdWork\INSTALL64.exe  $tcmdWork\INSTALL.exe -Force
            Move-Item $tcmdWork\INSTALL64.inf  $tcmdWork\INSTALL.inf -Force
    function Set-TCShellExtension() {
        Write-Host "Setting shell extension"
        New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT -ea 0 | Out-Null
        #sp HKCR:\Directory\shell -name "(Default)" -Value "Total_Commander"
        mkdir HKCR:\Directory\shell\Total_Commander\command -force | Out-Null
        Set-ItemProperty HKCR:\Directory\shell\Total_Commander -name "(Default)" -Value "Total Commander"
        Set-ItemProperty HKCR:\Directory\shell\Total_Commander\command  -name "(Default)" -Value "$installLocation\$tcExeName /O ""%1"""
    function Set-ExplorerAsDefaultFM() {
        Write-Host "Setting Explorer as default file manager"
        New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT -ea 0 | Out-Null
        'HKCR:\Directory', 'HKCR:\Drive' | ForEach-Object {
            $key = Get-Item $_
            $key = $key.OpenSubKey('shell', 'ReadWriteSubTree')
    function Set-TCAsDefaultFM() {
        Write-Host "Setting Total Commander as default file manager"
        New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT -ea 0 | Out-Null
        Set-ItemProperty HKCR:\Drive\shell -name "(Default)" -Value "open"
        mkdir HKCR:\Drive\shell\open\command -force | Out-Null
        Set-ItemProperty HKCR:\Drive\shell\open\command  -name "(Default)" -Value "$installLocation\$tcExeName /O ""%1"""
        Set-ItemProperty HKCR:\Directory\shell -name "(Default)" -Value "open"
        mkdir HKCR:\Directory\shell\open\command -force | Out-Null
        Set-ItemProperty HKCR:\Directory\shell\open\command  -name "(Default)" -Value "$installLocation\$tcExeName /O ""%1"""
    function Get-TCInstallLocation() {
        if ($Env:COMMANDER_PATH) { return $Env:COMMANDER_PATH }
        $key = Get-ItemProperty 'HKLM:\SOFTWARE\Ghisler\Total Commander' -ea 0
        if ($key) { return $key.InstallDir }
        $installLocation = Get-AppInstallLocation totalcmd
        if ($installLocation) { return $installLocation }
        if (Test-Path c:\totalcmd) { return "c:\totalcmd" }
    function Set-TCIniFilesLocation() {
        Set-ItemProperty 'HKCU:\SOFTWARE\Ghisler\Total Commander' IniFileName '%COMMANDER_PATH%\wincmd.ini'
        Set-ItemProperty 'HKCU:\SOFTWARE\Ghisler\Total Commander' FtpIniName  '%COMMANDER_PATH%\wcx_ftp.ini'
  • tools\ Show
    md5: DACA3E2AE83FB32C74F308903F083A85 | sha1: CC5E69373C4AC35813C437CAF0CBC86A66CD040E | sha256: 80DE9C2C49FC63965CF0E9BCB1A0E6D25187A1613BDE2086BDA79EFBDC8FCEB8 | sha512: B4B0E630899EEB56538ABFA54738F1653DB68121EB6DA97B0F6612E7398AC1F50A1007B85DCE10876CFA4058526671659EF12D970FAFE126F2703D5CFDC0161D
  • tools\tcmd921ax32_64.exe Show
    md5: 1024E52E635AE373453A49CC147992D9 | sha1: 045E178792B3648BE04C1D2D95F8091C553A96CF | sha256: 5330B7A45E9881D885067BF7DFEFA37F4502088D9FD259BF1F2CC3FBDD9E304B | sha512: 150669B4DAD5BBC3DCE6AAF7400D5567668CAE938DC62DFDFFFE2A274693594147F9412AA35DEF88838CAB8E0CD5AE3C6935F8F592750B3118BCFC2916CDDE42

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.


Package Maintainer(s)

Software Author(s)

  • Christian Ghisler


© 1995 Christian Ghisler


Release Notes

Version History

Version Downloads Last updated Status
Total Commander 9.22 3344 Thursday, March 14, 2019 approved
Total Commander 9.21.1 15480 Tuesday, October 16, 2018 approved
Total Commander 9.21 7569 Wednesday, August 15, 2018 approved
Total Commander 9.20 5002 Wednesday, July 4, 2018 approved
Total Commander 4512 Monday, May 28, 2018 approved
Total Commander 10734 Monday, February 26, 2018 approved
Total Commander 9.12 28126 Friday, November 24, 2017 approved
Total Commander 9.10 11955 Friday, October 20, 2017 approved
Total Commander 41754 Monday, April 17, 2017 approved
Show More

Discussion for the Total Commander Package

Ground rules:

  • This discussion is only about Total Commander and the Total Commander package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Total Commander, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus uses cookies to enhance the user experience of the site.