bat程序怎么判断输入的变量

bat程序怎么判断输入的变量,第1张

大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频。

今天我们学习批处理脚本中if命令条件处理控制语句,它的用法有很多,今天我们学习主要进行变量的一些判断,判断两个变量是否相等,变量的大于小于之类的 *** 作。

输入命令if /,可以看到这个命令的一些帮助和介绍,这个命令帮助介绍非常多,我这里用bat脚本开始和大家讲解一下。

我这里准备了一个批处理,这个批处理的代码在上边有,也比较简单,大家可以跟着中的代码,自己也写一下练习一下,这里简单的介绍一下这个代码,第二行第三行是接收用户的输入,把用户的输入保存到var1和var2变量中,第四行然后通过If命令进行判断两个是否相等,如果相等的话,输出相等,不相等的话输出不相等。

这个批处理中用到的其他的命令,比如set,echo,我在以前的文章和视频中都发布过,不太熟悉的朋友可以看以前我发布的文章和视频。

运行这个批处理,输入第一个字符1,和输入第二个字符2,第三行就进行了判断,输出了两个字符不相同,这个就是if命令语句判断两个变量是否相同不相同。

再测试一下,输入两个第一个字符1和第二个字符2,这个时候会提示两个字符是相同的。

我们再看一下参数i。而 /I 开关(如果指定)说明要进行的字符串比较不分大小写。

双击运运行一下,可以看到加了参数i,小写a和大写A是相同的。

我们把这个参数/i去掉。

再次运行,这里会提示小写a和大写A两个字符是不相同的。

我们再换一个判断变量大小的脚本,这里还是提示用户首先输入一个数字,然后根据用户输入的值进行判断,大于10会输出大于等于10,小于10的话会提示小于10。

运行这个脚本,然后输入了一个数字20,这个时候脚本提示这个数大于或等于10。

再次运行,这次输入了一个数字9,脚本提示次数小于10。

今天学的这个if命令主要进行两个变量的判断是否相等,还有变量的大于小于之类的一些 *** 作,if命令在bat批处理脚本中用的非常多,比较重要,大家可以多练习一下,关于if判断文件是否存在,我们下篇文章在讲解。

感谢观看本篇文章,希望对你有所帮助,本文由老盖聊技术原创,我是老盖,专注分享IT互联网与电脑知识,欢迎关注,本文是出于爱心帮助人的目的所写,请随意分享转载,帮助人越多爱的力量就越大,感谢正能量传播。

#include <stdioh>

#include <stdlibh>

main()

{

system("123bat haha");

}

bat里:

echo %1

执行后输出

haha

所以在system要执行的脚本名后面直接加上参数就可以了

#!/bin/sh

