|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
16 楼』:
Quote: | Originally posted by pusofalse at 2008-6-20 04:43 PM:
两位前辈的思路。。真是太棒了~
虽说出题,但里面有几道题我也不会~
第8楼,hat前辈的第一段代码。。。输出所有以abcd开头的行~ 貌似有点思维定向了~ |
|
改变一下思维可以吗?
findstr "^abcd" "a.txt"
|
|
|
2008-6-20 16:51 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
17 楼』:
1.因为不会用errorlevel,所以只能用笨办法了。
for /f "delims=" %%a in ('net user^|findstr "123"') do (
for %%i in (%%a) do (
if "%%i" equ "123" set user=123
))
if not defined user net user 123 "123 &^" /add
2.跟hat前辈的完全一样。。
3.for /l %%a in (1000 1 1999) do set var=%%a&>>num.txt call,echo %%var:~1%%
set n=-1
:1
set/a n+=1
set m=0000%n%
>>num.txt echo %m:~-3%
if %n% lss 999 goto 1
pause>nul
4.
call :lp tcp 7
call :lp udp 6
pause&goto :eof
:lp
for /f "skip=4 tokens=3,%2 delims=: " %%a in ('netstat -anop %1') do echo %%a &tasklist /fi "pid eq %%b"
5.又跟HAT前辈想一块去了。。
6.开启5个进程同时ping 进程1ping1-10 进程2 ping 11-20 用start给每个进程传递主机ID的参数。。。当然只ping1次
7。
@echo off
:1
set/a n+=1
if %n% gtr 9 pause>nul&exit
for /l %%a in (1 1 %n%) do call :lp %%a %n%
:lp
set/a res=%1*%2
set/p=%1*%2=%res% <nul
if %1 equ %2 (echo.&goto 1) else goto :eof
8:
不会用sort,再用笨办法- -|||
setlocal enabledelayedexpansion
for /f "delims=" %%a in (1.txt) do set/a n+=1&set !n!=%%a
for /l %%i in (%n% -1 1) do echo !%%i!
pause>nul
9:输入任意字母,然后新建文件,分别以这些个字母命名,然后dir/b/on一下
10.
@echo off
setlocal enabledelayedexpansion
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
set/a n+=1
set %%a=!n!
)
set/p var=
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do set var=!var:%%a=%%a !
echo %var%
pause
for %%a in (%var%) do set/a res+=!%%a!
echo %res%
pause>nul
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-6-20 17:46 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
18 楼』:
这是我的解题思路
汗。。。我何时发了两次。。。- -|||
[ Last edited by pusofalse on 2008-6-20 at 06:41 PM ]
|
|
2008-6-20 17:48 |
|
|
PPdos
高级用户
积分 783
发帖 268
注册 2006-12-26
状态 离线
|
『第
19 楼』:
第四题较有挑战性 我单发一帖吧
|
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃. |
|
2008-6-20 21:02 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
20 楼』:
第四题,我觉得必须用pid作为中介。。。不知还有没有别的方法。。。
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-6-20 21:13 |
|
|
wxcute
中级用户
积分 458
发帖 211
注册 2006-7-26
状态 离线
|
『第
21 楼』:
Q3:输出000-999到num.txt,最少两种方法
只写了一种(通用,max为最大值,改成你要的数字就行。)
@echo off
cd/d %~dp0
cd.>num.txt
set/a n=0
set/a x=1
set/a max=999
set/a num=%max%
:ui
set/a num/=10
if not %num% equ 0 set/a x*=10&&call :add_num wx_1&&goto :ui
set/a wx=%wx_1%+1
setlocal enableDelayedExpansion
:show_list
set nn=%x%%n%
echo !nn:~-%wx%,%wx%!>>num.txt
call :add_num n
if %n% gtr %max% goto :eof
goto :show_list
:add_num
set/a %1+=1
goto :eof
|
┌───────┐
├→学习→实践→┤
└───────┘ |
|
2008-6-21 23:35 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
22 楼』:
Quote: | Originally posted by wxcute at 2008-6-21 23:35:
Q3:输出000-999到num.txt,最少两种方法
只写了一种(通用,max为最大值,改成你要的数字就行。)
@echo off
cd/d %~dp0
cd.>num.txt
set/a n=0
set/a x=1
s ... |
|
我晕,楼上的是不是搞得太复杂了,本来一句命令就可以搞定的,如下:
@echo off&for /l %%i in (1000,1,1999) do set str=%%i&call,echo %%str:~1%%>>num.txt 或者:
@echo off&for /l %%i in (0,1,999) do set str=00%%i&call,echo %%str:~-3%%>>num.txt [ Last edited by zw19750516 on 2008-6-21 at 11:51 PM ]
|
批处理之家新域名:www.bathome.net |
|
2008-6-21 23:43 |
|
|
wxcute
中级用户
积分 458
发帖 211
注册 2006-7-26
状态 离线
|
『第
23 楼』:
回zw19750516
我是想让P自动计算位数,如:
max=9就输出0-9
max=14就输出00-14
max=495就输出000-495
等
|
┌───────┐
├→学习→实践→┤
└───────┘ |
|
2008-6-22 12:57 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
24 楼』:
::输出第一个以abcd开头的行
@echo off
for /f "delims=" %%a in ('findstr "^abcd" a.txt') do (
if not defined flag echo %%a
set flag=%%a
) ::输出第二个以abcd开头的行
@echo off
for /f "delims=" %%a in ('findstr "^abcd" a.txt') do (
if defined flag echo %%a&pause&exit
set flag=%%a
)
pause Q7:输出九九乘法表
@echo off&set .23= &set ".24= "
for /l %%a in (1,1,9) do (
setlocal enabledelayedexpansion
for /l %%b in (1,1,%%a) do (
set /a h=%%a*%%b
set "m=!m! %%b×%%a=!h!!.%%b%%a!"
)
echo.!m!&endlocal
)
echo\&pause Q8:倒序输出a.txt中的内容,当a.txt内容位数不一样时就不能用sort了。
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do (
set %%a=%%b&set w=%%a
)
for /l %%a in (%w% -1 1) do echo.!%%a!
pause Q9:字母排序,输入任意字母,进行排序 如输入z a u i b,则输出 a b i u z
@echo off
set var=a z c f y b
for %%a in (%var%) do set .%%a=a
for /f "delims=.=" %%a in ('set .') do echo %%a
pause Q10:计算任意字母之和
@echo off&setlocal enabledelayedexpansion
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
set /a nnn+=1&set %%a=!nnn!&set .!nnn!=%%a
)
set /a www=%random%%%5+1
for /l %%a in (1 1 %www%) do (
set /a www=!random!%%25+1
call set /a max+=%%.!www!%%
call set num=!num!%%.!www!%%
)
echo 随机生成的字母组为 !num!
echo 字母组的数位和为 !max!
pause>nul
|
致精致简! |
|
2008-6-22 13:09 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
25 楼』:
Quote: | Originally posted by 26933062 at 2008-6-22 01:09 PM:
Q9:字母排序,输入任意字母,进行排序 如输入z a u i b,则输出 a b i u z
@echo off
set var=a z c f y b
for %%a in (%var%) do set .%%a=a
for /f "delims=.=" %%a in ('set .') do echo %%a
pause |
|
Nice job!
|
|
|
2008-6-22 19:06 |
|
|
qzwqzw
银牌会员
天的白色影子
积分 2342
发帖 635
注册 2004-3-6
状态 离线
|
『第
26 楼』:
Q1:判断系统中有无123用户,无则添加用户名为123,密码为"123 &^"的普通用户
直接利用应用程序自己的错误处理就可以了
net user 123 "123 &^" /add
Q2:
a.txt:
abcdefg
123abcd
abcd123
abcdefg
asdfghabcda
1234
输出a.txt中所有以abcd开头的行
findstr "^abcd" a.txt
输出第一个以abcd开头的行
findstr "^abcd" a.txt>tmp.dat
set /p tmp=<tmp.dat
echo %tmp%
输出第二个以abcd开头的行
for /f "tokens=1* delims=:" %%i in ('findstr "^abcd" a.txt^|findstr /n ".*"^|findstr "^2:"') do echo %%j
|
|
2008-6-23 13:39 |
|
|
qzwqzw
银牌会员
天的白色影子
积分 2342
发帖 635
注册 2004-3-6
状态 离线
|
『第
27 楼』:
Q3:输出000-999到num.txt,最少两种方法
for /l %%i in (0,1,9) do for /l %%j in (0,1,9) do for /l %%k in (0,1,9) do echo %%i%%j%%k>>num.txt
if "%1"=="$$$" (>>num.txt echo %2) else (for /l %%i in (0,1,9) do call %0 $%1 %2%%i)
[ Last edited by qzwqzw on 2008-6-23 at 02:02 PM ]
|
|
2008-6-23 13:56 |
|
|
qzwqzw
银牌会员
天的白色影子
积分 2342
发帖 635
注册 2004-3-6
状态 离线
|
『第
28 楼』:
Q4:输入端口号,输出对应进程。如输入135,则输出svchost.exe的详细信息,要求代码同时兼容TCP与UDP端口
for /f "tokens=1-3,*" %%a in ('netstat -ano^|find ":123 "') do echo.%%a %%b %%c & tasklist /v /fi "pid eq %%d"
或者
netstat -ab
|
|
2008-6-23 14:27 |
|