![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-18 04:59 |
共 47,814 主题排行 / 349,907 发帖 / 今日 4 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » [求助]ECHO的一个文件固定位置插入行的命令 |
| 可打印版本 1,092 / 14 |
| 第1楼 mrhjzhang | 发表于 2006-06-13 15:08 |
| 初级用户 发帖 39 积分 100 | |
|
[求助]ECHO的一个文件固定位置插入行的命令 例如在winnt.sif中。
查找(findstr) [unattend] 这一行 然后在后面加入 OemPnPDriversPath="Drv\000;Drv\001;Drv\002;Drv\003;Drv\004;Drv\005;Drv\0065;Drv\007;Drv\008"这一行。 我会用findstr查找。 但是echo好像只能在文件末尾加入。 能不能在固定位置插入,并且如何搭配findstr? 希望大虾指导一下,最好不用第三方工具。 |
|
| 第2楼 kcdsw | 发表于 2006-06-13 18:23 |
| 中级用户 发帖 179 积分 404 | |
|
呵呵 我刚解决了一个类似的问题 希望对你有帮助
|
|
| 第3楼 mrhjzhang | 发表于 2006-06-13 20:20 |
| 初级用户 发帖 39 积分 100 | |
|
谢谢楼上的,有点申奥^_^,过会儿尝试中
|
|
| 第4楼 kcdsw | 发表于 2006-06-13 22:39 |
| 中级用户 发帖 179 积分 404 | |
| 第5楼 mrhjzhang | 发表于 2006-06-14 23:57 |
| 初级用户 发帖 39 积分 100 | |
|
!m!这个语法不大懂
|
|
| 第6楼 mrhjzhang | 发表于 2006-06-15 00:54 |
| 初级用户 发帖 39 积分 100 | |
|
!m![ == %day%[
[作用也搞不懂。 |
|
| 第7楼 kcdsw | 发表于 2006-06-15 12:24 |
| 中级用户 发帖 179 积分 404 | |
|
%m% 启用变量延迟 后就需要!m! 来表达
!m![ == %day%[ 这样做的目的是防止其中一个参数为空时程序出错跳出 |
|
| 第8楼 mrhjzhang | 发表于 2006-06-15 14:05 |
| 初级用户 发帖 39 积分 100 | |
|
基本成功,通过这次,居然连for的用法,if else的用法都学会了。
就是[ == %day%[,[的用法好奇怪啊^_^ 不过细节仍然在完善中。 主要是新文件会在每行后面多个空格。 还有就是空行被过滤了 |
|
| 第9楼 kcdsw | 发表于 2006-06-15 15:17 |
| 中级用户 发帖 179 积分 404 | |
|
空行的问题是这样 我也还没解决
多了个空格 是在你echo的语句出了问题 比如 echo 啊 >>a.txt 这样就会有空格 实际上那个if语句原来是这样的 if !m! == %day% (call :setp) & (echo %%s >>cover3.txt) else (echo %%s >>cover3.txt) 但是如果!m! 或者 %day% 为空的时候if语句会出错 所以加个 Last edited by kcdsw on 2006-6-15 at 15:19 ] |
|
| 第10楼 mrhjzhang | 发表于 2006-06-15 16:22 |
| 初级用户 发帖 39 积分 100 | |
|
@echo off
setlocal EnableDelayedExpansion set addpath=OemPnPDriversPath = "Drv\000;Drv\001;Drv\002;Drv\003;Drv\004;Drv\005;Drv\0065;Drv\007;Drv\008" set m=0 set day=0 del /f /q end.txt >nul 2>nul del /f /q temp.txt >nul 2>nul for /f "tokens=*" %%t in (e:\xp\i386\winnt.sif) do echo %%t>>temp.txt for /f "tokens=1 delims=:" %%i in ('findstr /i /n /p /c:"[Unattended]" temp.txt') do set day= %%i cls for /f "tokens=*" %%s in (temp.txt) do ( if !m![ == %day%[ ( (echo %addpath%>>end.txt) & (echo %%s>>end.txt)) else echo %%s>>end.txt set /a m=!m! + 1 ) ::: 以下是额外添加部分 @echo [GuiRunOnce]>>end.txt @echo Command0=%systemdrive%\MyRun.bat>>end.txt @echo [Networking]>>end.txt @echo [NetAdapters]>>end.txt @echo Adapter01 = params.Adapter01>>end.txt @echo [params.Adapter01]>>end.txt @echo [NetProtocols]>>end.txt @echo MS_TCPIP = params.MS_TCPIP>>end.txt @echo [params.MS_TCPIP]>>end.txt @echo AdapterSections = params.MS_TCPIP.Adapter01>>end.txt @echo [params.MS_TCPIP.Adapter01]>>end.txt @echo SpecificTo = Adapter01>>end.txt @echo IPAddress = 192.168.1.5>>end.txt @echo SubnetMask = 255.255.255.192>>end.txt @echo DefaultGateway = 192.168.1.1>>end.txt @echo DNSServerSearchOrder = 192.168.1.1>>end.txt del /f /q temp.txt >nul 2>nul copy /y end.txt e:\xp\i386\winnt.sif >nul 2>nul del /f /q end.txt >nul 2>nul cls rd /s /q "E:\XP\$OEM$" rd /s /q "E:\ElictXP\backup" rd /s /q "e:\xp\i386\lang" xcopy /s /y "E:\ElictXP\Alternative\*.*" e:\xp\i386 xcopy /s /y "E:\ElictXP\$OEM$" e:\xp exit |
|
| 第11楼 mrhjzhang | 发表于 2006-06-15 16:24 |
| 初级用户 发帖 39 积分 100 | |
|
基本ok了。
刚才调试老错,郁闷的一塌糊涂,原来是 set day= %%i 写成了set day = %%i 结果有两个day变量(day、day )。 空格搞定,但是空行,艾,没办法。 谢谢kcdsw大虾 |
|
| 第12楼 mrhjzhang | 发表于 2006-06-15 16:32 |
| 初级用户 发帖 39 积分 100 | |
|
还有一些除了空行比较难的
1.;如何也也不过滤;号, 2.中文路径如何解决?(copy /y "E:\ElictXP\替换\*.*" e:\xp\i386) ----------------- E:\XP>copy /y "E:\ElictXP\鏇挎崲\*.*" e:\xp\i386 系统找不到指定的路径。 3.$OEM$如何解决?( E:\XP>rd "E:\XP\$OEM$" 拒绝访问。 ----------- xcopy /s /y "E:\ElictXP\$OEM$" e:\xp 也会只拷贝里面的目录。 4.由于某个文件如Driver.cab比较大,如果已经修改过了就不拷贝。 简单说请问如何实现有选择的拷贝(如果两个文件大小一样就不拷贝,不一样才拷贝)? ^_^ |
|
| 第13楼 kcdsw | 发表于 2006-06-15 18:29 |
| 中级用户 发帖 179 积分 404 | |
|
问题1: 没看明白
问题2: 我这里没见乱麻啊 问题3: 不知道,难道要加引号? 问题4: 用if + dir 判断修改时间! [ Last edited by kcdsw on 2006-6-15 at 18:34 ] |
|
| 第14楼 mrhjzhang | 发表于 2006-06-15 18:38 |
| 初级用户 发帖 39 积分 100 | |
|
问题3: 引号加了。
问题4: 可否用文件大小代替时间? |
|
| 第15楼 kcdsw | 发表于 2006-06-15 19:33 |
| 中级用户 发帖 179 积分 404 | |
|
可以 看看dir的参数啊
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |