Recent Posts

Pages: 1 2 3 4 [5] 6 7 8 9 10
41
I fixed the cropped out elements by changing my Systemwide [WindowBlinds] Font to Segoe UI, from the huge Lucinda Console ! Now everything appears prim & proper  8)
42
I got 2 scripts written by AI's, was wondering if either of them will work ? Script #1 is by far a more powerful AI:

Script #1::
Code: [Select]
@var $i;
@var $item;
@var $path;

// ============================================================
// CONFIGURATION SECTION
// ============================================================

// 1. Folders to EMPTY (Delete all files and subfolders inside, keep folder)
@var $foldersToEmpty = array(
    "D:\\Games\\AOE II HD\\Logs\\",
    "D:\\Games\\AOMX-TOTD\\Logs\\"
);

// 2. Folders to clean specifically (e.g. *.log)
// format: array( "Folder Path", "Mask" )
@var $foldersToCleanMask = array(
    "D:\\Games\\ORA\\Support\\Replays\\cnc\\", "*.log",
    "D:\\Games\\ORA\\Support\\Replays\\d2k\\", "*.log"
);

// 3. Specific Files to Delete
@var $filesToDelete = array(
    "D:\\Games\\Delta Force 3\\DDrawCompat-DFLW.log",
    "D:\\Games\\Delta Force 4\\DDrawCompat-DFTFD.log"
);

// ============================================================
// EXECUTION SECTION
// ============================================================

// --- Task 1: Empty Contents of Folders ---
for( $i = 0; $i < count($foldersToEmpty); $i++ )
{
    $path = $foldersToEmpty[$i];
    if( FileSystem_PathIsFolder( $path ) )
    {
        // Call custom function
        EmptyFolderContents( $path );
    }
}

// --- Task 2: Delete by Mask (*.log) ---
// Note: Array is Key/Value pairs, so we step by 2
for( $i = 0; $i < count($foldersToCleanMask); $i = $i + 2 )
{
    $path = $foldersToCleanMask[$i];
    @var $mask = $foldersToCleanMask[$i+1];
   
    if( FileSystem_PathIsFolder( $path ) )
    {
        DeleteFilesByMask( $path, $mask );
    }
}

// --- Task 3: Delete Specific Files ---
for( $i = 0; $i < count($filesToDelete); $i++ )
{
    $path = $filesToDelete[$i];
    if( FileSystem_PathIsFile( $path ) )
    {
        FileSystem_DeleteFile( $path );
    }
}

// ============================================================
// FUNCTIONS
// ============================================================

// Function to delete all contents (files + dirs) inside a path
@func EmptyFolderContents( $rootPath )
{
    // Ensure path ends with slash
    if( StrIsWildMatch( "*\\", $rootPath ) == 0 )
    {
        $rootPath = $rootPath ^ "\\";
    }

    // 1. Delete ALL Files
    @var $files = MC.Folder.GetItems( $rootPath, "*", "FILES" );
    @var $f;
    @var $count = count($files);
   
    for( $f = 0; $f < $count; $f++ )
    {
        // Full path construction
        @var $fullFilePath = $rootPath ^ $files[$f];
        FileSystem_DeleteFile( $fullFilePath );
    }

    // 2. Delete ALL Sub-Folders
    // We do this after files. FileSystem_DeleteFolder is recursive.
    @var $dirs = MC.Folder.GetItems( $rootPath, "*", "FOLDERS" );
    $count = count($dirs);

    for( $f = 0; $f < $count; $f++ )
    {
        @var $fullDirPath = $rootPath ^ $dirs[$f];
        FileSystem_DeleteFolder( $fullDirPath );
    }
}

// Function to delete specific file masks inside a path
@func DeleteFilesByMask( $rootPath, $fileMask )
{
    // Ensure path ends with slash
    if( StrIsWildMatch( "*\\", $rootPath ) == 0 )
    {
        $rootPath = $rootPath ^ "\\";
    }

    // Get files matching mask
    @var $files = MC.Folder.GetItems( $rootPath, $fileMask, "FILES" );
    @var $f;
    @var $count = count($files);

    for( $f = 0; $f < $count; $f++ )
    {
        @var $fullFilePath = $rootPath ^ $files[$f];
        FileSystem_DeleteFile( $fullFilePath );
    }
}

Alternate Script #2::
Code: [Select]
@var $foldersToEmpty = {
    "D:\Games\AOE II HD\Logs\";
    "D:\Games\AOMX-TOTD\Logs\"
};

@var $logFolders = {
    "D:\Games\ORA\Support\Replays\cnc\";
    "D:\Games\ORA\Support\Replays\d2k\"
};

