Seu script deve funcionar bem se você passar o nome do arquivo como um argumento. Por exemplo, salve-o como hash.bat e execute hash.bat Windows8.1-KB2862152-x86.cab
na linha de comando.
Esse script renomeia o arquivo para Windows8.1-KB2862152-x86.cab_bc44b5c4daca0fb2a7b596bafb3d751231983c0e
Se bem entendi, você quer a extensão .cab no final e deseja que o nome do arquivo seja todo em minúsculas.
Para corrigir a parte .cab, use substituição. Altere a última linha do seu script de:
ren %FULLNAME% %FULLNAME%_%hash%
para
ren %FULLNAME% %FULLNAME:.cab=%_%hash%.cab
Agora, adicione outra linha para renomear todos os arquivos para minúsculas. dir / l lista a saída em letras minúsculas, portanto, liste todos os arquivos e renomeie-os de acordo com a saída:
for /f "tokens=*" %%a in ('dir /l /b /s /a-d') do ren "%%a" "%%a"
Então, seu script deve ser:
@ECHO OFF
SET FULLNAME=%~f1
for /f "delims=" %%a in ('sha1.exe -s %FULLNAME%') do SET hash=%%a
ren %FULLNAME% %FULLNAME:.cab=%_%hash%.cab
for /f "tokens=*" %%a in ('dir /l /b /s /a-d') do ren "%%a" "%%a"
Você precisará modificar o script do diretório de trabalho ou executar o script no mesmo diretório em que armazena os arquivos .cab.