запустить piconv в Perl-скрипте для пакетного преобразования

272
gauss76

Я пытаюсь преобразовать набор файлов 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, которая преобразует каждый файл.

Большое спасибо

Gauss76

0

1 ответ на вопрос

0
Toto

Поместите все аргументы piconvв одну строку:

system("piconv -f windows-1252 -t UTF-8 $SOURCE_File >$TARGET_File"); 
ОК, похоже, я упустил очевидное, СНОВА! Большое спасибо Тото за вашу помощь. gauss76 6 лет назад 0
@ gauss76: Пожалуйста, рад, что это помогает. Toto 6 лет назад 0