【问题标题】:Split a string into 2 parts in batch将字符串批量拆分为 2 部分
【发布时间】:2013-03-28 23:10:23
【问题描述】:

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

示例:“Bonjour - Cher ami” => 左=Bonjour,右=Cher Ami

但它不起作用:

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

提前致谢

【问题讨论】:

  • 是否要读取文件夹名称并将名称拆分并打印?

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


【解决方案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%。

【讨论】:

  • 谢谢!它现在可以工作了,除了如果%%a = blabla - hehe,那么left=blablaheheright=hehe,而不是left=blablaright=hehe
  • 是的,你是对的,代码需要更多%%。将进行(希望是最后一次)编辑:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
  • 2020-11-08
  • 2015-11-30
相关资源
最近更新 更多