Loops 从文本文件中读取整数,进行数学运算,将结果写回失败

Loops 从文本文件中读取整数,进行数学运算,将结果写回失败,loops,batch-file,Loops,Batch File,我试图创建一个.txt文件并不断从中删除数字,直到.txt文件中的变量为0为止,以此来进行循环。 这就是我取得的成绩: @echo off set /p a=<Name.txt set /a c=%a%-1 echo %c%> Name.txt echo %a% echo %c% PAUSE @echo关闭 set/p a=Name.txt 回显%a% 回音%c% 暂停 在文本文件中输入一个数字,例如8。 它要做的是从这个数字中减去1,然后记住它,然后用8-1的结果再次覆盖文本文

我试图创建一个
.txt
文件并不断从中删除数字,直到
.txt
文件中的变量为
0
为止,以此来进行循环。 这就是我取得的成绩:

@echo off
set /p a=<Name.txt
set /a c=%a%-1
echo %c%> Name.txt
echo %a%
echo %c%
PAUSE
@echo关闭
set/p a=Name.txt
回显%a%
回音%c%
暂停
在文本文件中输入一个数字,例如
8
。 它要做的是从这个数字中减去
1
,然后记住它,然后用
8-1
的结果再次覆盖文本文件,即
7

因此,在名为
Name.txt
的文本文件中,我希望看到
7
,但我看到的是一个空行。请帮我完成这个循环。我正试图创建一个不可见的代码窗口,它会出现并在任何地方发布消息。

我对你的代码感到非常困惑。您正在将name.txt的内容存储在变量%a%(
set/pa=我被您的代码弄糊涂了。您正在将name.txt的内容存储在变量%a%(
set/pa=代替

echo %c%> Name.txt
使用

直接在重定向器前面的数字可能会导致问题

代替

echo %c%> Name.txt
使用


重定向器前面的数字可能会导致问题

如果
%c
包含一个十进制数字,则实际问题是行
echo%c%>Name.txt
,因为这样会被解释为与
符号一起使用。只要
%c%
包含一个数字,您的代码就应该与此相关多个数字的ng

要解决此问题,有以下选项:

  • 将重定向部件向前移动:

    > Name.txt echo %c%
    
    这是最可靠的解决方案

  • 将重定向命令放在括号之间:

    (echo %c%) > Name.txt
    
  • 符号前面插入空格:

    echo %c% > Name.txt
    
    请注意,添加的空间将成为输出的一部分


  • 实际问题是,如果
    %c
    包含一个十进制数字,则行
    echo%c%>Name.txt
    将与
    符号一起解释。只要
    %c%
    包含一个以上数字,您的代码就应该与此相关

    要解决此问题,有以下选项:

  • 将重定向部件向前移动:

    > Name.txt echo %c%
    
    这是最可靠的解决方案

  • 将重定向命令放在括号之间:

    (echo %c%) > Name.txt
    
  • 符号前面插入空格:

    echo %c% > Name.txt
    
    请注意,添加的空间将成为输出的一部分


  • %a%-1这是零件你所说的“%a%-1这是零件”是什么意思?这一行不在你发布的代码中。即使我按照你说的做了,它也会给我一个空格。让我们确保我理解了这个问题。你有一个包含数字的文本文件。假设它是5。你想要一个循环来读取数字,将其减少1,将新的数字写入文本文件,然后重新执行循环,直到我找到数字为止s 0.如果是这种情况,我的代码将完全执行此操作。最后,文本文件中将出现一个0,循环将停止。是的,正确,我只是没有走得太远。我正在首先测试此位,它会给我一个空格。此外,我编辑了代码,因此请再次阅读%a%-1这是部分你所说的“%a%-1”是什么意思这是部分?这一行不在你发布的代码中。即使我按照你说的做了,它也会给我一个空格。让我们确保我理解了这个问题。你有一个包含数字的文本文件。假设它是5。你想要一个循环来读取数字,将其减少1,将新的数字写入文本文件,然后重新执行循环,直到我找到数字为止s 0.如果是这种情况,我的代码将完全做到这一点。最后,你的文本文件中会有一个0,循环将停止。是的,正确,我只是没有走得太远。我正在先测试这个位,它给了我一个空白。另外,我编辑了代码,所以再次阅读它。我想我写错了。我很快发布了,让我重新发布这是code、 人们有什么想法吗?
    echo%c%>Name.txt
    是个坏主意。最好使用
    >Name.txt echo%c%
    。记事本怎么样,它出现在这个问题的标题和标签中,甚至是远程相关的?我建议进行编辑以消除它…我看不到你的代码中有任何循环结构,所以它应该在哪里?哦,我想我写错了,我很快就发布了,让我在这里重新发布代码。有什么想法吗?
    echo%c%>Name.txt是个坏主意。更好使用
    >Name.txt echo%c%
    。出现在这个问题的标题和标签中的“记事本”是如何远程关联的?我建议进行编辑以消除它…我在代码中看不到任何循环结构,那么它应该在哪里?