我需要将批处理脚本中的变量中的第一个单词拉到另一个变量。
离
如果%hello%中有“苹果很棒”并被拉入%hi%
%hi%会说“苹果”
先谢谢
答案 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"
- 第一个是带有空格分隔符的三个单词的字符串,第二个是包含单个字符串的单个字符串一个包含空格的“单词”。我假设了前者。