Назад | Перейти на главную страницу

как я могу передать каталог (путь) файла в качестве параметра?

как я могу передать каталог (путь) файла в качестве параметра в

  1. командный файл в операционной системе Windows
  2. bash файл в операционной системе unix

Чтобы передать каталог в командный файл Windows, вы помещаете его в командную строку командного файла. При работе с путями лучше поставить их вокруг "", так как они могут содержать пробелы и т. Д., Например.

c:\temp\batchfile.bat "c:\program files"

для ссылки на аргументы командной строки в вашем пакетном файле используйте %1 %2 и так далее.

Если, например, у вас был простой командный файл (c: \ temp \ b.bat) вроде этого

dir %1
exit /b 3

и вы назвали его, как указано выше, вы получите список каталогов c: \ program files.

Я собираюсь предположить, что вы хотите передать путь Windows к сценарию unix, а затем получить сценарий unix для запуска командного файла в Windows и передать путь Windows, указанный в пакетном файле Windows.

Как и в случае с окнами, вы передаете аргументы сценарию bash в командной строке. Путь нужно заключить в "". bash попытается интерпретировать любые специальные символы в аргументах командной строки, поэтому вам также нужно заключить аргумент пути в '', например.

bashscript '"c:\program files"'

Для ссылки на аргументы командной строки в bash используйте $1 $2 и т.п.

Если ваш сценарий bash был

#!/bin/bash
ssh -l admin host 'cmd /c c:/temp/b.bat ' $1

тогда вы получите список каталогов c: \ program files, и 3 будут возвращены в $ ?.