Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如果令牌=为给定数字,如何设置变量_Batch File_For Loop - Fatal编程技术网

Batch file 如果令牌=为给定数字,如何设置变量

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

我试图设置一个变量,如果令牌=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 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的内容。我刚刚在上面问题的底部添加了一个问题。非常感谢。