在 perl 脚本中运行 piconv 进行批量转换

在 perl 脚本中运行 piconv 进行批量转换

我正在尝试将目录中的一组 Windows 10 文件从 ANSI 转换为 UTF-8。我发现如果从源文件所在的文件夹运行以下命令,该命令在单个文件的命令提示符中有效:

piconv -f windows-1252 -t UTF-8 < SOURCE_File.txt > TARGET_File.txt

但是,我需要某种方式对所选文件夹中的所有文件执行此操作。我想我可以使用 perl 和以下命令:

my $Test=system("piconv","-f", "windows-1252", "-t", "UTF-8"," < $SOURCE_File > ","$TARGET_File");

其中 $SOURCE_File 和 $TARGET_File 通常包含文件的完整路径。

但是,这不起作用!我收到诸如“参数无效”或“无法打开文件”之类的错误。

有人知道如何将 piconv 命令放入 perl 脚本中吗?我可以为给定目录中的每个文件设置循环,但我就是搞不懂转换每个文件的 piconv 命令。

非常感谢

高斯76

答案1

将所有参数放在piconv一个字符串中:

system("piconv -f windows-1252 -t UTF-8 $SOURCE_File >$TARGET_File");

相关内容