if [ $# -ne 1 ]; then

echo 1>&2 Usage: $0 [config_file]

exit 127

fi

SOURCE=`awk -F"=" '/^database_name/ { print $2 }' $1`

SECONDS=`date +%s`

TARGET=$SOURCE"_"$SECONDS

DESTINATION=/$SOURCE$DIALOG$VERSION

echo Database: $SOURCE

echo Dialog ID: $DIALOG

#drop the target databse

psql -c "drop database $TARGET"

#create database objects

psql $TARGET < postgres_createsql

#copy base tables

psql -c "copy (select from message) to stdout" $SOURCE | psql -c "copy message from stdin" $TARGET

$TARGET

psql -c "copy (select from qs_publicationstatustype) to stdout" $SOURCE | psql -c "copy qs_publicationstatustype from

stdin" $TARGET

#save the dialog

psql -c "copy (select from q_dialog where q_dialog_id = $DIALOG) to stdout" $SOURCE | psql -c "copy q_dialog from stdin"

$TARGET

#create database objects

psql $TARGET < postgres_indexsql

#make the destination directory

mkdir -p $DESTINATION

mkdir -p $DESTINATION/cdd

mkdir -p $DESTINATION/corticon

#create readme files

echo "Note: Rules assets are owned by a different user and will have to be copied separately" >> $DESTINATION/cdd/README

echo "Note: Rules assets are owned by a different user and will have to be copied separately" >>

$DESTINATION/corticon/README

#export the database

pg_dump $TARGET > $DESTINATION/postgres_createsql

#copy the import template to the destination

cp $TEMPLATE $DESTINATION/dialogsImportsh

chmod +x $DESTINATION/dialogsImportsh

#drop the temp database

psql -c "drop database $TARGET"

#append to the import config file

echo "database_name=$SOURCE" >> $DESTINATION/importcfg

#append to the import README file

echo "" >> $DESTINATION/README

echo "" >> $DESTINATION/README

echo " Program: dialogsImport" >> $DESTINATION/README

echo "" >> $DESTINATION/README

echo " Version 05" >> $DESTINATION/README

echo "" >> $DESTINATION/README

echo " Author: Dan Dreon" >> $DESTINATION/README

echo "" >> $DESTINATION/README

echo "" >> $DESTINATION/README

echo " run this script as the database user - typically postgres" >> $DESTINATION/README

echo " run this script from inside the dialogsImport folder" >> $DESTINATION/README

echo " psql must be in your path" >> $DESTINATION/README

echo " first edit the importcfg script and enter the appropriate values" >> $DESTINATION/README

echo " to run this script type /dialogsImport importcfg" >> $DESTINATION/README

echo " Note: rules assets need to be copied separately" >> $DESTINATION/README

#archive the directory

tar -zcvf $DESTINATIONtargz $DESTINATION

#delete the original

rm -rf $DESTINATION

如何把这个shell脚本移植到windows 的bat中?各位大虾们,小弟现在有个棘手的问题,请大虾们给以帮助。

VBS中接收外部传值的,在vbs中用WScriptArguments(0)这个参数进行获取。这里数字0代表接收第一个传值,1代表接收第二个传值,以此类推。

以下为一个小举例:

myVbsScriptvbs:

WscriptEcho "参数1:" & WScriptArguments(0) & vbcrlf & _

             "参数2:" & WScriptArguments(1) & vbcrlf & _

             "参数3:" & WScriptArguments(2) & vbcrlf & _

             "参数4:" & WScriptArguments(3) & vbcrlf & _

             "参数5:" & WScriptArguments(4)

执行这样的命令: myVbsScriptvbs ca cb cc cd ce

最终效果:

批处理没法像VBS那样实现d出代窗口接受数据,只能用如下的方式:

::═════代═══码═══开═══始═════

@echo off

set/p t=请输入时间并回车:(格式为 XX:XX:XX)

at %t% shutdown -s -t 0

pause

::═════代═══码═══结═══束═════

变量定义和引用

1.MS-DOS shell 对变量、命令、命令行参数的大小写区分吗? 不区分

2.如何定义一个(环境)变量

SET <variable>=[<value>]

如果 <value> 是空字符串,则取消变量的定义,变量的值用双引号或空格结束。引号如果没有结束,则默认范围到行尾。

3.如何定义一个局部(环境)变量?

复制代码 代码如下:

SETLOCAL

SET <variable>=[<value>]

ENDLOCAL

变量 <variable> 的值会在 ENDLOCAL 后恢复到 SETLOCAL 以前的值

4.如何使用 MS-DOS 脚本的调用参数?

ECHO %<n>

N 的范围为 0-9 , %0 为文件名, %1-%9 为参数,每次调用脚本最多支持 9 个参数

ECHO %

% 代表所有传入的参数,即 %1-%9 ,并且包括其中的空白符

另外,调用参数是 %0-%1 是只读的,不可以重新赋值,否则程序挂起。

5. MS-DOS 如何分割脚本参数?

首先 MS-DOS 的解释器 CMD 会将命令提示符后的命令行中的有定义的环境变量全部展开(无定义的不变)。

然后,处理由 ^ 定义的转义字符。

最后,用双引号( " " )、逗号( , )、分号(;)和空白符分割,并将第一个分割后的部分用作命令名,其他的作为参数,所有的参数中都包含各自的双引号,然而命令名中的双引号在调用命令时没有影响。逗号和分号以及空白符则不包含在分割的各部分中。

注:变量在脚本中只展开一次,不会循环展开。

如果您用 set 语句定义一个字符串变量

那么每当程序脚本执行结束后,则不可以在使用这个变量了

也就是说您输入的字符串,只能在这一次的脚本运行期间能够使用的话:

set/p 语句可以帮助你

set/p a=请输入字符数据:

那么此时 a 变量则保存着您输入的字符数据

如果您需要这个程序永远运行期间都存在这个字符数据

则直接 set 定义一个字符串变量,如:

set "a=12345"

那么此时程序脚本每次运行的时候

a 变量永远保存着 12345 字符数据

您只需要调用这个变量即可

如果变量之间会产生变化,而这个变化的值是需要保存

供下一次程序使用,也就是说,程序是需要思维的

那么可以将 变量 的值写入一个数据文件内,如:

echo %a%>$

这里的 a 的值是未知的,我只是给你一个意思

意思就是把 a 的值写入数据文件内

那么现在需要调用它则是:

for /f "delims=" %%a in ($) do set "str=%%a"

echo %str%

此时的 str 变量则保存着上一次 a 的值

:: 中国批处理脚本联盟

使用os模块的system方法可以执行命令,例如执行D盘的cmdbat批处理脚本并传入参数p1:

import os

ossystem(r'D:\cmdbat p1')

set cnt=0

:loop

if "%1"=="" (echo %cnt% ) else (set /a cnt+=1&shift /1&goto :loop)

以上就是关于bat程序怎么判断输入的变量全部的内容,包括:bat程序怎么判断输入的变量、bat 如何传参数给 shell、bat调用VBS的时候怎么传参数,VBS怎么接收传过来的参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9738592.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存