我需要在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> %脚本%\%文件名2% “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> %脚本%\%文件名2% “AlexBank_separate_statement_gt.awk.fil” )
答案 0 :(得分:0)
这里有两个选项:
请勿使用for /f
来迭代dir /b
的输出。在绝大多数情况下,这是不必要的,当你遇到的设置稍有不对时,更难以正确,更脆弱并且在Unicode文件名上失败。您可以使用for
直接迭代文件:
for %%F in (%folder%\*) do ...