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

时间:2015-11-06 12:45:50

标签: windows variables batch-file input output

解决!

更新:在发布求助信息之后的那一刻,这是我从未做过的事情我已经弄明白了......我倾向于过度思考,这就是这种情况,它是就这么简单! >。<

解决方案: (这在Windows 7 Ultimate 64 Bit下运行)

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 - 按要求说明:

以上示例中直接位于此上方的路径不固定!这只是一个例子。 “工具包”是固定的,这不会改变。 “/ S”是用户选择传递给“工具包”的选项。用户再次在“引用”标记中输入源和目标路径。它们不是固定的路径。

正如您所看到的,结果被引号所包围,这是不可接受的。请记住,我需要在最终结果的路径周围引用,所以删除它们都不是一个选项!

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

2 个答案:

答案 0 :(得分:0)

只需记下引号之间的所有字符。

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

答案 1 :(得分:0)

解决方案:

这解决了我在Windows 7旗舰版64位

下的问题
.git

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

git

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

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

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

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

    Set var=

但是,您也可以简单地调用新变量:

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