为什么这个For循环运行两次?

时间:2017-03-06 00:08:53

标签: file batch-file

我不太了解Windows命令解释器,但我在Microsoft Access文件中有一个VBA宏,它运行下面发布的批处理文件。

为什么在文件末尾放置6个管道而不是3个?

我相信它已经运行了两次,但我不知道为什么。

@echo off
:: Copy inventory files from P drive and remove originals

move P:\MFG_Programs\MakenaInventory\THERACOM_TherRxHub_ControlFile_SP002B_*.txt N:\pgh_manufacturer_program_reporting\Makena\Process

:: create temp file mirroring inventory file with extra pipe on each line
p:
cd "P:\MFG_Programs\MakenaInventory"
setlocal enabledelayedexpansion
For %%J in (RtlInventory_TherRxHub_SP002B*.txt) Do (
    For /F "tokens=*" %%A in (%%J) Do (
        echo %%A^|^|^|>>rtltemp.txt
    )

1 个答案:

答案 0 :(得分:0)

我怀疑你过分简化了代码。

变化

For %%J in (RtlInventory_TherRxHub_SP002B*.txt) Do (

For /f "delims=" %%J in ('dir /b /a-d RtlInventory_TherRxHub_SP002B*.txt') Do (

这将在基本形式中构建一个dir列表,在内存中没有目录名,然后处理列表,这样,如果通过创建,删除或重命名目录中的文件来进行文件结构更改,那些更改不会影响列表建。