1、移动当前文件夹下面所有文件夹底下的文件到当前文件夹
@echo off
for /d %%i in (*) do (
echo %%i
for %%j in (%%i\*) do (echo %%j
move %%j .\
)
)
pause
解释:第一个for循环加上了/d参数,因为要遍历文件夹,in (*)也就是当前文件夹下面所有的目录,第二个for循环因为操作的是文件,因此不带参数,in (%%i*),表示在上一层目录下面所有的文件。在for循环中一定不要有注释行。
2、去除字符串空格
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set a= abcd
::去除左边的空格
:left
if "%a:~0,1%"==" " set a=%a:~1% && goto left
echo %a%
::去除字符串包含的所有空格
set a=abcd efg
set a=%a: =%
echo %a%
::去除字符串右边所有空格
set a=abcdefg
:right
if "%a:~-1%"==" " (set a=%a:~0,-1%
echo %a%
goto right
)
echo %a%A
3、获取当前网段下面所有ip的状态
::测试当前网段下面所有ip的状态,默认当前的子网掩码为255.255.255.0
@echo off
set OutputFile=ipState.txt
::从ipconfig命令的结果获取ip地址
for /f "delims=: tokens=2" %%i in ('ipconfig ^| find /i "IPv4"') do set ip=%%i
::将ip地址两边的空格都去除掉
:left
if "%ip:~0,1%"==" " set ip=%ip:~1% && goto left
:right
if "%ip:~-1%"==" " (
set ip=%ip:~0,-1%
goto right
)
echo 当前ip:%ip%
::获取到了两边没有空格的ip地址
for /f "delims=. tokens=1,2,3,4" %%i in ("%ip%") do (
set ip1=%%i
set ip2=%%j
set ip3=%%k
set ip4=%%l
)
::设置数值一定要加上/a这个参数
set /a online=0
set /a offline=0
set /a total=256
set /a x=0
:resume
ping %ip1%.%ip2%.%ip3%.%x% -n 1 -w 200>nul && set /a online+=1 && echo %ip1%.%ip2%.%ip3%.%x% >> %OutputFile% || set /a offline+=1
set /a x+=1
if %x% leq %ip4% goto resume
echo online=%online%
echo offline=%offline%
pause