Führen Sie piconv innerhalb des Perl-Skripts für die Stapelverarbeitung aus

392
gauss76

Ich versuche, eine Reihe von Windows 10-Dateien in einem Verzeichnis von ANSI nach UTF-8 zu konvertieren. Ich habe den folgenden Befehl gefunden, der in einer Eingabeaufforderung für eine einzelne Datei funktioniert, wenn der Befehl in dem Ordner ausgeführt wird, in dem sich die Quelldatei befindet:

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

Ich brauche jedoch eine Möglichkeit, dies für ALLE Dateien in einem ausgewählten Ordner zu tun. Ich dachte, ich könnte perl mit dem Befehl verwenden:

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

$ SOURCE_File und $ TARGET_File enthalten im Allgemeinen die vollständigen Pfade der Dateien.

ABER das funktioniert nicht! Ich erhalte Fehler wie ungültiges Argument oder kann Datei nicht öffnen.

Weiß jemand, wie man den Befehl piconv in ein Perl-Skript einfügt. Ich kann die Schleife für jede Datei in einem bestimmten Verzeichnis einrichten. Ich kann den Befehl piconv, der jede Datei konvertiert, einfach nicht ausarbeiten.

Danke vielmals

Gauss76

0

1 Antwort auf die Frage

0
Toto

Put all arguments of piconv in a single string:

system("piconv -f windows-1252 -t UTF-8 $SOURCE_File >$TARGET_File"); 
OK, es scheint, als hätte ich das Offensichtliche versäumt, WIEDER! Vielen Dank an Toto für Ihre Hilfe. gauss76 vor 6 Jahren 0
@ gauss76: Gern geschehen, froh, es hilft. Toto vor 6 Jahren 0