2013-03-28 6 views
1

Я хочу разбить имя каждой папки (в цикле for) на две части: левую часть (перед разделителем «-») и правую часть (после разделителя) ,Разделить строку на две части в партии

Пример: "Bonjour - Cher Ами" => левый = Bonjour, справа = Cher Ami

Но это не работает:

for /d %%a in (*) do (
    set "fname=%%a" 
    set "right=%fname:* - =%" 
    call set "left=%%fname: - %right%=%%" 
    echo [%left%] * [%right%] 
) 

Заранее спасибо

+1

Вы хотите узнать имена папок и разделить имена и распечатать их? – Illusionist

ответ

1

Внутри кода блок вам нужен другой синтаксис:

@echo off &setlocal 
for /d %%a in (*) do (
    set "fname=%%~a" 
    call set "right=%%fname:* - =%%" 
    call call set "left=%%%%fname: - %%right%%=%%%%" 
    call echo [%%left%%] * [%%right%%] 
) 

Если нет «-» в т имя папки, затем% left% ==% right%.

+0

Спасибо! Теперь он работает, за исключением того, что если '%% a = blabla - hehe', то' left = blablahehe'' right = hehe', вместо 'left = blabla'' right = hehe' – Basj

+1

Да, вы правы, код требуется больше '%%'. Сделает (надеюсь, последнее) редактирование :) – Endoro

Смежные вопросы