BAT批处理问题1
发布网友
发布时间:2024-10-19 16:43
我来回答
共1个回答
热心网友
时间:2024-10-24 01:00
问题1:
求日期简单,用变量替换掉日期里面的"-",或是直接写成echo %date:-=%也行..
@echo off
set da=%date:-=%
echo 今天日期是: %da%
pause
问题2:
你想保留最后一个文件夹,删除其它的,for语句是没这个直接参数或是直接用法的..
不过也可以办到.问题是你所说的"最后一个文件夹"是怎么自义的,文件夹不能确定的说哪个排在最后,看你按什么排序方式了,按大小,日期等,我这以按名称排序为例子,删除排在最后的一个文件夹..
@echo off
setlocal enabledelayedexpansion
set num=0
for /f "delims=" %%a in ('dir /ad /s /b /o-n') do (
set /a num+=1
if !num!==1 (echo %%a文件夹已被保留!) else rd /s /q "%%a" >nul
)
pause
这个搞法主要是结合dir命令来实现的:
dir /ad /b /o-n 使用空格式列出所有目录,包括子目录
/on参数就是按名称排序,如果有a,b,c,d四个文件夹,就依次显示abcd,当然还有其它的排序方式,你可以根据自己的需要改一下,具体用法dir/?查看..
/o-n参数就是反过来排序的意思,显示dcba.则删除d这个文件夹,
再利用num换算下, for每执行一行,num就累加1,当num值是1的时候肯定就是排在最前面的文件夹了,保留这个,如果num值不是1则是其它排在后面的文件夹了,就执行删除命令..