【发布时间】:2012-07-24 05:39:41
【问题描述】:
我有这个代码
@Echo Off
SetLocal EnableDelayedExpansion
SET mydir=D:\
SET DirCount=2
SET T=
For /F %%i In (qqq.txt) Do (
set fg=%%i
FOR /L %%G IN (2, 1, %DirCount%) DO (call :subroutine "%%i")
)
:subroutine
Set T=!T!../
start /wait %mydir%program.exe %T%%fg%
echo %t%%fg% >>%cd%see.log
qqq.txt 有行
1
2
3
结果我得到:
../1
../../2
../../../3
../../../../3
但我需要这样:
../1
../../1
../2
../../2
../3
../../3
请帮助我做错了什么?
只需要一点额外的要求
我需要第一次发生的事情
set "T=!T!../"
will be without dots
set "T=!T!/"
result must be
/1
../1
../../1
/2
../2
../../2
如何以及在何处添加计数器并使每个循环可见
echo Now looping: %%i row of %countrow(in qqq.txt), left %countrow-%%I
echo Now looping: Dir Nr%%G !T!%%i
抱歉,我提出了一些愚蠢的问题,但批量编码对我来说很难。
【问题讨论】:
-
关于更新的问题 - 获取文件中的行数并不直观,因此我将其添加到我的答案中。但是对于其余部分,您应该更多地考虑您的问题。您所问的大部分内容都涉及简单的逻辑。如果您能够编写原始代码,那么您应该能够自己解决大部分新问题。提示 - 您只需要对已接受的答案进行微小的更改 - 修改 DirCount 值并移动行的位置
Set T=!T!../。
标签: loops batch-file cmd text-files