CMD 备忘录

判断空目录

bat 命令如何判断一个文件夹是否为空文件夹,并根据结果执行其它 bat 文件,空的执行 1.bat ,不是空的执行 2.bat

如下:

dir /a /s /b d:\test\ | findstr . >nul && 2.bat || 1.bat
rem 将d:\test\ 换成需要判断的文件夹路径。
@echo off
dir /a /b "要查找的文件夹"|findstr .>nul 2>nul && echo 有文件 || echo 没有文件
pause

删除

删除有文件的文件夹:rd /s /q 盘符名:\\文件夹

强制删除文件夹或文件

DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1

获取当前bat文件所在目录

cd /d %~dp0

批量 ping

start "主机1" cmd /k ping 192.168.0.1 -t
start "主机2" cmd /k ping 192.168.0.2 -t
start "主机3" cmd /k ping 192.168.0.3 -t
start "主机4" cmd /c ping 192.168.0.4 -t
start "主机5" cmd /c ping 192.168.0.5 -t
start "主机6" cmd /c ping 192.168.0.6 -t

清除 IP 缓存

ipconfig /flushdns

获取文件夹大小

@echo off
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /b /ad') do (
    for /f "tokens=2 delims=:" %%b in ('du -q "%%a" 2^>^&1 ^| findstr "Size:"') do (
        echo %%a: %%b
    )
)
pause

使用 if 比较两个字符是否相等

@echo off
set /p flag="please input y/n :"
if "%flag%" == "y" (
    echo "==y"
) else (
    if "%flag%" == "n" (
        echo "==n"
    ) else (
        echo "other"
    )
)

用 goto 命令执行循环,有如下代码可供参考:

@echo off
set n=0

:abc
set /a n+=1
if %n%==60 exit
goto abc

每次执行 n+1,当 n=60 就退出

进行跳转,之前可以加上判断条件,判断是否跳到开头继续执行


fc 判定结果返回的 %errorlevel% 有三种情况

文件内容相同 值为0
不相同值为1
有一个文件不存在值为2
所以加上 %errorlevel% 的判断即可

@echo off
:abc
rem 你自己添加
fc file1 file2
if %errorlevel%==0 pause else (goto abc)
rem 你自己添加

追问
如何让它持续循环呢。
、或者说循环语句是什么

追答

if %errorlevel%==0 goto :next else (goto abc)

上面这个就是控制循环语句,当fc比较的文件相同,跳到next标签继续执行,否则到abc(循环入口)继续执行,相当于直接又进了循环。当跳到next标签后就可以加入后续处理的语句,记得在结尾加上goto abc,就会再跳到循环入口,进入循环。

隐藏运行 bat 文件

运行 bat 时隐藏 cmd 窗口。新建一个 shrjj.vbs 文件,文件内容为:

Set ws = CreateObject("Wscript.Shell") 
ws.run "cmd /c E:\SublimeWorks\exe\shrjj.bat",vbhide

删除最后一行

sed "1d;$d" a.txt | more >b.txt

sed -i "$d" a.txt

删除空行

findstr /v /r /c:"^$" old_file.txt > new_file6.txt

/v 仅打印不包含匹配项的行;

/r 将搜索字符串作为一般表达式使用;

一般表达式快速参考:

/c:string 使用指定字符串作为文字搜索字符串。

输出当前时间

echo %date:~0,4%/%date:~5,2%/%date:~8,2%%time:~0,2%:%time:~3,2%:%time:~6,2%

3.获取日期和时间格式 : %date:x,y%以及%time:x,y%

说明: x是开始位置,y是取得字符数\n\n比如说我要获取完整的日期和时间,

格式:

%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%\n

结果: 20221215073219

重新释放和获取 IP

ipconfig /flushdns # 刷新 DNS
ipconfig /release 和 ipconfig /renew 来重新获取动态IP

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值