Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file ghostscript输入,用于使用umlaute从CMD中的文件读取文件名_Batch File_Special Characters_Ghostscript - Fatal编程技术网

Batch file ghostscript输入,用于使用umlaute从CMD中的文件读取文件名

Batch file ghostscript输入,用于使用umlaute从CMD中的文件读取文件名,batch-file,special-characters,ghostscript,Batch File,Special Characters,Ghostscript,我正在Windows命令提示符下使用GhostScript 9.20。Ghostscript应从文件中读取文件名,尽管有些文件的文件名“Jürgen1.pdf”中有“Umlaute”表示例如üäö “Jürgen2.pdf”。但是Ghostscript 9.20吞下了umlautü,根本无法用Umlaute读取文件名。我做错了什么 chcp 1252 set file_output=Jürgen_merged dir "Jürgen*.pdf" /b /o:n > files.txt "C

我正在Windows命令提示符下使用GhostScript 9.20。Ghostscript应从文件中读取文件名,尽管有些文件的文件名“Jürgen1.pdf”中有“Umlaute”表示例如üäö “Jürgen2.pdf”。但是Ghostscript 9.20吞下了umlautü,根本无法用Umlaute读取文件名。我做错了什么

chcp 1252
set file_output=Jürgen_merged
dir "Jürgen*.pdf" /b /o:n > files.txt
"C:\Program Files (x86)\Gawk\gawk4.1\gawk" "{ print \"\042\" $0 \"\042\" }" files.txt > files.lst
"C:\Program Files (x86)\gs\gs9.20\bin\gswin64c" -sPAPERSIZE=a4 -sDEVICE=pdfwrite -o "%file_output%.pdf" @files.lst
del files.lst

我认为问题在于@file.list语法不支持从Windows代码页到UTF-8的转换,我们必须在内部使用UTF-8。这是因为@file.list选项的内容实际上是在Postscript中处理的(Postscript不知道代码页之类的内容)。因此,我认为如果您将file.lst文件转换为UTF-8编码,它可能会工作。

现在,使用updatetodie@file函数和该文件中的“Umlaute”可以工作。该错误已修复。

应该可以正常工作,我建议您打开一个错误报告,其中包含一个显示问题的文件。只有一个文件和一个简单的命令行,请不要脚本。我试图用这个iconv-f WINDOWS-1252-t UTF-8 files.txt>files.lst将@files.lst转换为UTF8,但它仍然不工作或吞没了Umlaut。不,它不工作,请参阅我的文章,关于从iconv-f WINDOWS-1252-t UTF-8 txt转换。我用Notepad++检查了该文件,该文件确实在没有BOM的情况下转换为UTF-8。Ghostscript仍然忽略了Umlaute,因此无法从文件列表中读取文件。正如我的同事在上面所说的,在attach what打开一个bug,我们需要复制问题,我们将对此进行研究。我不熟悉这种bug报告,因为我不是专业用户。Jut将Ghostscript用作私人用户。我会尽力的。与此同时,我做了一个变通,通过gawk将其传递给脚本,然后再传递给这样的变量,这里的代码是:gawk“BEGIN{ORS=\“\n\”;RS=\“\”}{gsub(\“\n\”,\“\042\042\”)}1“files.lst>files.txt set/P files=