我正在Windows Vista中的.bat文件中运行Gnu iconv(很抱歉!)

"C:\Program Files\GnuWin32\bin\iconv.exe" -f ISO-8859-1 -t UTF-8 "%1" > "%1"

如果我打电话
> batch.bat "S:\gutschein_info.php"

它执行为
> "C:\Program Files\GnuWin32\bin\iconv.exe" -f ISO-8859-1 -t UTF-8
  "S:\gutschein_info.php"  1> "S:\gutschein_info.php"

然后gutschein_info.php为空。 “1>”从何而来?为什么不起作用?

顺便说一句:最后,我想转换整个文件夹:
FOR %%i IN (%1*) DO "C:\Program Files\GnuWin32\bin\iconv.exe" -f ISO-8859-1 -t UTF-8 %%i > %%i

最佳答案

如果输入文件与输出文件相同,则iconv不起作用。因此,iconv ... %1 > %1可以为空,但iconv ... %1 > utf8/%1可以工作。我的剧本:

cd "S:\gutscheine"
S:
mkdir utf8
FOR %%i IN (*) DO "C:\Program Files\GnuWin32\bin\iconv.exe" -f ISO-8859-1 -t UTF-8 %%i > utf8/%%i
C:

10-06 13:15