使用批处理脚本搜索和替换文本文件中的文本

时间:2019-03-11 13:23:27

标签: batch-file

我最近进行了一项日常任务,其中一个现有的.bat文件每天运行时会创建所需的网络文件夹...作为任务的一部分,我正在考虑修改文本文件的内容,作为该任务的一部分。初始设置,即运行.bat文件。

以下是.bat文件的摘录,该文件已根据需要分配了日,月和年,例如11/03/2019,并创建任务需要的相关文件夹,并跨控制文件(Filename2)复制到新创建的文件夹。我要做的是除了创建文件夹之外,还要替换Filename2中的文本。

set vb=%temp%\newdate.vbs
echo Newdate = (Date()+0) > %vb%
echo Yyyy = DatePart("YYYY", Newdate) >> %vb%
echo   Mm = DatePart("M"   , Newdate) >> %vb%
echo   Dd = DatePart("D"   , Newdate) >> %vb%
echo   Wd = DatePart("WW"  , Newdate) >> %vb%
echo   Wn = DatePart("Y"   , Newdate) >> %vb%
echo   Ww = datepart("W"   , Newdate) >> %vb%

echo Wscript.Echo Yyyy^&" "^&Mm^&" "^&Dd^&" "^&Wd^&" "^&Ww^&" "^&Wn >> %vb%

FOR /F "tokens=1-6 delims= " %%A in ('cscript //nologo %vb%') do (
        set Year=%%A
        set Month=%%B
        set Day=%%C
        set Week#=%%D
        set Weekday#=%%E
        set Day#=%%F
            )
del %vb%

for /f "Tokens=%Month%" %%A in (
  "January February March April May June July August September October November December") do (
  set Alfamonth=%%A
)

If %Month% lss 10 set Month=0%Month%
if %Day% lss 10 set Day=0%Day%
set Today=%Day%%Month%%Year%
set Tomorrow=%Today%+1


set Filename="path"
echo Source path\
echo filename = %Filename%
echo.
echo Today = %Today%
echo Year =  %Year%
echo Alpha month = %Alfamonth%
echo Day=%Day%
echo Month=%Month%

md %FileName%\%Year%\%Alfamonth%" "%Year%\Client\%Day%-%Month%-%Year%

::Copy CONTROL FILE

set Filename2="path\Client\Client.ini"
copy %Filename2% %FileName%\%Year%\%Alfamonth%" "%Year%\Client\%Day%-%Month%-%Year%\"Raw Data"\"%Day%%Month%%Year%.ini"

我要修改的控制文件上有2行:

directory=/dataload/fulfill/data/Client_Feb2018/02022018/

filename=Client_01022018

对于目录,我需要每天更改MonYYYYDDMMYYYY部分,例如/dataload/fulfill/data/Client_Mar2019/11032019/。 文件名行需要相同的更改,例如Client_01022018Client_11032019。 鉴于已经分配了%Day%%Month%%Year%,我希望这将是一件容易的事情,我们将不胜感激!

p.s。我是批处理脚本的新手。

0 个答案:

没有答案