"Invalid argument" 在 Windows 10 上执行 Perl 时出错

"Invalid argument" error when executing Perl on Windows 10

我有这个 perl 脚本。

perl -i -0pe 's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[](..\/figures\/-tn.png)/mg' */*.markdown

这适用于 MacOS X,但当我在 Windows 10 上执行此命令时,出现以下错误消息:

C:\Users\hello\Desktop\progit\en>perl -i -0pe "s/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[](..\/figures\/-tn.png)/mg"
*/*.markdown

Can't open */*.markdown: Invalid argument.

什么可能导致 Windows 10 出现此问题?我在 Windows.

上使用 Strawberry Perl

当我尝试 Perl from MinGW 时,没有错误。基于 Cygwin 的 perl 似乎没有问题(或绕过这个问题)。

另请参阅:

这不是 Strawberry 的问题。这是一个 shell 问题。 Bash 很乐意将多个通配符扩展为一长串命令行参数。微软的shell没那么多。