(Aviso inicial: esta não é uma resposta perfeita para a sua pergunta, mas parece útil / interessante o suficiente para compartilhar.)
Se você salvar o texto a seguir em um arquivo com extensão .bat ou .cmd (por exemplo, runconditional.cmd):
@echo off
if %~z1 LSS 1048576 (
notepad.exe %1
) else (
c:\my\path\to\notepad++.exe %1
)
... então você deve ser capaz de usá-lo para lançar programas diferentes dependendo do tamanho de um arquivo. (Coloquei 1048576 - o número de bytes em um megabyte - no script, mas você pode substituí-lo por um número de sua escolha ou até transformá-lo em um segundo parâmetro do script.) O uso de exemplo seria algo como:
runconditional.cmd c:\mysmallfile.txt
(Você pode executar isso a partir de um Prompt de Comando ou Iniciar ... Executar.) O próximo passo seria associar esse script aos arquivos de sua escolha. Não tenho certeza se você pode associar diretamente um tipo de arquivo diretamente a um script, mas pelo menos você pode associá-lo a:
cmd.exe /c c:\path\to\runconditional.cmd
Uma possível desvantagem dessa abordagem é que você pode ver uma janela do console piscando na tela entre clicar duas vezes no ícone do arquivo e ver o lançamento do bloco de notas (ou notepad ++ ou ...).