下面的代碼與圖表類似,但是當我打開目標文件時,每行都會顯示輸入兩次!我刪除了目標文件並多次檢查。我沒有跑兩次。批處理類型重複行
@echo off
setlocal enableDelayedExpansion
set "sourcelocation=\\whatever\Outbox\"
set targetlocation="G:\whatever\SharedData\\"
set "tmplocation=C:\tmpmerges\\"
set refdate=20151113
set versionID=000001
set entity=WTV
echo ...merging files
for %%f in (!tmplocation!*_WTVS_*!refdate!*_V!versionID!.txt) do type "%%f" >> !tmplocation!S_!entity!_WTVS_!refdate!_V!versionID!.txt
echo file merge completed
pause
的'for'通配符'!tmplocation!* _ * WTVS_也'捕捉輸出重定向'所使用的文件!tmplocation!S_!實體!_WTVS_'所以這些文件都翻了一倍。 – wOxxOm
我只是做了一些快速測試,我認爲如果您只是使用FOR/F命令在FOR/F中執行DIR命令,您應該可以。我相信,在FOR/F開始處理命令輸出之前,它會將命令的所有輸出加載到內存中。 – Squashman
@Squashman。嘗試但不知道如何實施您的建議。要做到這一點:'for %% f in(!tmplocation!* _ WTVS _ *!refdate!* _ V!versionID!.txt)輸入「%% f」>>!tmplocation!Merged \ S_!entity!_WTVS_! refdate!_V!versionID!.txt' – BuckTurgidson