Batch file 如何在嵌套在批处理文件中的for循环中使用参数2?
我无法使用第一个for循环中的第二个参数(Batch file 如何在嵌套在批处理文件中的for循环中使用参数2?,batch-file,pdf,Batch File,Pdf,我无法使用第一个for循环中的第二个参数(%%b)来比较第二个for循环中的(if!count!GTR%%b),希望专家们能提供帮助,对不起,我的英语不好 文件text1.txt # # #Employee*.PDF,3 School*.PDF,4 Family*.PDF,5 文件夹c:\user\text xxxxxxxxx.pdf Employee1.pdf Employee3.pdf Employee2.pdf Employee4.pdf Employee5.pdf
%%b
)来比较第二个for循环中的(if!count!GTR%%b
),希望专家们能提供帮助,对不起,我的英语不好
文件text1.txt
# #
#Employee*.PDF,3
School*.PDF,4
Family*.PDF,5
文件夹c:\user\text
xxxxxxxxx.pdf
Employee1.pdf
Employee3.pdf
Employee2.pdf
Employee4.pdf
Employee5.pdf
Employee6.pdf
Employee7.pdf
School1.pdf
School3.pdf
School2.pdf
School4.pdf
School5.pdf
School6.pdf
School7.pdf
总代码:
@Echo off
@SETLOCAL ENABLEDELAYEDEXPANSION
for /f "delims=, tokens=1,2 eol=#" %%a in ('Type text1.txt') do (
set /a count=0
for /f %%x in ('dir C:\user\text\%%a /b') do (
set /a count+=1
if !count! GTR %%b (
del "C:\user\text\%%x"
)
)
)
我无法在第二个for循环中使用%%b
。
运行后输出删除所有文件
但我只想删除:
Employee4.pdf
Employee5.pdf
Employee6.pdf
Employee7.pdf
School5.pdf
School6.pdf
School7.pdf
请帮帮我
我试过。。。添加set/a标志=%%b
并更改比较条件=if!计数全球技术法规!旗帜代码>
for /f "delims=, tokens=1,2 eol=#" %%a in ('Type text1.txt') do (
set /a count=0
set /a flag=%%b
for /f %%x in ('dir C:\user\text\%%a /b') do (
set /a count+=1
if !count! GTR !flag! (
del "C:\user\text\%%x"
)
)
)
但是输出<代码>!国旗!=5
,
等于其最终值
Family*.PDF,5
dir命令需要在%%a之后加一个通配符
for /f %%x in ('dir /b "C:\user\text\%%a*"') do (
另外,从text1.txt
读取的%%b
不仅仅是数字,还附带了扩展名.pdf
任用
if!计数GTR%%~nb
去除扩展,或
- 修改
test1.txt
,使数字和分机之间有另一个逗号
您的第一个代码似乎工作正常(我添加了一些代码以添加演示文件,并在dir
命令中做了一些小改动以匹配环境-适应您的需要):
输出:
Family1.pdf
Family2.pdf
Family3.pdf
Family4.pdf
Family5.pdf
Family6.pdf
Family7.pdf
School1.pdf
School2.pdf
School3.pdf
School4.pdf
School5.pdf
School6.pdf
School7.pdf
---------
# #
#Employee*.PDF,3
School*.PDF,4
Family*.PDF,5
---------
Drücken Sie eine beliebige Taste . . .
"D:\tmp\test\School4.pdf"
"D:\tmp\test\School5.pdf"
"D:\tmp\test\School6.pdf"
"D:\tmp\test\School7.pdf"
"D:\tmp\test\Family5.pdf"
"D:\tmp\test\Family6.pdf"
"D:\tmp\test\Family7.pdf"
哦,是的-我将《全球技术法规》更改为《全球技术法规》,以符合您的示例。我不是100%同意您的观点。是否要匹配text1.txt
内容中的文件是否存在于C:\user\text
中?对不起,我发布了错误的文件text1.txt,我在上面编辑了它。好的,让我快速查看一下。所以你只想要编号最高的文件?是的,我只想要编号为的文件!计数!>%%b
ok,但是2.pdf
也比1.pdf
大,所以你也想要吗?我试着将它编辑成if!计数GTR%%~nb
但仍然没有成功,而且test1.txt
已修复不断更改相关信息无助于为您的问题找到解决方案,但会让回答者感到沮丧。我会吸取经验,感谢您的建议如果我想删除文件,但不会回音
,我应该怎么做?你想删除什么<代码>…1.pdf
…3.pdf
或…4.pdf
…x.pdf
?那么用del
命令替换echo
命令如何?我想删除根目录中的文件,而不是像以前那样echo
。然后删除echo
并键入del/Q
Family1.pdf
Family2.pdf
Family3.pdf
Family4.pdf
Family5.pdf
Family6.pdf
Family7.pdf
School1.pdf
School2.pdf
School3.pdf
School4.pdf
School5.pdf
School6.pdf
School7.pdf
---------
# #
#Employee*.PDF,3
School*.PDF,4
Family*.PDF,5
---------
Drücken Sie eine beliebige Taste . . .
"D:\tmp\test\School4.pdf"
"D:\tmp\test\School5.pdf"
"D:\tmp\test\School6.pdf"
"D:\tmp\test\School7.pdf"
"D:\tmp\test\Family5.pdf"
"D:\tmp\test\Family6.pdf"
"D:\tmp\test\Family7.pdf"