使用另一个变量中的第一个单词设置变量

时间:2014-06-15 01:17:38

标签: variables batch-file word

我需要将批处理脚本中的变量中的第一个单词拉到另一个变量。

如果%hello%中有“苹果很棒”并被拉入%hi%

%hi%会说“苹果”

先谢谢

2 个答案:

答案 0 :(得分:1)

这可以使用for循环来完成:

for /f %%h in ("%hello%") do [command that uses %%h]

""的行为在这种情况下,将输入分成线(只有一个,假设输入变量中没有换行符),然后将每一行拆分为空格上的标记(可以使用"delim=[chars]"更改分隔符选项)并将每行的第一个标记传递给指定的命令(您可以使用"tokens=n,n,..."来获取除第一行之外的标记)。

请注意,AIUI您只能使用单个字母变量名称来接收该字词,因此您无法按照要求使用%%hi

(这都是未经测试的,因为我现在不在运行Windows的计算机上,但如果我正确阅读文档,则应该可以正常工作。)

答案 1 :(得分:0)

set "hi="    
for %%h in (%hello%) do if not defined hi set "hi=%%h"
echo %hi%

应该有效,

set "hi="    
for %%h in (%hello%) do set "hi=%%h"&goto done
:done
echo %hi%

请注意,set "var=string"语法可确保某些编辑器留下的行上的尾随空格不包含在分配的值中。

您没有明确说明hello的值是apples are awesome还是"apples are awesome" - 第一个是带有空格分隔符的三个单词的字符串,第二个是包含单个字符串的单个字符串一个包含空格的“单词”。我假设了前者。