第 16 楼
Re 15楼
发表于 2008-09-09 22:09 · 中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
第 17 楼
发表于 2008-09-09 22:25 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
set count=0
set /p newname=请输入:
type nul>"test.bak"
for /f "tokens=1,2* delims=:" %%a in ('findstr /n .* "test.rc"') do (
>>"test.bak" echo.%%b
set /a count+=1
if !count! equ 4 goto :next
)
goto :eof
:next
>>"test.bak" echo 578, "%newname%"
for /f "skip=5 tokens=1,2* delims=:" %%a in ('findstr /n .* "test.rc"') do (
>>"test.bak" echo.%%b
)
move /y "test.bak" "test.rc"
第 18 楼
发表于 2008-09-09 23:16 · 中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
有个很奇怪的问题,如果直接回车,只有第一次修改有效,修改几次后,直接回车就不能修改了。用tskill explorer 重启explorer.exe后的第一次直接回车有效,然后直接回车无效。
[ Last edited by tireless on 2008-9-9 at 04:01 AM ]
第 19 楼
发表于 2008-09-09 23:22 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
set count=0
set newname=
:begin
set /p newname=请输入:
if "%newname%" equ "" (
echo 输入不能为空
goto :begin
)
type nul>"test.bak"
for /f "tokens=1,2* delims=:" %%a in ('findstr /n .* "test.rc"') do (
>>"test.bak" echo.%%b
set /a count+=1
if !count! equ 4 goto :next
)
goto :eof
:next
>>"test.bak" echo 578, "%newname%"
for /f "skip=5 tokens=1,2* delims=:" %%a in ('findstr /n .* "test.rc"') do (
>>"test.bak" echo.%%b
)
move /y "test.bak" "test.rc"
第 20 楼
发表于 2008-09-09 23:36 · 中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
不是的,输入其他的不会出错。
只是直接回车不总是有效(只有第一次修改直接回车能替换成空字符,之后就不能替换成空字符了。直到用 tskill explorer 重启explorer后的第一次又可以替换...)
替换成空的很有用,因为这样开始按钮就会消失:D,所以可否修复这个"BUG"?
[ Last edited by tireless on 2008-9-9 at 04:00 AM ]
第 21 楼
发表于 2008-09-09 23:43 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
经测试,17楼的代码不管第几次回车,总是能够正确替换test.rc的内容。
至于你说的“之后就不能替换成空字符了”,能描述一下你是怎样测试的不?
第 22 楼
发表于 2008-09-10 00:08 · 中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
Originally posted by HAT at 2008-9-9 03:43 AM:
经测试,17楼的代码不管第几次回车,总是能够正确替换test.rc的内容。
至于你说的“之后就不能替换成空字符了”,能描述一下你是怎样测试的不?
对,没错。
但我是用来替换开始按钮后,就有问题,情况是:
第一次直接回车(替换开始按钮)
第二次随便输入(替换开始按钮)
然后用下面的批处理测试
@echo off
set /p newname=请输入:
echo %newname%
pause
出现的情况是,当我直接回车,%newname%就会变为上次的输入。 真是诡异~
[
Last edited by tireless on 2008-9-9 at 04:24 AM ]
第 23 楼
发表于 2008-09-10 00:14 · 中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
第 24 楼
发表于 2008-09-10 01:18 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
给17楼的代码加个变量初始化吧
@echo off
setlocal enabledelayedexpansion
set count=0
set newname=
set /p newname=请输入:
type nul>"test.bak"
for /f "tokens=1,2* delims=:" %%a in ('findstr /n .* "test.rc"') do (
>>"test.bak" echo.%%b
set /a count+=1
if !count! equ 4 goto :next
)
goto :eof
:next
>>"test.bak" echo 578, "%newname%"
for /f "skip=5 tokens=1,2* delims=:" %%a in ('findstr /n .* "test.rc"') do (
>>"test.bak" echo.%%b
)
move /y "test.bak" "test.rc"
第 25 楼
发表于 2008-09-10 01:31 · 中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正