如何使用 Windows 7 将多​​个用户输入值输出到 BATCH 中的单个变量?

How to output multiple user input values into a single variable in BATCH using Windows 7?

已解决!

更新:它会在发帖寻求帮助后的瞬间计算出来,这是我从来没有做过的事情我会弄明白的......我倾向于过度思考事情,那就是案例在这里,就是这么简单! >.<

解法: (这在 Windows 7 Ultimate 64 位下工作)

Set var=
Set var=SomeText %var1% %var2% %var3%
Echo %var% > output.txt

请参阅下面我的回答中的解释。


我已经在这里搜索并尝试了几个与我的问题类似的帖子数小时但没有成功。我不是 BATCH 编程的新手,但我有记忆问题,因此不能总是记住事情。我在其他平台上用其他语言编程也无济于事,这通常意味着我试图在我的 Windows 批处理脚本中使用 *nix shell 命令 >.<

我已经非常接近一些例子,但没有任何东西能按需要工作。 理想情况下,我希望这项工作适用于 Windows 7、8、8.1、Vista 和 10,因为这是预期目标。

这是我需要完成的:

用户将回答一系列问题,每个问题都存储在一个 .txt 文件中(如果你愿意,也可以是变量。我只是使用文本文件,因为我在过去的项目中 运行 遇到了问题无法解决的变量和文本文件的工作)。每个文本文件中的行都需要输出到一个单独的文本文件中,在一个单独的行上,然后将其作为变量和 运行 读回。同样,如果这对您或我们双方都更容易,您可以在示例中使用和组合变量;P

这是我如何做的一个片段示例

    SET file1=
    SET /P file1=file1:%=%
    ECHO %file1% > file1.txt

然后

copy /b file1.txt + file2.txt + file3.txt + file4.txt output.txt

这是我想要的结果

toolkit /S "C:\ToolKit Bravo\Data\etc" "D:\ToolKit Bravo\Data\Ops"

"" 引号是必需的。对于我给出的示例,输出必须完全如上所示。 “/S”和路径是可变的,不是固定的!

这是我能想到的最好的变量..

"toolkit /S "C:\ToolKit Bravo\Data\etc" "D:\ToolKit Bravo\Data\Ops"" 

更新 2 - 要求的解释:

上面例子中的路径不是固定的!这只是一个示例。 "toolkit" 是固定的,这不会改变。 “/S”是用户选择传递给 "toolkit" 的选项。用户在 "quotation" 标记中再次输入源路径和目标路径。它们不是固定路径。

如您所见,结果被引号包围,这是不可接受的。请记住,我需要最终结果中路径周围的引号,因此无法将它们全部删除!

非常感谢任何帮助!谢谢你的时间。

只取引号之间的所有字符。

SET X="toolkit /S "C:\ToolKit Bravo\Data\etc" "D:\ToolKit Bravo\Data\Ops""
ECHO %X%
SET Y=%x:~1,-1%
ECHO %Y%

解决方案:

这解决了我在 Windows 7 Ultimate 64 Bit

下的问题
Set var=
Set var=SomeText %var1% %var2% %var3%
Echo %var% > textfile.txt

我首先使用 SET 命令确保变量或简称 var 为空。使用此命令:

    Set var=

然后我继续使用我创建的所有其他变量创建我的变量,并希望使用这行代码进行组合:

Set var=SomeText %var1% %var2% %var3%

请注意,我在变量前面加上了 "SomeText"。我将在此处放置要将参数传递给的 .exe 的名称,但它可以是您想要包含的任何内容。我还需要在每个变量之间留出空格,所以我在示例代码中在它们之间留了空格。如果您不想要这些空格,只需删除它们,您将得到 1234,而不是 1 2 3 4。

最后,我将组合变量发送到 .txt 文件。

    Echo %var% > textfile.txt

但是,您现在也可以像这样简单地调用新变量:

%var%