将一个字符串分成两部分

时间:2013-03-28 23:10:24

标签: string loops for-loop batch-file split

我想将每个文件夹的名称(在for循环中)分成两部分:左边部分(分隔符“ - ”之前)和右边部分(分隔符之后)。

示例:“Bonjour - Cher ami”=> left = Bonjour,对= Cher Ami

但它不起作用:

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

提前致谢

1 个答案:

答案 0 :(得分: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%。