@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* user.txt') do (
set str=%%a
set str=!str:*:=!
set /a n+=1
if !n! equ 3 (
set /a num=%random%%%11+1
set str=!str:~0,-1!!num!
)
echo.!str!
)
pause>nul
[ Last edited by pusofalse on 2008-4-24 at 03:25 PM ]
Originally posted by terrytong at 2008-4-24 03:36 PM:
pause>nul
是什么意思啊大哥。
把命令结果输出到空设备,但却实实在在的执行过,只不过屏蔽了而已...
我是这样理解的...
2>nul 表示屏蔽错误信息
例如 net user 123 123是你系统中没有的用户
net user 123>nul 还是会显示命令结果,那是因为包含错误流的缘故,
net user 123 2>nul 连错误信息都给屏蔽了 不知这样说对不对~
貌似还有个 3>nul 不知什么意思,达人指教!
Originally posted by pusofalse at 2008-4-24 03:22 PM:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* user.txt') do (
set str=%%a
set str=!str:*:=!
set /a n+=1
if !n! equ 3 (
...
Originally posted by yhshiro at 2008-4-24 03:44 PM:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* user.txt') do (
set str=%%a
set str=!str:*:=!
set /a n+=1
if !n! equ 3 (
set /a num=%random%%%11+1
set str=!str:~0,-1!!num!
)
echo.!str!
)
pause>nul
改不了呀~在CMD里显示是改了,但是文件里面还是没变化!
还有能解释一下,这命令里面那个是指定行的,还有修改我指定字符的是哪句。。
Originally posted by yhshiro at 2008-4-24 03:44 PM:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* user.txt') do (
set str=%%a
set str=!str:*:=!
set /a n+=1
if !n! equ 3 (
set /a num=%random%%%11+1
set str=!str:~0,-1!!num!
)
echo.!str!
)>>1.txt
pause>nul
结果保存在1.txt中。。。
if !n! equ 3 (
set /a num=%random%%%11+1
set str=!str:~0,-1!!num!
)
读到第3行的时候开始替换,(包含空白行)
@echo off&setlocal enabledelayedexpansion
set /P str1=输入替换前字符:
SET /P STR2=输入替换后字符:
for /f "delims=" %%i in (test.txt) do (
set str=%%i
set str=!str:%str1%=%str2%!
echo !str!>>test1.txt
)
pause
因特殊字符问题 不要输入= 替换前字符可输入: 9] 公 告 替换后字符:可输入: 11] 公 告