如何在excel中把空值设置为零 bat如何将值设置为空,bat文件怎么改图标

批处理怎么把变量的值设成空值
@ echooffsetlocalenabledelayedexpansionset” datenum=0 ” set” ipath=” for/f” tokens=* ” % % Iin( 。\ logdate. txt)do(set/adatenum=1if!datenum!Equ2 (set“ipath=%%i”rem)给变量赋值时,最好将变量用引号括起来,因为bat对空格极其敏感 。

如何在excel中把空值设置为零 bat如何将值设置为空,bat文件怎么改图标

文章插图
【如何在excel中把空值设置为零 bat如何将值设置为空,bat文件怎么改图标】BAT的FOR中的eol如何让这个为空,不去除任何一行
这样:(leteol=)for/f” tokens=* eol=” Description:tokens=*然后就不需要delims了 。例如:33603360 95
如何在bat文件中将网关地址设置为空
Gateway=nonenone:未设置默认网关 。我对这个命令不熟悉,不知道能不能帮到你 。
如何在excel中把空值设置为零 bat如何将值设置为空,bat文件怎么改图标

文章插图
如何在批处理文件里面将变量设为未定义?
将变量留空以设置“a=”
BAT问题,用户输入为空则某个变量值为”XXX”,不为空则为输入的字符
@ echooffsetlocalenabledexpansionset/pstr=请输入驱动器号:if!str!@==@(设置结果=d) else(设置结果=!str!)回声!结果!中止
如何在excel中把空值设置为零 bat如何将值设置为空,bat文件怎么改图标
如何在excel中把空值设置为零 bat如何将值设置为空,bat文件怎么改图标
bat文件命令大全
。BAT是dos下的批处理文件 。cmd是nt内核命令行环境中的另一个批处理文件 。批处理文件或批处理程序是一个文本文件,包含几个MS-DOS命令,扩展名为 。蝙蝠 。当在命令提示符下键入批处理程序的名称时,MS-DOS成组地执行这个批处理程序中的命令 。任何可以在命令提示符下使用的命令都可以在批处理程序中使用 。另外,下面的MS-DOS命令是在批处理程序中专门使用的 。=========常用命令echo、@、call、pause、rem(提示:3360代替rem)是批处理文件最常用的命令 。让我们向他们学习 。====willsort编者注=========首先,@不是命令,而是DOS批处理的专用标记,只是用来屏蔽命令行的回声 。下面是一些在DOS命令行或批处理中可能会看到的特殊标记:CR(0D)命令行终止符转义(1B) ANSI转义符引导空格(20)常用=未使用的参数定义器复制命令文件连接器*?通配符””字符串限定符|命令管道文件重定向器@命令行echomask/参数开关guider:批量标签guider%批量变量guider其次,3360确实能起到rem注释的作用,而且更简洁有效;但是有两点需要注意:第一,除了:3360之外,任何以:开头的字符行在批处理时都被视为一个标签,后面的所有内容都被直接忽略,只是为了区别于正常的标签 。建议使用goto无法识别的标签,即3360后跟一个非字母数字字符的特殊符号 。第二,与rem不同,3360之后的字符行在执行时不会回显,无论回显on是否用于打开命令行回显状态,因为命令解释器并不认为它是有效的命令行 。在这方面,rem在某些情况下会比33603360更适用;另外,rem可以在config.sys文件中使用 。==============echo表示显示该命令后的字符 。echooff表示该语句后运行的所有命令都不显示命令行本身@它类似于echooff,但它是在每个命令行前面添加的命令行,表示该行在运行时不显示(它只能影响当前行调用另一个批处理文件(如果不调用而直接调用另一个批处理文件,执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令) 。暂停运行这句话将暂停批处理的执行,并显示按任意键继续的提示.在屏幕上 。等待用户按任意键,然后继续 。rem表示这个命令后面的字符是说明性的行(注释),不执行,仅供你以后参考(相当于程序中的注释) 。====willsort编者注====这里的描述比较混乱,不如直接引用 。
用个命令的命令行帮助更为条理————————-ECHO当程序运行时,显示或隐藏批处理程序中的正文 。也可用于允许或禁止命令的回显 。在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令 。使用ECHO命令可关闭此功能 。语法ECHO [ON|OFF]若要用echo命令显示一条命令,可用下述语法:echo [message]参数ON|OFF指定是否允许命令的回显 。若要显示当前的ECHO的设置,可使用不带参数的ECHO命令 。message指定让MS-DOS在屏幕上显示的正文 。——————-CALL从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止 。语法CALL [drive:][path]filename [batch-parameters]参数[drive:][path]filename指定要调用的批处理程序的名字及其存放处 。文件名必须用.BAT作扩展名 。batch-parameters指定批处理程序所需的命令行信息 。——————————-PAUSE暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行 。只能在批处理程序中使用该命令 。语法PAUSEREM在批处理文件或CONFIG.SYS中加入注解 。也可用REM命令来屏蔽命令(在CONFIG.SYS中也可以用分号(;)代替REM命令,但在批处理文件中则不能替代) 。语法REM [string]参数string指定要屏蔽的命令或要包含的注解 。=======================例1:用edit编辑a.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能 。批处理文件的内容为:命令注释:@echo off不显示后续命令行及当前命令行dir c:\*.* >a.txt将c盘文件列表写入a.txtcall c:\ucdos\ucdos.bat调用ucdosecho 你好显示”你好”pause暂停,等待按键继续rem 准备运行wps注释:准备运行wpscd ucdos进入ucdos目录wps运行wps批处理文件的参数批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符”%” 。%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串 。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示 。例2:C:根目录下有一批处理文件名为f.bat,内容为:@echo offformat %1如果执行C:\>f a:那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a:例3:C:根目录下一批处理文件名为t.bat,内容为:@echo offtype %1type %2那么运行C:\>t a.txt b.txt%1 : 表示a.txt%2 : 表示b.txt于是上面的命令将顺序地显示a.txt和b.txt文件的内容 。==== willsort 编注 ===============参数在批处理中也作为变量处理, 所以同样使用百分号作为引导符, 其后跟0-9中的一个数字构成参数引用符. 引用符和参数之间 (例如上文中的 %1 与 a: ) 的关系类似于变量指针与变量值的关系. 当我们要引用第十一个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下:初始状态, cmd 为命令名, 可以用 %0 引用cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10^ ^ ^ ^ ^ ^ ^ ^ ^ ^| | | | | | | | | |%0 %1 %2 %3 %4 %5 %6 %7 %8 %9经过1次shift后, cmd 将无法被引用cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10^ ^ ^ ^ ^ ^ ^ ^ ^ ^| | | | | | | | | |%0 %1 %2 %3 %4 %5 %6 %7 %8 %9经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10^ ^ ^ ^ ^ ^ ^ ^ ^| | | | | | | | |%0 %1 %2 %3 %4 %5 %6 %7 %8遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针.====================特殊命令if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦 。一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令 。有三种格式:1、if [not] “参数” == “字符串” 待执行的命令参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句 。例:if “%1″==”a” format a:==== willsort 编注 if 的命令行帮助中关于此点的描述为:IF [NOT] string1==string2 command在此有以下几点需要注意:1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种”防空”字符2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行=============================2、if [not] exist [路径\]文件名 待执行的命令如果有指定的文件,则条件成立,运行命令,否则运行下一句 。如: if exist c:\config.sys type c:\config.sys表示如果存在c:\config.sys文件,则显示它的内容 。****** willsort 编注 ********也可以使用以下的用法:if exist commanddevice 是指DOS系统中已加载的设备, 在win98下通常有:AUX, PRN, CON, NULCOM1, COM2, COM3, COM4LPT1, LPT2, LPT3, LPT4XMSXXXX0, EMMXXXX0A: B: C: …,CLOCK$, CONFIG$, DblBuff$, IFS$HLP$具体的内容会因硬软件环境的不同而略有差异, 使用这些设备名称时, 需要保证以下三点:1. 该设备确实存在(由软件虚拟的设备除外)2. 该设备驱动程序已加载(aux, prn等标准设备由系统缺省定义)3. 该设备已准备好(主要是指a: b: …, com1…, lpt1…等)可通过命令 mem/d | find “device” /i 来检阅你的系统中所加载的设备另外, 在DOS系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即指在内存中为其分配可引用的句柄.==================================3、if errorlevel待执行的命令很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列) 。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句 。如if errorlevel 2 goto x2==== willsort 编注 ===========返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式:if errorlevel 1 set el=1if errorlevel 2 set el=2if errorlevel 3 set el=3if errorlevel 4 set el=4if errorlevel 5 set el=5…当然, 也可以使用以下循环来替代, 原理是一致的:for %%e in (1 2 3 4 5 6 7 8…) do if errorlevel %%e set el=%%e更高效简洁的用法, 可以参考我写的另一篇关于获取 errorlevel 的文章出现此种现象的原因是, if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致在较小的返回码处就跳出; 而由于 set命令的 “重复” 赋值特性, 由大到小排序会导致较小的返回码 “覆盖” 较大的返回码.另外, 虽然 if errorlevel= command 也是有效的命令行, 但也只是 command.com 解释命令行时将 = 作为命令行切分符而忽略掉罢了===========================二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组 。如:goto end:endecho this is the end标号用”:字符串”来定义,标号所在行不被执行 。==== willsort 编注 label 常被译为 “标签” , 但是这并不具有广泛的约定性.goto 与 : 联用可实现执行中途的跳转, 再结合 if 可实现执行过程的条件分支, 多个 if 即可实现命令的分组, 类似 C 中 switch case 结构或者 Basic 中的 select case 结构, 大规模且结构化的命令分组即可实现高级语言中的函数功能. 以下是批处理和C/Basic在语法结构上的对照:Batch C /Basicgoto&: goto&:goto&:&if; if{}&else;{} /if&elseif;&endif;goto&:&if…; switch&case; /select casegoto&:&if;&set;&envar…; function() /function(),sub()==================================三、choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令 。注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法 。choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]描述:该工具允许用户从选择列表选择一个项目并返回所选项目的索引 。参数列表:/C choices 指定要创建的选项列表 。默认列表是 “YN” 。/N 在提示符中隐藏选项列表 。提示前面的消息得到显示,选项依旧处于启用状态 。/CS 允许选择分大小写的选项 。在默认情况下,这个工具是不分大小写的 。/T timeout 做出默认选择之前,暂停的秒数 。可接受的值是从 0到 9999 。如果指定了 0,就不会有暂停,默认选项会得到选择 。/D choice 在 nnnn 秒之后指定默认选项 。字符必须在用 /C 选项指定的一组选择中; 同时,必须用 /T 指定 nnnn 。/M text 指定提示之前要显示的消息 。如果没有指定,工具只显示提示 。/? 显示帮助消息 。注意:ERRORLEVEL 环境变量被设置为从选择集选择的键索引 。列出的第一个选择返回 1,第二个选择返回 2,等等 。如果用户按的键不是有效的选择,该工具会发出警告响声 。如果该工具检测到错误状态,它会返回 255 的ERRORLEVEL 值 。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0的 ERRORLEVEL 值 。在一个批程序中使用 ERRORLEVEL 参数时,将参数降序排列 。示例:CHOICE /?CHOICE /C YNC /M “确认请按 Y,否请按 N,或者取消请按 C 。”CHOICE /T 10 /C ync /CS /D yCHOICE /C ab /M “选项 1 请选择 a,选项 2 请选择 b 。”CHOICE /C ab /N /M “选项 1 请选择 a,选项 2 请选择 b 。”==== willsort 编注 ===============================我列出win98下choice的用法帮助, 已资区分Waits for the user to choose one of a set of choices.等待用户选择一组待选字符中的一个CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]/C[:]choices Specifies allowable keys. Default is YN指定允许的按键(待选字符), 默认为YN/N Do not display choices and ? at end of prompt string.不显示提示字符串中的问号和待选字符/S Treat choice keys as case sensitive.处理待选字符时大小写敏感/T[:]c,nn Default choice to c after nn seconds在 nn 秒后默认选择 ctext Prompt string to display要显示的提示字符串ERRORLEVEL is set to offset of key user presses in choices.ERRORLEVEL 被设置为用户键入的字符在待选字符中的偏移值====================================如果我运行命令:CHOICE /C YNC /M “确认请按 Y,否请按 N,或者取消请按 C 。”屏幕上会显示:确认请按 Y,否请按 N,或者取消请按 C 。[Y,N,C]?例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列):@echo offchoice /C dme /M “defrag,mem,end”if errorlevel 3 goto endif errorlevel 2 goto memif errorlevel 1 goto defrag:defragc:\dos\defraggoto end:memmemgoto end:endecho good bye此批处理运行后,将显示”defrag,mem,end[D,M,E]?” ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,批处理运行结束 。四、for 循环命令,只要条件符合,它将多次执行同一命令 。语法:对一组文件中的每一个文件执行某个特定命令 。FOR %%variable IN (set) DO command [command-parameters]%%variable 指定一个单一字母可替换的参数 。(set) 指定一个或一组文件 。可以使用通配符 。command 指定对每个文件执行的命令 。command-parameters为特定命令指定参数或命令行开关 。例如一个批处理文件中有一行:for %%c in (*.bat *.txt) do type %%c则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容 。

    推荐阅读