• 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下没文件时

     
  • 相关阅读:
    重塑矩阵
    数组拆分
    最大连续1的个数
    石子游戏
    概率与期望知识总结
    洛谷 P3951 NOIP 2017 小凯的疑惑
    关于结构体的初始化
    山海经:线段树维护最大子段和
    偏序 分块+bitset
    分块练习C. interval
  • 原文地址:https://www.cnblogs.com/zndxall/p/13957883.html
Copyright © 2020-2023  润新知