Here is an updated version that supports unicode, and a large amount of input files:
Code: Select all
[em_cpJunction]
cmd=*%COMSPEC% /S /C
param=? ""%%APPDATA%%\GHISLER\usercmd-cplnk.bat" "%UF" "%P" "%T" /J"
menu=Make directory junction or file symlink in the opposite panel for selected files
button=%COMMANDER_PATH%\WCMICON2.DLL,65
iconic=1
[em_cpSymlink]
cmd=*%COMSPEC% /S /C
param=? ""%%APPDATA%%\GHISLER\usercmd-cplnk.bat" "%UF" "%P" "%T" /D"
menu=Make directory or file symlink in the opposite panel for selected files
button=%COMMANDER_PATH%\WCMICON2.DLL,65
iconic=1
[em_cpHardJunction]
cmd=*%COMSPEC% /S /C
param=? ""%%APPDATA%%\GHISLER\usercmd-cplnk.bat" "%UF" "%P" "%T" /J /H"
menu=Make directory junction or file hardlink in the opposite panel for selected files
button=%COMMANDER_PATH%\WCMICON2.DLL,65
iconic=1
[em_cpHardSymlink]
cmd=*%COMSPEC% /S /C
param=? ""%%APPDATA%%\GHISLER\usercmd-cplnk.bat" "%UF" "%P" "%T" /D /H"
menu=Make directory symlink or file hardlink in the opposite panel for selected files
button=%COMMANDER_PATH%\WCMICON2.DLL,65
iconic=1
[em_cpJunctionClear]
cmd=em_cpJunction,cm_ClearAll
menu=Make directory junction or file symlink in the opposite panel for selected files, clears selection
button=%COMMANDER_PATH%\WCMICON2.DLL,65
iconic=1
[em_cpSymlinkClear]
cmd=em_cpSymlink,cm_ClearAll
menu=Make directory or file symlink in the opposite panel for selected files, clears selection
button=%COMMANDER_PATH%\WCMICON2.DLL,65
iconic=1
[em_cpHardJunctionClear]
cmd=em_cpHardJunction,cm_ClearAll
menu=Make directory junction or file hardlink in the opposite panel for selected files, clears selection
button=%COMMANDER_PATH%\WCMICON2.DLL,65
iconic=1
[em_cpHardSymlinkClear]
cmd=em_cpHardSymlink,cm_ClearAll
menu=Make directory symlink or file hardlink in the opposite panel for selected files, clears selection
button=%COMMANDER_PATH%\WCMICON2.DLL,65
iconic=1
Batch script to put into the "%APPDATA%\GHISLER\usercmd-cplnk.bat" path:
Code: Select all
:: CpLnk <listfile:utf8-bom> <srcdir> <tgtdir> <dirswitch> [fileswitch]
@echo off
chcp 65001 > nul
set "rmvBom=^|((pause^&pause^&pause^)^>nul^&findstr x*^)"
for /f "tokens=*" %%i in ('type "%~1" %rmvBom%') do ( if exist "%~2%%~i\" ( mklink %4 "%~3%%~i" "%~2%%~i" ) else ( mklink %5 "%~3%%~i" "%~2%%~i" ) )