bat批处理下如何像shell一样将命令执行的效果赋值给变量

在bat下如何实现像shell一样,把执行命令行后的结果赋值给变量呐?

刚开始,可真难为到我了。随着对bat批处理知识熟悉的加深。

学习到了!!!

举个 栗子:

svnlook  uuid  C:\Repository\test          # 这行命令什么意思呐。它是svn服务器的命令(因为最近在搞svn的东西啦)。

# 所以这行命令实现的效果是 返回 test 仓库的 UUID

shell 下会这样实现:

UUID=`svnlook uuid C:\Repository\test`     #  这里是 · 哦。这个符号就是键盘ESC按键下的那个 ·    (好小哦................)

==================================================

好的~~~看到了吧,shell下实现真的很简单,bat下也是可以实现的但是麻烦了点欸。

dos下:          for   /f   “delims=”  %t   in  (‘svnlook uuid C:\Repository\test‘)  do  set  UUID=%t

bat文件中:    for   /f   “delims=”  %%t   in  (‘svnlook uuid C:\Repository\test‘)  do  set  UUID=%%t

上面的区别就是 dos下执行 为 %t , bat文件中执行就是 %%t  。

还有就是要注意 ()里面使用的是单引号,因为在bat里单引号就是引用命令的意思。

这里的 delims 值得就是分隔符的意思。我这里写的是  “delims=” 。没有分隔符,所以会进行 行分割,

这样就可以取到第一行的结果了。

学会了这个,再写bat时。写出来的脚本更漂亮了,更简洁了。一口气能上10层楼了。哈哈。

原文地址:https://www.cnblogs.com/xautxuqiang/p/8963444.html

时间: 2024-10-09 22:36:49

bat批处理下如何像shell一样将命令执行的效果赋值给变量的相关文章

bat/cmd将命令执行的结果赋值给变量

比如我想把git代码的commitid获取以后加到文件夹上来标记文件夹中的包是哪个git 节点构建得到的. git 命令是git rev-parse --short HEAD 再linux系统下,只需要执行下面的命令: commitid=`git rev-parse --short HEAD` echo commitid=$commitid 但是在windows系统下,却不能直接使用反引号,要使用for变通下,命令如下: for /F %%i in ('git rev-parse --short

【shell】多命令执行顺序

:举例[[email protected] ~]# date;dd if=/dev/zero of=/home/1 bs=1k count=10240;date ##统计dd命令消耗时间,其中/dev/zero为空文件 Tue Jun 14 15:15:02 CST 2016 10240+0 records in 10240+0 records out 10485760 bytes (10 MB) copied, 0.0224696 s, 467 MB/s Tue Jun 14 15:15:02

Linux下高效编写Shell——shell特殊字符汇总

Linux下无论如何都是要用到shell命令的,在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好,往往能给我们起到事半功倍的效果,为此,特地将Shell里面的一些符号说明罗列成对照表的形式,以便快速的查找.看看你知道下表中哦你的哪些Shell符号呢? Shell符号及各种解释对照表: Shell符号 使用方法及说明 # 注释符号(Hashmark[Comments]) 1.在shell文件的行

Linux学习闲谈(一)——Shell基本操作与命令

Linux学习闲谈(一) --Shell基本操作与命令 (转载请附上本文链接--linhxx) 1.#!/bin/sh 放在程序开头,表示用/bin/sh方式来解析. 2.变量 1)变量赋值 varname='xxx',除了在变量赋值和在FOR循环语句头中,其他情况下BASH 中的变量使用必须在变量前加"$"符号,即采用 $varname使用变量.更为标准的变量引用方式是 ${STR} 这样的,$STR 自不过是对 ${STR} 的一种简化.在复杂情况下(即有可能产生歧义的地方)最好用

shell脚本常用命令(HandBook_1)

shell及其他解释型语言的一般格式?  #!/bin/bash            #shell脚本的首行格式  #!/usr/bin/python  #python脚本的格式  #!/usr/bin/perl        #perl脚本的格式  #Description:      #"#"开头的单个井字号是注释符,其后内容不当做脚本程序执行  COMMAND            #脚本的编程内容部分,命令的堆砌,单一命令的组合完成复杂任务 怎样使得定义的变量生效? 1.~]

windows下bat批处理实现守护进程(有日志)

开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windows下的bat版守护程序吧,当时晚上思路已经很迟钝了,就叫了个兄弟让他写了,上去后运行效果不错,至少昨晚我安心睡了7小时. 早上来把程序改完善一些,增加了记录等功能. 实现: 检查是否有notepad,要用的话就算成自己的进程名,如果进程宕了就过会自动重启(会在当前目录下生成一个start.bat)

windows下bat批处理实现守护进程

本文转自网络,由于找不到原作者,因而无法知道出处.如果有幸让原作者看到,请联系我加上.先转载至此. 最近几天加班加疯掉了,天天晚上没法睡.开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windows下的bat版守护程序吧,当时晚上思路已经很迟钝了,就叫了个兄弟让他写了,上去后运行效果不错,至少昨晚我安心睡了7小时. 早上来把程序改完善一些,增加了记录等功

BATCH(BAT批处理命令语法)

bat语法备忘扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件[@[email protected]] bat语法备忘扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件. ==== 注 ======================================= .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从 更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外

BAT 批处理脚本教程

第一章 批处理基础第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令.小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程.了解了大概意思后,我们正式开始学习.先看一个简单的例子!@echo offecho "欢迎来到非常BAT!"pause把上面的3条命令保存为文件test.bat或者test.cmd然后执行,他就会在屏幕上显示以下二行话:欢迎来到