zoukankan      html  css  js  c++  java
  • bat 中如何初始化变量为空+如何判断文件夹是否为空

    bat 中,有时候,我们需要文件夹操作之前,希望知道文件夹是否问空,如果为空,就没必要执行后续操作,我的bat脚本如下:

    @echo off
    setlocal ENABLEDELAYEDEXPANSION    
    set "dir_flag="
    for /F %%s in ( 'dir /B target' ) do ( set dir_flag=%%s )
    if "!dir_flag!" == "" ( 
    echo target dir is null
    exit 0
    )else (
    echo target dir not null
    )

    关于上述脚本的解读如下:

    setlocal ENABLEDELAYEDEXPANSION    是设置环境变量延迟生效,主要是后面的for中使用和后面的!dir_flag!变量的读取,关于环境变量延迟,请自行百度
    set "dir_flag="    设置初始值为空,如果你要设置初始值为0之类的,可以 set "dir_flag=0"
    for /F %%s in ( 'dir /B target' ) do ( set dir_flag=%%s )  这是bat的命令赋值方式,将dir /B的执行结果复制给dir_flag,类似shell的dir_flag=`ls target`,
    具体就是dir /B target执行后会显示target文件夹下的文件名,如果有文件,那么dir_flag就不空,如果没文件,就是空的,关于命令赋值的方式,可以参考我的另外的博客:

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

    if "!dir_flag!" == ""  这一句是判断上面赋值的dir_flag是否为空
    另外,exit 0这里是退出脚本,如果你使用的是函数,可以使用goto:eof退出函数。

    上面脚本的执行结果如下:
    (1)当target下有文件时:

     (2)当target下没文件时

     
  • 相关阅读:
    python-模块-tkinter
    Linux-命令-基本-反引号``或$()
    Linux-命令-基本-time,ctime,atime
    Linux-命令-基本-find-exec
    Linux-命令-cp,mkdir
    Linux-命令-setup,ifup,ls,cd,touch重定向
    Linux-Buffer和Cache
    给Access数据库文件减肥
    GPT转MBR怎么转?
    Windows XP解决显示桌面图标消失的问题
  • 原文地址:https://www.cnblogs.com/zndxall/p/13957883.html
Copyright © 2011-2022 走看看