как я могу передать каталог (путь) файла в качестве параметра в
Чтобы передать каталог в командный файл 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 будут возвращены в $ ?.