WSL win bash For command replace substring (former extension)

WSL win bash For command replace substring (former extention)

我正在使用一个程序,该程序使用调用它的命令行从另一种图像类型创建一种图像类型。我喜欢这样:

对于 *.bmp 中的文件; do (my-path-to-app).exe (program tasks) "$FILE" "$FILE.png"

结果是Myimage.bmp.png

显然我希望最终结果是从 Myimage.bmp 到 Myimage.png 而不是 myimage.bmp.png。那么我该如何删除之前的.bmp呢?我需要在 DO 之前或之后指定一些修剪吗?我做错了

这可以通过以下方式完成:

for FILE in *.bmp; do echo "$FILE" "${FILE%bmp}png"; done

${FILE%bmp}"$FILE"

的末尾删除 bmp