我想用Windows中所有文件中的另一个字符串替换字符串。 所有扩展名相同的文件。 我尝试使用perl one liner命令,但似乎“*”不适用于Windows。
perl.exe -pi.bak -e "s/Hello/ABCD/ge" C:\Users\Jamimb\Desktop\Test\*.tmp
所以请帮忙。
答案 0 :(得分:2)
您可以使用glob
从Perl中显式扩展命令行参数。
此外,替换中的/e
(“eval”)修饰符在此实例中是错误的。如果strict
到位,则会导致 Bareword不允许错误,但如果没有,则只是一个no-op,因为ABCD
的评估为'ABCD'
。< / p>
试试这个
perl -i.bak -pe "BEGIN{@ARGV = map glob, @ARGV} s/Hello/ABCD/g" C:\Users\Jamimb\Desktop\Test\*.tmp
答案 1 :(得分:0)
你可以尝试这个(也许):
for %f in (C:\Users\Jamimb\Desktop\Test\*.tmp) do perl.exe -pi.bak -e "s/Hello/ABCD/g" %f