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

passing folder path as argument from windows batch file to cygwin bash script

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

find "" -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 是包含上述查找命令的 shell 脚本。用户应该将文件夹路径传递给批处理文件,然后应该将文件夹路径参数传递给 shell 脚本中的查找命令。

但我收到以下错误:

FIND: Invalid Switch

请帮忙。

FIND: Invalid Switch 是来自 windows 的错误消息,而不是来自 cygwin 的

因此您需要使用登录 shell 来正确设置 PATH

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

另外一定要放在第一行row_count.sh #!/bin/bash