【问题标题】:Using just the first word in an environment variable. batch / cmd仅使用环境变量中的第一个单词。批处理/cmd
【发布时间】:2017-03-31 23:33:50
【问题描述】:

我想将文件复制到某个位置,Jenkins 用户将被要求在文本字段中输入“项目名称”,该文本字段将保存为环境变量,批处理文件应该只取这个环境变量在目录路径中输入。

现在项目名称如下所示:

Proj_1 Something Somethingelse

这当然不行:

C:\Testfolder\%Project_Name%\Sub\

.. 因为我只想让“Proj_1”成为访问的文件夹(它已经存在),就像这样:

C:\Testfolder\Proj_1\Sub
Not: C:\Testfolder\Proj_1 Something Somethingelse\Sub\

有没有办法批量处理?非常感谢任何帮助。

谢谢你,乔丹。

【问题讨论】:

  • 您有两个选择。只需抓取前 6 个字符即可对变量进行子串化。 %Project_Name:~0,6%。或者如果项目后面总是有空格,那么使用 FOR /F 命令获取空格之前的变量部分:FOR /F "tokens=1 delims= " %%G IN ("%Project_Name%") do set "var=%%G"
  • 这应该是答案@Squashman
  • @Squashman 请使用答案栏...

标签: windows batch-file jenkins cmd environment-variables


【解决方案1】:

这表明@Squashmans 在他的评论中的第二个解决方案是有效的。

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\SBeeson>set "Project_Name=Test Folder Test"

C:\Users\SBeeson>echo %Project_Name%
Test Folder Test

C:\Users\SBeeson>FOR /F "tokens=1 delims= " %G IN ("%Project_Name%") do set "folder=%G"

C:\Users\SBeeson>echo %folder%
Test

唯一的区别是%G中的单个%,因为它是在命令环境中直接测试的。正如他所说,您将需要%%G 来获取 bat 文件。

所以,你的解决方案是:

FOR /F "tokens=1 delims= " %%G IN ("%Project_Name%") do set "New_Folder=%%G"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 2014-03-03
    • 2012-03-19
    相关资源
    最近更新 更多