使用批处理脚本从字符串中删除特定字符

时间:2013-06-03 10:40:48

标签: string batch-file wildcard

我想只删除特定字符到字符串中,只删除一次。例如,如果我有这个文件:

"1234 + test.txt"

我想删除“+”字符。我的问题是我不知道文件名中有多少“+”;顺便说一句,我只想删除第一个:

"1234 ++ test + hello + world.txt"

需要:

"1234 + test + hello + world.txt"

我需要使用bat脚本执行此操作。我有一些问题,正确使用“令牌,delims”参数....

编辑:我对Edoro的解决方案有疑问。如果filename是“++ plus - .txt”,%left%是“plus - .txt”,%right%是+ plus - .txt

2 个答案:

答案 0 :(得分:6)

纯批次

@echo off &setlocal
set "string=1234 ++ test + hello + world.txt"

for /f "delims=+" %%i in ("%string%") do set "left=%%i"
set "right=%string:*+=%"
set "new=%left%%right%"
echo %new%

..输出是:

1234 + test + hello + world.txt

答案 1 :(得分:1)

浏览sed脚本:

echo "1234 + test + hello + world.txt" | sed 's/+//'