windows脚本例子

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

猜你喜欢

转载自blog.csdn.net/whoami_I/article/details/84592888