Para passar um diretório para um arquivo de lote do Windows, coloque-o na linha de comando do arquivo de lote. Ao trabalhar com caminhos, é bom colocar "" em torno deles, pois eles podem conter espaços, por exemplo, etc.
c:\temp\batchfile.bat "c:\program files"
para referenciar os argumentos da linha de comando no seu arquivo de lote, use %1
%2
e assim por diante.
Se, por exemplo, você tivesse um arquivo de lote simples (c: \ temp \ b.bat) como este
dir %1
exit /b 3
e você o chamou como acima, você obteria uma listagem de diretório de c: \ arquivos de programas.
Eu vou adivinhar agora que o que você quer fazer é passar um caminho do Windows para um script unix e, em seguida, obter o script unix para executar um arquivo em lotes no Windows e passar o caminho do Windows fornecido para o arquivo de lote do Windows.Da mesma forma que as janelas, você passa os argumentos para um script bash na linha de comando. Você precisa colocar o caminho em "". O bash tentará interpretar qualquer caractere especial em seus argumentos de linha de comando, então você também precisa incluir o argumento path em "por exemplo".
bashscript '"c:\program files"'
Para referenciar os argumentos da linha de comando no bash use $1
$2
etc.
Se o seu script bash foi
#!/bin/bash
ssh -l admin host 'cmd /c c:/temp/b.bat ' $1
então você obteria uma listagem de diretório de c: \ arquivos de programas e 3 seriam retornados para $ ?.