在批处理脚本中从文件名中提取和替换字符串

时间:2018-01-11 12:59:51

标签: batch-file

我尝试从文件列表中提取文件名,替换特定字符串并将其提供给进程。然而,我被困在更换。有什么想法吗?

@echo on
setlocal ENABLEDELAYEDEXPANSION

for %%f in (*.txt) do (

            REM echo %%~nf
            set filename=%%~nf
            echo %@filename%
            set Replaced=replaced
            set @ver=!%filename:ToBeReplace=%Replaced%!
            echo %@ver%    
            )

来自echo的{​​{1}}不是我的预期。提前谢谢!

1 个答案:

答案 0 :(得分:1)

我在与以下脚本相同的文件夹中有一个名为something.txt的文件:

@echo off
setlocal ENABLEDELAYEDEXPANSION

set "old=some"
set "new=else"
for %%f in (*.txt) do (

            REM echo %%~nf
            set "filename=%%~nf"
            echo !filename!
            rem set Replaced=replaced
            set "@ver=!filename:%old%=%new%!"
            echo !@ver!    
)

执行后的optuput是:

  

东西

     

elsething