【问题标题】:Windows - Batch File string manipulationWindows - 批处理文件字符串操作
【发布时间】:2014-02-10 14:24:17
【问题描述】:

再次,我在 windows 上处理批处理文件时遇到了困难,再次希望您能再次帮助我。我一点都不懂;)

我现在有以下代码,当目录的名称中包含“R1”时,它会打印底层目录的名称。:

FOR /d %%d in (directory\*R1*) do (
SET x=%%d && echo %x%)

我现在将目录名称作为字符串设置在“x”中。我想在 \ 上拆分此字符串并获取最后一项。然后我想在最后一项中用“R2”替换“R1”。任何人都可以为我制作一个有效的功能吗?我迷路了。

谢谢。

【问题讨论】:

标签: windows string batch-file split


【解决方案1】:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /d /R %%d in (.\*R1*) do (
 SET "x=%%~nxd"
 SET "x=!x:R1=R2!"
 IF /i not "!x!"=="%%~nxd" ECHO old : "%%d" new : "%%~dpd!x!"
)

GOTO :EOF

这应该做你想做的事。 /R 开启FOR 的意思是“还有子目录”,我将您的directory 更改为. 以进行测试。

由于您似乎没有说要对字符串做什么,我只是简单地回应了旧版本和新版本。

if 语句将仅过滤掉那些在目录树的最后“叶”中某处具有R1 的目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 2017-11-14
    • 1970-01-01
    相关资源
    最近更新 更多