como posso passar um diretório de arquivos (path) como parâmetro?

3

como eu posso passar um diretório de arquivos (caminho) como parâmetro para

  1. arquivo em lote no sistema operacional Windows
  2. arquivo bash no sistema operacional do UNIX
por Mohammad AL-Rawabdeh 04.10.2010 / 09:17

1 resposta

3

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 $ ?.

    
por 04.10.2010 / 10:22