2016-06-20 10 views
0

Ich versuche, ein Skript auf einen 2008 Server ausgeführt werden, die eine Batch-Datei mit den folgenden Parametern aufgerufen:Windows-Batch: forfiles Ausgabedateinamen mit seltsamen Zeichen

forfiles -p %log_dir% -s -m *.* -d -3 /C "cmd /c echo @path" > %cfg_dir%\Filelist.txt" 

Mein Problem ist, dass die Ausgabe, die sein wird, in eine Datei geschrieben, wann immer der Dateiname nicht-ASCII-Zeichen hat (wie é, ç, ã), wird mit dem falschen Zeichen, beispielsweise geschrieben:

die gefundene Datei ist

S:\FOLDER\SUBFOLDER\0_Certi**dão** Predial.pdf 

und es wird in die Ausgabedatei geschrieben als

"S:\FOLDER\SUBFOLDER\0_Certi**d¦o** Predial.pdf" 

habe ich verändert bereits die charset bis 850 (es war 470), aber der Ausgang kommt immer noch das gleiche aus.

Antwort

0

versuchen

for /f "tokens=2 delims=:" %%a in ('chcp') do set src_cp=%%a 

chcp 65001 & rem or chcp 1212 

forfiles -p %log_dir% -s -m *.* -d -3 /C "cmd /c echo @path" > %cfg_dir%\Filelist.txt" 

chcp %src_cp% 
+0

die oben genannten Code bricht Ich bin nicht sicher, wo, aber Sie mir eine große Hilfe war gab. Ich habe die Zeile chcp 65001 vor dem forfiles Befehl, den ich vorher geschrieben habe, eingefügt und es hat funktioniert. Danke noch einmal. – biocoma

+0

@ biocoma übrigens Ich denke, dass Ihre Sprache Portugiesisch ist, können Sie [link] (https: // technet.microsoft.com/es-es/library/bb490874.aspx) überprüfen. Codepage _65001_ ist UTF-8 – elzooilogico