首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Windows批处理编程将文件夹重命名为与该文件夹中的第一个文件的文件名相同的文件夹?

如何使用Windows批处理编程将文件夹重命名为与该文件夹中的第一个文件的文件名相同的文件夹?
EN

Stack Overflow用户
提问于 2015-12-17 22:35:44
回答 1查看 2.1K关注 0票数 0

我有一组大约3,000个文件夹,名为XYZ-1到XYZ-3000。在这些文件夹中有一组图像文件和一个描述文本文件。例如:

  • Property123_0001.jpg
  • Property123_0002.jpg
  • Property123_0003.jpg
  • ..。
  • Property123_0085.jpg
  • Property123_0086.jpg
  • Z_Description.txt

每个文件夹中的.jpg文件数不同,但始终只有一个描述文件。每个目录的映像文件都有不同的名称,例如,‘xyz-1可能包含Property123,而XYZ-10可能包含Easement789。

我需要在Property123文件的“.jpg”部分之后重命名包含文件的文件夹。理想情况下,我会截断尾随数字和下划线,但即使保留这些数字,也比XYZ-1名称更好。

我正在处理一个批处理文件,但是我的文件不能运行,我也不知道为什么。

我现在拥有的是:

代码语言:javascript
复制
for /d %%D in (*) do (
   set "_dir=%%D"
   set /a "_first=1"
   cd "%%D"
   for %%F in (*) do (
      if %_first%==1 set "_name=%%~nF"
      set /a "_first=0"
   )
   cd ..
   ren %_dir% %_name%
)

不幸的是,当我运行它时,命令窗口就会立即关闭。我试着在结尾处放一个暂停命令,但这并没有使窗口保持打开。文件/文件夹没有发生任何变化。

我从命令行尝试了我的语法,一切看起来都很好。所以我不知道问题出在哪里。能帮我个忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-17 22:46:17

试试这个:

代码语言:javascript
复制
@echo off
setlocal EnableDelayedExpansion
for /d %%D in (*) do (
   set "_dir=%%D"
   set "_name=%%D"
   set /a "_first=1"
   cd "%%D"
   for %%F in (*) do (
      if !_first!==1 set "_name=%%~nF"
      set /a "_first=0"
   )
   cd ..
   ren !_dir! !_name!
)

您需要在这里使用setlocal EnableDelayedExpansion,并使用!而不是在循环中的%。

我还添加了set "_name=%%D“,这样如果第二个文件夹不包含文件,它就不会尝试将第二个文件夹更改为第一个文件夹名。

编辑:

还考虑到下划线部分:

代码语言:javascript
复制
@echo off
setlocal EnableDelayedExpansion
for /d %%D in (*) do (
   set "_dir=%%D"
   set "_name=%%D"
   set /a "_first=1"
   cd "%%D"
   for %%F in (*) do (
      if !_first!==1 (
        set "_name=%%~nF"
        set /a "_first=0"
        if NOT "!_name!"=="!_name:_=!" (
          set "subfix=!_name:*_=!"
          for /f "delims=" %%B in ("!subfix!") do set "_name=!_name:_%%B=!"
        )
      )
   )
   cd ..
   ren !_dir! !_name!
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34345588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档