Windows 使用用户输入值编辑html文件的批处理文件

Windows 使用用户输入值编辑html文件的批处理文件,windows,file,batch-file,rename,Windows,File,Batch File,Rename,我希望创建一个bat文件,当运行该文件时,将提示用户输入一个简单的值。然后,该值用于编辑源文件,它将替换通用值,然后将该文件另存为新文件。我已经完成了文件创建部分,但是我对提示符有一个问题,因为新文件只有一个空值 这就是我到目前为止所做的: @echo off set "replace=CHANGE-ME" set /p new_variable="replaced" set "source=download.volt" set "target=download.shtml" setloca

我希望创建一个bat文件,当运行该文件时,将提示用户输入一个简单的值。然后,该值用于编辑源文件,它将替换通用值,然后将该文件另存为新文件。我已经完成了文件创建部分,但是我对提示符有一个问题,因为新文件只有一个空值

这就是我到目前为止所做的:

@echo off
set "replace=CHANGE-ME"
set /p new_variable="replaced"

set "source=download.volt"
set "target=download.shtml"

setlocal enableDelayedExpansion
(
   for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %source%') do (
      set "line=%%b"
      if defined line set "line=!line:%replace%=%new_variable%!"
      echo(!line!
   )
) > %target%
endlocal
我认为我的语法很接近,但我不确定我的出发点


谢谢

你在新变量中使用了什么特殊字符吗?对我来说很有用-请说明你用了什么替换值。我使用的是newstring值。不需要特殊字符。我看这个代码没有错。是否在download.shtml上设置了系统或只读属性?在启用DelayedExpansion之前,请尝试>NUL 2>&1 del/f%target%。%target%是否包含空格?尝试引用。如果这不起作用,并且您没有东西可以尝试,那么您可以尝试使用dbenham的优秀方法来执行替换。或者,您可以让批处理脚本生成download.shtml,而不必使用中间download.volt。感谢您的反馈。很明显,我是星期五的病人。今天早上它开始工作了!