Batch file 如果令牌=为给定数字,如何设置变量
我试图设置一个变量,如果令牌=1或令牌=2,依此类推 这是一个命令行批处理文件 我的问题是如何使我的代码有效,以便它将所有1页PDF相加,并将1页的总数放入名为1side的变量中,将2页的总数放入名为2side的变量中,依此类推。我将在稍后添加pdfcount.tmp的内容 请参阅下面的代码,了解我已经完成的工作:Batch file 如果令牌=为给定数字,如何设置变量,batch-file,for-loop,Batch File,For Loop,我试图设置一个变量,如果令牌=1或令牌=2,依此类推 这是一个命令行批处理文件 我的问题是如何使我的代码有效,以便它将所有1页PDF相加,并将1页的总数放入名为1side的变量中,将2页的总数放入名为2side的变量中,依此类推。我将在稍后添加pdfcount.tmp的内容 请参阅下面的代码,了解我已经完成的工作: if exist *.zip for /f "tokens=2 delims=," %%a in (pdfcount.tmp) do if "%%a"=="[1]" set 1sid
if exist *.zip for /f "tokens=2 delims=," %%a in (pdfcount.tmp) do if "%%a"=="[1]" set 1sided=%%a
if exist *.zip for /f "tokens=2 delims=," %%a in (pdfcount.tmp) do if "%%a"=="[2]" set 2sided=%%a
if exist *.zip for /f "tokens=2 delims=," %%a in (pdfcount.tmp) do if "%%a"=="[3]" set 3sided=%%a
if exist *.zip for /f "tokens=2 delims=," %%a in (pdfcount.tmp) do if "%%a"=="[4]" set 4sided=%%a
if exist *.zip for /f "tokens=2 delims=," %%a in (pdfcount.tmp) do if "%%a"=="[5]" set 5sided=%%a
我发现一个示例代码可能与我要寻找的答案非常接近:
set index=1
for /f "tokens=3*" %%A in (%file%) do (
if ("%%A"=="Domains") (
for %%C in (%%B) do (
set Domain!index!=%%C
set /A index+=1
)
)
)
以下是pdfcount.tmp的内容
24014-20190201-1-en.pdf, 1
24163-20190201-1-en.pdf, 1
24219-20190201-1-en.pdf, 1
2466-20190201-1-en.pdf, 1
26946-20190201-1-en.pdf, 2
27103-20190201-1-en.pdf, 3
28563-20190201-1-en.pdf, 2
29019-20190201-1-en.pdf, 2
29287-20190201-1-en.pdf, 3
30500-20190201-1-en.pdf, 2
31401-20190201-1-en.pdf, 3
31525-20190201-1-en.pdf, 2
31590-20190201-1-en.pdf, 3
32445-20190201-1-en.pdf, 3
3765-20190201-1-en.pdf, 1
4837-20190201-1-en.pdf, 1
5083-20190201-1-en.pdf, 1
756-20190201-1-en.pdf, 2
刚刚遇到一个问题,它将打印一个侧面和数量的列表,但将11、15或19置于2或3之上,可能是因为11以1开头。 需要将两位数和三位数放在一位数下。 这是我的问题的一个例子
Sides_18=1
Sides_3=201
Sides_4=33
Sides_5=4
Sides_6=3
Sides_7=1
Sides_8=1
你的问题仍然有点含糊,但我的猜测是:
@echo off
setlocal enableDelayedExpansion
for /f "tokens=2 delims=," %%a in (pdfcount.tmp) do (
set /a nr=%%a
set /a Pages_!nr! +=1
)
set pages_
编辑要对变量进行排序,只需添加以下行:
for /l %%i in (0,1,300) do if defined pages_%%i echo Pages:%%i=!pages_%%i!
(注意:将300
调整为高于最大页数的值)
但更好的方法是首先命名可排序的变量:
@echo off
setlocal enableDelayedExpansion
for /f "tokens=2 delims=," %%a in (pdfcount.tmp) do (
set /a nr=%%a+10000
set /a Pages_!nr:~-4! +=1
)
set pages_
请提供(几行)
%file%
?除此之外,我们不得不猜测,猜测往往是错误的。我也看不到第一个和第二个代码段之间的连接。请澄清(或删除不需要的部分)。包含%file%的代码不是我的代码。上面第一部分中的5行代码是我的代码。底部的代码只是显示了代码的布局方式,可能就是我想要的布局。为什么我有一个负1?我没有做错什么。我只是问了一个问题。好吧,你没有描述你想要实现什么和你实际得到什么,所以请你的问题和澄清。也许“找到的示例代码”的源代码也会有用。也可以拿着这本书读一读!好的,几个例子行的pdfcount.tmp
会很有帮助。我的问题是如何使我的代码有效,这样它可以将所有1页PDF相加,并将1页的总数放入一个名为1sided的变量中。我将在一秒钟内添加pdfcount.tmp的内容。我刚刚在上面问题的底部添加了一个问题。非常感谢。