0

我需要对以 unicode 命名的文件运行一个进程吗?如何使用批处理文件?

我试过了 :

 dir /b %folder% > dir.lst

 ::cmd /u /c dir /b %folder% > dir.lst
 FOR /F "delims= tokens=*" %%G IN (dir.lst) DO ( 
 echo %%G
 @set filename2=%%G
 @echo %filename2%


 @set filename=%pathlogs%\!filename2!
 @echo %filename%
 @echo %filename2%
 @%binaries%\gawk -v fn=%filename% -v fn2=%filename2% -f %scripts%\AlexBank_barcode.awk                               %folder%\%filename2% 2> %scripts%\AlexBank_barcode.fil
 @%binaries%\sort -k 1.129,1.144 -T F:\tmp  %pathlogs%\%filename2%.log >      %pathlogs%\%filename2%.log.tmp 2> %scripts%\%filename2%".sort.fil"
 @set filename3=%filename%.log.tmp1
 @%binaries%\gawk -f %scripts%\AlexBank_collect_barcode.awk %pathlogs%\%filename2%.log.tmp 2> %scripts%\AlexBank_collect_barcode.fil
 @set filename3=%filename%.separate_all.log
 @%binaries%\gawk -f %scripts%\AlexBank_separate_barcode.awk %pathlogs%\%filename2%.log.tmp1 2> %scripts%\AlexBank_separate_barcode.fil

 @set filename3=%filename%.separate_statement_le.awk.log

@%binaries%\gawk -v fn=%filename3% -f %scripts%\AlexBank_separate_statement_le.awk %pathlogs%\%filename2%.log.tmp1 2> %scripts%\%filename2%".AlexBank_separate_statement_le.awk.fil" @set filename3=%filename%.separate_statement_gt.awk.log @%binaries%\gawk -v fn=%filename3% -f %scripts%\AlexBank_separate_statement_gt.awk %pathlogs%\%filename2%.log.tmp1 2> %scripts %\%filename2%".AlexBank_separate_statement_gt.awk.fil")

4

1 回答 1

0

您在这里有两个选择:

  1. 为控制台窗口设置 TrueType 字体
  2. 不要for /f用于迭代dir /b. 在绝大多数情况下,这是不必要的,当您遇到的设置略有错误时,Unicode 文件名更复杂、更脆弱和失败。您可以使用for直接迭代文件:

    for %%F in (%folder%\*) do ...
    
于 2013-08-27T20:46:54.230 回答