Como anexar com segurança um nome de arquivo a um argumento de caminho de pasta do Windows?

Suponha que eu tenho um script em lote que espera um caminho de pasta no argumento%1. Quero anexar um nome de arquivo ao caminho e usá-lo em um comando. Existe uma maneira simples de fazer isso de maneira confiável em todas as situações?

eu não queroPUSHD %1 e simplesmente ignore o caminho posteriormente. Suponha que minha lógica exija que o diretório atual permaneça inalterado.

A questão é a%1 o argumento pode ou não ter uma barra invertida final - ou seja,c:\path ouc:\path\.

Normalmente eu posso simplesmente usar"%~1\file.ext" porque o Windows trata"c:\path\file.ext" e"c:\path\\file.ext" identicamente.

Mas há um caso desagradável -c:\

Os seguintes comandos produzem este erro:The filename, directory name, or volume label syntax is incorrect.

dir "c:\\file.ext"
del "c:\\file.ext"

O estranho é que esses comandos funcionam bem:

if exist "c:\\file.ext" echo OK
echo text>"c:\\file.ext"
copy "c:\\file.ext" "somePath"
xcopy "c:\\file.ext" "somePath"

Há outro caso problemático -c:, significando que o diretório atual na unidade C :, dará o resultado errado se eu adicionar uma barra invertida."c:file.ext" não é o mesmo que"c:\file.ext".

Existe uma maneira simples de anexar com segurança um nome de arquivo a qualquer argumento do caminho da pasta?

Não estou preocupado com os caminhos UNC, pois não os uso com muita frequência e acredito que existem alguns comandos que não funcionam bem com os caminhos UNC.

Nota: Este é um caso em que estou postando uma pergunta e resposta emparelhadas. Esse problema tem sido um problema para mim há vários anos e, recentemente, descobri uma solução simples que achei interessante para outras pessoas.