【发布时间】:2022-07-30 02:40:17
【问题描述】:
首先,批处理文件应该只能在我复制它的任何文件夹中工作。
例如,我有一个这样的文件名;
TEST2-FILE-REPLACE_05_07
我希望这个文件名改变如下。它只会用“+”替换第一个“_”字符。其他_将保持不变
TEST2-FILE-REPLACE+05_07
谁能告诉我怎么做?下面的代码有效,但使所有“下划线”字符为“+”。我只希望它使第一个“下划线”字符“+”。
@echo off
setlocal enabledelayedexpansion
for %%a in (*_*) do (
set file=%%a
ren "!file!" "!file:_=M!"
)
【问题讨论】:
-
最好的办法是停止使用
cmd,开始使用powershell:-) 比如windowscentral.com/…。如果你必须使用cmd,请下载第三方工具,让你的生活更轻松(如prename)。 -
上面的代码有效但是它改变了所有的下划线我希望它只改变第一个谢谢你提供的方法但是每次我需要改变它时都会有数百个文件这样.如果按照我上面给出的方法一键搞定的话,我会节省很多时间。
-
for /f "tokens=1,* delims=_" %%G in ('dir /a-d /b *_*') do ren "%%G_%%H" "%%G+%%H" -
@Squashman 非常感谢你!这就是我需要的!
-
@paxdiablo,当您可以在
for循环中简单地使用tokens时,建议使用第三方工具有点极端?