我想在 windows 的所有文件中用另一个字符串替换一个字符串。所有具有相同扩展名的文件。我尝试使用 perl one liner 命令,但似乎“*”不适用于 Windows。
perl.exe -pi.bak -e "s/Hello/ABCD/ge" C:\Users\Jamimb\Desktop\Test\*.tmp
所以请帮忙。
您可以在 Perl 中使用glob
.
此外,/e
在这种情况下,替换上的 ("eval") 修饰符是错误的。如果strict
到位,它将导致Bareword not allowed错误,但如果没有它,它只是一个无操作,ABCD
评估为'ABCD'
.
尝试这个
perl -i.bak -pe "BEGIN{@ARGV = map glob, @ARGV} s/Hello/ABCD/g" C:\Users\Jamimb\Desktop\Test\*.tmp
你可以试试这个(也许):
for %f in (C:\Users\Jamimb\Desktop\Test\*.tmp) do perl.exe -pi.bak -e "s/Hello/ABCD/g" %f