2015-05-06 6 views
0

У меня есть две строковые переменные:Пакетный поиск и замена символов в строке

@echo off 
set string_1=abc def ghj 
set string_2=abc_def_ghj 

В string_1 мне нужно заменить пробелы с %20, так что результат будет:

abc%20def%20ghj 

В string_2 мне нужно заменить _ на пробелы, поэтому результат будет следующим:

abc def ghj 

Мне нужно использовать пакетный (.bat) файл, каковы варианты для этого?

ответ

1

Вы можете использовать string manipulation, чтобы заменить нужные символы.

@echo off 
setlocal enabledelayedexpansion 

set "string_1=abc def ghj" 
set string_2=abc_def_ghj 

set new_string_1=!string_1: =%%20! 
set new_string_2=%string_2:_= % 

echo Old String 1: %string_1% 
echo New String 1: %new_string_1% 
echo Old String 2: %string_2% 
echo New String 2: %new_string_2% 
pause 

мне пришлось включить замедленное разложение в строке 1, так что внутренние и внешние признаки процента не компенсируют друг друга.

2

Variable Edit/Replace с minimalized EnableDelayedExpansion объем:

@ECHO OFF 
SETLOCAL enableextensions 

set "string_1=1abc def ghj" 
SETLOCAL enabledelayedexpansion 
    set "string_1=!string_1: =%%20!" 
ENDLOCAL&set "string_1=%string_1%" 
echo %string_1% 

set "string_2=2abc_def_ghj" 
set "string_2=%string_2:_= %" 
echo %string_2% 

Примечание ENDLOCAL&set "string_1=%string_1%" линия (и не меняют его).

Выход:

==>30087503.bat 
1abc%20def%20ghj 
2abc def ghj 
Смежные вопросы