将文件夹路径作为参数从Windows批处理文件传递到cygwin bash脚本

时间:2018-08-28 14:00:11

标签: bash shell cygwin

我正在尝试在shell脚本中执行以下命令:

find "$1" -type f -name "*.DAT" -exec sed -e 's/.*/\"&\"/' {} ';' -exec xargs wc -l ';'

该命令应该从Windows批处理文件运行,如下所示:

set arg1=%1
C:\cygwin64\bin\bash.exe row_count.sh %arg1%

其中row_count.sh是包含上面的find命令的shell脚本。应该将用户的文件夹路径传递给批处理文件,然后将文件夹路径参数传递给Shell脚本中的find命令。

但是我遇到以下错误:

FIND: Invalid Switch

请帮助。

1 个答案:

答案 0 :(得分:1)

FIND: Invalid Switch是Windows的错误消息,而不是cygwin的错误消息。

因此,您需要使用登录Shell正确设置PATH

C:\cygwin64\bin\bash.exe -l row_count.sh %arg1%

此外,请确保将row_count.sh放在第一行 #!/bin/bash