我有一个目录中的三个文件是通过另一个进程显示:如何使用增加的数字后缀将静态命名的文件复制到其他位置?
c:\result\results-a.txt
c:\result\results-b.txt
c:\result\results-c.txt
每次他们都出现的时候,我想将它们复制到另一个目录中增加数字后缀/前缀,一旦文件被复制,他们可以被删除。每次批处理文件启动时,它都可以从数字0开始(它不必扫描目标目录并继续)。
Ex。第一次文件都出现,目标目录可能是这样的:
c:\archive\results-a.0000.txt
c:\archive\results-b.0000.txt
c:\archive\results-c.0000.txt
出现第二次,目标目录将包含然后:
c:\archive\results-a.0000.txt
c:\archive\results-b.0000.txt
c:\archive\results-c.0000.txt
c:\archive\results-a.0001.txt
c:\archive\results-b.0001.txt
c:\archive\results-c.0001.txt
等。我很喜欢在BASH环境中将它们拼凑在一起,但我的客户需要在Windows NT(Windows 7,实际上)机器上完成此操作。有人能让我开始吗?
[编辑 - 答案] 感谢乔伊下面,这是我最终编码。
@echo off
setlocal enabledelayedexpansion
set Counter=0
:loop
call :test_file %1\results1.txt
call :test_file %1\results2.txt
call :test_file %1\results3.txt
timeout 2 /nobreak >nul
call :movefiles
timeout 2 /nobreak >nul
goto loop
:test_file
timeout 2 /nobreak >nul
if not exist %1 goto :test_file
goto :eof
:lz
set LZ=000%Counter%
set LZ=%LZ:~-4%
goto :eof
:movefiles
for %%f in (C:\test\*.txt) do (
call :lz
move "%%f" "c:\tmp\c-!LZ!-%%~nxf"
)
set /a Counter+=1
goto :eof
一个很好的批量编程的介绍。谢谢。
@Joey:err,no。 – Jamie 2011-04-18 17:48:51