bat处理txt文档,将txt文档拖到bat图标上,自动生成修改后的txt文档
时间: 2024-03-08 11:51:09 浏览: 102
好的,以下是一个符合您需求的批处理脚本:
```
@echo off
setlocal enabledelayedexpansion
set /p inputfile="请将要修改的文本文件拖拽到此处:"
if not exist %inputfile% (
echo 文件不存在,请检查文件路径!
pause
exit
)
set outputfile=%~dpn1_modified.txt
(for /f "tokens=1-4 delims=," %%a in (%inputfile%) do (
set modifiedline=%%a,1,3%%b,38%%c
echo !modifiedline!
)) > %outputfile%
echo 修改已完成,修改后的文件名为%outputfile%。
pause
```
将上述代码复制到记事本中,另存为“modify.bat”(或其他你喜欢的文件名),确保文件类型选择“所有文件”,保存后双击打开该脚本即可使用。
注意:该脚本会在原始文件所在目录下生成一个新的文本文件“文件名_modified.txt”,如果文件名中有空格或特殊字符,需要将文件名用引号括起来,例如:“C:\test file\test.txt”。
相关问题
bat脚本处理txt文档,要求:1.文档开头新增内容;2.逐行读取文档,替换相关字符;3.将文档拖入bat程序图标,生成修改后的文档
您可以使用以下代码处理txt文档,实现要求1、要求2和要求3:
```
@echo off
setlocal enabledelayedexpansion
set search="old text"
set replace="new text"
echo This is the new content.>%~dp1temp.txt
type %1>>%~dp1temp.txt
(for /f "tokens=*" %%a in (%~dp1temp.txt) do (
set line=%%a
set line=!line:%search%=%replace%!
echo !line!
)) > %~dp1%~n1_modified.txt
del %~dp1temp.txt
echo Done!
pause
```
在这个示例中,我们首先将新内容写入临时文件`temp.txt`,然后将拖入的文档的内容追加到`temp.txt`中,这样就实现了要求1。接着,我们使用`for /f`命令逐行读取`temp.txt`中的内容,并使用`set`命令将每一行中的`search`字符串替换为`replace`字符串,最后将处理后的内容写回到同一目录下的以`_modified`结尾的文件中,这样就实现了要求2和要求3。最后,我们使用`del`命令删除临时文件`temp.txt`,并输出完成的提示信息。注意,在拖入文档时,需要将该脚本文件拖入到cmd窗口中,然后将文档拖入脚本文件的图标上。
阅读全文