Batch file 如何通过批处理文件将文本文件中的固定字符串替换为NULL
我有一个文本文件,我想用“”(NULL)替换NULL字符串。文本文件test.txt的内容为:Batch file 如何通过批处理文件将文本文件中的固定字符串替换为NULL,batch-file,batch-processing,Batch File,Batch Processing,我有一个文本文件,我想用“”(NULL)替换NULL字符串。文本文件test.txt的内容为: abc,1234,qwe,NULL 234,NULL,wer,jkl jkl,678,987,NULL 我希望test.txt中的输出如下所示: abc,1234,qwe, 234,,wer,jkl jkl,678,987, 我不熟悉这一点,请帮助我,提前感谢尝试以下代码: @echo off REM -- Prepare the Command Processor -- SETLOCAL ENA
abc,1234,qwe,NULL
234,NULL,wer,jkl
jkl,678,987,NULL
我希望test.txt中的输出如下所示:
abc,1234,qwe,
234,,wer,jkl
jkl,678,987,
我不熟悉这一点,请帮助我,提前感谢尝试以下代码:
@echo off
REM -- Prepare the Command Processor --
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
::BatchSubstitude - parses a File line by line and replaces a substring"
::syntax: BatchSubstitude.bat OldStr NewStr File
:: OldStr [in] - string to be replaced
:: NewStr [in] - string to replace with
:: File [in] - file to be parsed
:$changed 20100115
:$source http://www.dostips.com
if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
set "line=%%B"
if defined line (
call set "line=echo.%%line:%~1=%~2%%"
for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
) ELSE echo.
)
上述代码取自。如果要保存输出,请保存此批处理文件并运行以下命令
C:\> <name of the above batch file> "NULL" "" originalFile.txt > test.txt
调用集“line=%%%line:%originalText%=%replacedText%%%”
将负责搜索和替换文本文件中的NULL
单词。然后,程序将结果存储到test.txt
中
注意,
调用集
是必需的,因为它将扩展在同一行上传递的变量。您有其他方法吗?我想要更简单的方法,因为我不熟悉这一点,我已经为处理该文件编写了批处理文件,我想将其合并到同一批处理文件中,请建议一些其他方法这种方法在某种程度上是有效的,但并不完全有效,问题是在每行的每一端都显示1个空格,这是不可取的。
@echo off
setLocal enableDelayedExpansion
set filename=input.txt
set originalText=NULL
set "replacedText="
for /f "tokens=*" %%a in ('type %filename%') do (
set "line=%%a"
if defined line (
call set "line=%%line:%originalText%=%replacedText%%%"
echo !line!>> test.txt
) else (
echo.
)
)