@var $specificFiles = {
    "D:\Games\Delta Force 3\DDrawCompat-DFLW.log";
    "D:\Games\Delta Force 4\DDrawCompat-DFTFD.log"
};

// ──────────────────────────────────────────────────
// 1. Completely empty selected folders (keep folder itself)
// ──────────────────────────────────────────────────
@var $n = 0;
@var $count = @arraysize($foldersToEmpty);

for( $n = 0; $n < $count; $n++ )
{
    @var $path = $foldersToEmpty[$n];

    // Delete EVERYTHING inside (files + folders + subfolders recursively)
    DeleteFiles $path* /F /S /Q;

    // Optional: show what was cleaned (remove // if you want feedback)
    // Log "Emptied: " + $path;
}

// ──────────────────────────────────────────────────
// 2. Delete only *.log files in specific folders (keep everything else)
// ──────────────────────────────────────────────────
$n = 0;
$count = @arraysize($logFolders);

for( $n = 0; $n < $count; $n++ )
{
    @var $path = $logFolders[$n];
    DeleteFiles $path*.log /F /S /Q;
    // Log "Deleted *.log in: " + $path;
}

// ──────────────────────────────────────────────────
// 3. Delete specific individual files
// ──────────────────────────────────────────────────
$n = 0;
$count = @arraysize($specificFiles);

for( $n = 0; $n < $count; $n++ )
{
    @var $file = $specificFiles[$n];
    if( @fileexists($file) )
    {
        DeleteFile $file;
        // Log "Deleted: " + $file;
    }
}

// ──────────────────────────────────────────────────
// Finished
// ──────────────────────────────────────────────────
MessageBox "info", "All cleanup tasks completed successfully!", "Multi Commander Cleanup";

P.S: 3 types of Delete Operations: Delete contents inside certain folders, delete specific filetypes inside certain folders, and delete individual files. I want them permanently deleted but /w Confirmation !
43
The issue is a data integrity problem within the Aliases Manager. A critical bug causes data loss when a user searches for an alias, sorts the results by clicking the Alias column, and then applies the changes. This action unexpectedly deletes all aliases except those in the search results. The expected behavior is for the sort function to apply to all aliases, not just the filtered ones. Furthermore, the system should restore the full alias list when the search query is cleared. This behavior is considered a fatal flaw, as it results in the loss of aliases and can be triggered by a specific sequence of actions.
P.S: It only happens when you click to Sort on populated Search fields !
44
Support and Feedback / Re: How to disable Multi Commander an update is available
« Last post by KT on November 16, 2025, 02:51:35 »
Thank you to both of you for the replies.

I have disabled update check and made sure Auto send crash report is set to 5MB file.

45
I don't have a script that does that now. I will check later if I have one that scan filesystem. It a bit complex. need to use function. and call function for each folder recursivly.

Alright, appreciate it ! well hope it's not too complex ! But nevertheless I would love to tweak it to my needs !

I had something that generated pdf before but it stopped working after webpage redesign and I had not had time to look into it.
but all documentation is available on github. at https://github.com/MultiCommander/MultiCommander-Documentation

Thanks a million ! 🙏
46
I don't have a script that does that now. I will check later if I have one that scan filesystem. It a bit complex. need to use function. and call function for each folder recursivly.

I had something that generated pdf before but it stopped working after webpage redesign and I had not had time to look into it.
but all documentation is available on github. at https://github.com/MultiCommander/MultiCommander-Documentation 
47
If it hangs for you.. Maybe you should send in a dumpfile when it happens, else there is almost no chance of it being fixed.
https://multicommander.com/Docs/troubleshooting-hang
48
Could you perhaps give me a rudimentary practical or skeletal code example please ? The Online Documentation is far too vague and only shows how to assign the DeleteFiles to a Variable (incomplete example), nothing about how to Enumerate the Folder and Match File Criteria, then delete. There should be an offline Help Documentation PDF IMO.
49
Menu Bar > Configuration > Core Settings > Under "System" you'll find "Check for new version at Startup" and "Check for and download an update of a Beta version if available".
Uncheck both of these.
50
Support and Feedback / How to disable Multi Commander an update is available
« Last post by KT on November 15, 2025, 00:35:40 »
I have reverted to a previous version Multi Commander (15.3 Build 3084) because the two recent versions can hang or crash when I am doing file or folder copy, move, or delete. I have already tried doing a clean install.

How do I disable the startup dialog that always asks to "Update Now" or "Ask Later" (next time I open the app)?

I could not find a checkbox to enable or disable "Check for Update".

Pages: 1 2 3 4 [5] 6 7 8 9 10