标题: [文件操作] 批处理如何替换文件内容? [打印本页]
作者: hdhyg 时间: 2012-7-18 00:34 标题: 批处理如何替换文件内容?
求一批处理文件。
把当前目E:\文件 目录下的每个.bat文件内的内容替换成本身的文件名。不带类型扩展名。
如附件12345.bat文件
把里的1930000000改成自身的文件名123456(也就是说把每个文件的第16行ws.sendkeys后面“”里面的内容,改成自己本身的文件名。)
注:要改的都是每个文件里面都是第16的内容
请高手指点。
作者: hdhyg 时间: 2012-7-18 11:15
本帖最后由 hdhyg 于 2012-7-18 11:16 编辑
有人能帮下忙吗。批处理和VBS都可以,只要能实现这功能就行。万份感谢!
作者: 乱码 时间: 2012-7-18 11:37
本帖最后由 乱码 于 2012-7-18 11:42 编辑
path = "E:\文件"
Set fso = CreateObject("Scripting.FileSystemObject")
For Each x In fso.GetFolder(path).Files '遍历指定文件夹里的所有文件
word = Split(x.OpenAsTextStream.ReadAll,vbCrLf) '以换行分割成数组
word(15) = "Ws.SendKeys """ & fso.GetBaseName(x.Name) & """" '对第16行重写
x.OpenAsTextStream(2).Write Join(word,vbCrLf) '重新写入原文件
Next
MsgBox "OK"
VBS脚本,因为数组是从0开始的,所以word(15) 表示第16行,这里是对16行进行从写、
如果是其他行的话,自己看情况修改对应行就好了、
作者: apang 时间: 2012-7-18 12:05
- @echo off&pushd "e:\文件\"
- for /f "delims=" %%a in ('dir /b *.bat') do (
- setlocal enabledelayedexpansion
- (for /f "usebackq delims=" %%b in ("%%a") do (
- set/a n+=1
- if "!n!"=="16" (echo ws.sendkeys "%%~na") else echo %%b
- ))>$
- move $ "%%a"&endlocal
- )
复制代码
作者: hdhyg 时间: 2012-7-18 12:32
谢谢上面2位高手,真是不知道用什么语言能表达现在心情,,真是万分感谢。。都能实现,都是高人。
作者: cjiabing 时间: 2012-7-18 15:38
好得你说的是第十六行,否则你死悄悄了!
作者: poter 时间: 2012-7-20 21:38
保存为stat.bat
@echo off
setlocal enableDelayedExpansion
for /f "tokens=*" %%i in ('dir /a-d /b *.bat^|findstr /v "stat.bat"') do (
(for /f "tokens=*" %%j in (%%i) do (
set /a a+=1
if !a!==16 (
echo ws.sendkeys "%%~ni"
) else echo %%j
))>>$
move /y $ %%i
)
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |