【问题标题】:CMD add every variable generated to a listCMD 将生成的每个变量添加到列表中
【发布时间】:2016-04-04 15:34:24
【问题描述】:

我知道我可以写回声> C:/Folder/name.txt 但是我有一个生成器可以为 Cord 制作 2 个数字,但无法找到一种快速的方法来制作一条线回显 > 与所有点 简而言之,我将简化我的代码,因为当前代码不是问题

Echo off
Setlocal EnableDelayedExpansion
set R=1
set Number=1
:Loop
if %R% EQU 1 (set /p Max=How many Max Points? ) Else(
echo.)
set /p PX%number%=What is PointX%number%? 
set /p PY%number%=What is PointY%number%? 
if %Number% GEQ %Max% (goto :fin) Else(
set /a Number=%Number%+1 & set R=2 & Goto :loop)

这就是我要优化的内容

:fin
echo (%PX1%,%PY1%),(%PX2%,%PY2%),(%PX3%,%PY3%) ... Ect >C:Folder/File.txt

有没有办法让所有生成的数字都在1

【问题讨论】:

  • 您是否尝试创建一个名为 LINE 的变量并继续添加它? set "line=%line%(PX%number%,PY%number%),"
  • set "list=" & for /L %%i in (1,1,%Max%) do set "list=!list!(!PX%%i!,!PY%%i!)," & echo %list:~0,-1%>C:Folder/File.txt
  • @Aacini,我也想做同样的事情,但我一定读懂了他的想法,认为它可能看起来太复杂了,所以我只添加了一行。
  • Squashman 的代码显示了一个像这样的文字字符串(PX1,PY1),(PX2,PY2),...。我的方法显示点的,我认为这就是你想要的......
  • 是的。我在下面发布了这个模组...

标签: batch-file command-line cmd command-line-arguments command-prompt


【解决方案1】:

如果您在循环之前获得最大点数,则逻辑会简单得多。并且 FOR /L 循环可以自动增加您的计数器并消除对 GOTO 的需要。

@echo off
setlocal enableDelayedExpansion
set /p "cnt=How many points? "
set "ln="
for /l %%N in (1 1 %cnt%) do (
  echo(
  set /p "PX%%N=What is PointX%%N? "
  set /p "PY%%N=What is PointY%%N? "
  set "ln=!ln!(!PX%%N!,!PY%%N!),"
)
echo(
echo !ln:~0,-1!

【讨论】:

    【解决方案2】:

    感谢 Squashman 的回答 - 谢谢!

    正确代码:

    Echo off
    Setlocal EnableDelayedExpansion
    set R=1
    set Number=1
    set Line=Test
    :Loop
    if %R% EQU 1 (set /p Max=How many Max Points? ) Else (
    echo.)
    set /p PX%number%=What is PointX%number%? 
    set /p PY%number%=What is PointY%number%? 
    set line=%line%(!PX%number%!,!PY%number%!),
    if %Number% GEQ %Max% (goto :fin) Else (
    set /a Number=%Number%+1 & set R=2 & Goto :loop)
    :fin
    echo %Line:~0,-1% >C:Folder/File.txt
    

    感谢 Squashman 的回答 - 谢谢!

    【讨论】:

    • 您需要将这一行 set line=%line%(PX%number%,PY%number%), 修改为:set line=%line%(!PX%number%!,!PY%number%!), 以显示点的 ,并仅显示 echo %Line:~0,-1% ... 以删除最后一个逗号
    猜你喜欢
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2016-08-19
    • 2023-03-29
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多