executa o piconv dentro do script perl para conversão em lote

0

Estou tentando converter um conjunto de arquivos do Windows 10 em um diretório de ANSI para UTF-8. Eu encontrei o seguinte comando que funciona em um prompt de comando para um único arquivo se o comando for executado a partir da pasta onde o arquivo de origem existe:

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

No entanto, eu preciso de alguma maneira de fazer isso para todos os arquivos em uma pasta escolhida. Eu pensei que eu poderia usar perl com o comando:

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

em que $ SOURCE_File e $ TARGET_File conterão, em geral, os caminhos completos dos arquivos.

MAS, isso não funciona! Eu recebo erros como argumento inválido ou não consigo abrir o arquivo.

Alguém sabe como colocar o comando piconv em um script perl? Eu posso configurar o loop para cada arquivo em um determinado diretório Eu simplesmente não posso trabalhar fora o comando piconv que converte cada arquivo.

Muito obrigado

Gauss76

    
por gauss76 19.09.2017 / 13:43

1 resposta

0

Coloque todos os argumentos de piconv em uma única string:

system("piconv -f windows-1252 -t UTF-8 $SOURCE_File >$TARGET_File");
    
por 19.09.2017 / 14:01