bat脚本修改txt文档,要求:将txt文档拖入CMD窗口,自动生成修改后的txt文档
时间: 2024-03-05 11:50:33 浏览: 78
您可以使用以下代码实现将txt文档拖入CMD窗口,自动生成修改后的txt文档:
```
@echo off
setlocal enabledelayedexpansion
set search="old text"
set replace="new text"
set file=%1
set name=%~n1
set ext=%~x1
echo Processing %file%...
(for /f "tokens=*" %%a in (%file%) do (
set line=%%a
set line=!line:%search%=%replace%!
echo !line!
)) > %name%_modified%ext%
echo Done!
pause
```
在这个示例中,我们使用`set`命令获取拖入的文档的文件名、文件名(不含扩展名)和扩展名。然后,我们使用`for /f`命令逐行读取文档的内容,并使用`set`命令将每一行中的`search`字符串替换为`replace`字符串,最后将处理后的内容写入同一目录下的以`_modified`结尾的文件中。注意,在拖入文档时,需要将该脚本文件拖入到cmd窗口中,然后将文档拖入cmd窗口中。
相关问题
bat处理txt文档,将txt文档拖到bat图标上,自动生成修改后的txt文档
好的,以下是一个符合您需求的批处理脚本:
```
@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”。
使用批处理,对txt文档增加、修改相关内容。要求如下: 1.将此txt文档拖入cmd窗口;
好的,您可以使用以下代码实现对txt文档的增加、修改内容:
```
@echo off
set /p file="请将txt文档拖入此处并按回车键:"
set /p add="请输入要添加的内容:"
set /p modify="请输入要修改的内容(原内容):"
set /p replace="请输入要替换的内容(新内容):"
if exist "%file%" (
echo 文件存在,开始进行操作
REM 添加内容
echo %add% >> %file%
REM 修改内容
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (%file%) do (
set line=%%a
if "!line:%modify%=%replace%!" neq "%%a" (
echo !line:%modify%=%replace%!>>temp.txt
) else (
echo %%a>>temp.txt
)
)
del %file%
ren temp.txt %file%
echo 操作完成!
) else (
echo 文件不存在,请检查后重试!
)
pause
```
使用方法:
1. 将以上代码复制到记事本中,另存为批处理文件(例如modify.bat)。
2. 将需要修改的txt文档拖入该批处理文件所在的文件夹中。
3. 双击运行该批处理文件,按照提示输入要添加、修改、替换的内容。
4. 操作完成后,批处理窗口会提示操作完成,同时文档中的内容也会相应地被修改。
注意事项:
1. 本方法只适用于txt文档,对于其他格式的文档不适用。
2. 修改内容时,只会替换文本中第一次出现的原内容,若要替换所有出现的内容,需要进行多次操作。
3. 为了避免误操作,建议在测试阶段仅对备份文件进行操作。