【问题标题】:Manipulate folder names with batch使用批处理操作文件夹名称
【发布时间】:2016-04-14 07:41:05
【问题描述】:

我希望能够使用批处理脚本“编辑”文件的文件夹名称。例如,如果文件夹是 20011993,我希望能够通过设置变量在任何位置添加或删除字符。一些输出示例是:

20_01_1993、2-1-1993、20-01-1993、1993。

我意识到理论上我应该能够使用分隔符和标记来做到这一点,但我需要一点帮助。


1.

此代码将删除文件的 6 个字符,但我想在文件夹中使用它...我稍后会解决这个问题

@ECHO ON
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir *.txt /b /a-d ') do (
    set "name=%%~na"
    copy "%%a" "C:\FolderB\!name:~0,-6!%%~xa" 
)
pause

我知道我可以像 RENAME "C:\users\my profile\my word documents" "my documents" 这样重命名整个文件夹,但我只想编辑已经命名的文件夹。


2.

此代码在文件夹名称前添加一个 0。到目前为止,这就是它所能做的,但我想确定添加 0 的位置

@ECHO ON
for /D %%f in (*) do rename "%%f" "0%%f"
pause

所以我认为将 0 转换为 var,然后使用 delims 和标记来确定文件名中的位置。如果有任何帮助,我将不胜感激。

我使用的是 Windows 10 64 位。

如果这有点令人困惑,我深表歉意,我尽量简短。

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:

    您似乎正在尝试将带有日期作为文件名的文件夹重命名为相同的日期,但已编辑。为此,您可以按照以下方式进行操作:

    @echo off
    set "folderName=20011993"
    SET newFolderName=%folderName:~0,2%_%folderName:~2,2%_%folderName:~4%
    echo ren %folderName% %newFolderName%
    pause
    

    这假设您已将文件夹名称保存到变量中。有关变量子字符串的更多信息,您应该查看this

    请注意,这与重命名命令相呼应,要实际重命名文件夹,您应该从该行中删除 echo

    【讨论】:

      【解决方案2】:

      假设你有一个类似这样的文件夹结构:

      ├───20011993
      │   ├───someFile.txt
      │   └───anotherFile.txt
      ├───21011993
      │   └───andAnotherFile.txt
      └───22011993
          └───yetAnotherFile.txt
      

      您可以从包含这些文件夹的父目录运行它。

      setlocal enabledelayedexpansion
      for /f "delims=" %%a in ('dir ????1993 /b/ad ') do (
          set "name=%%~na"
          echo ren "!name!" "!name:~0,2!-!name:~2,2!-!name:~4,4!"
      )
      

      如果您的文件夹跨越数年,您可以使用 for /l 循环将每年作为数字进行迭代。

      setlocal enabledelayedexpansion
      
      set beginYear=1993
      set endYear=2016
      for /l %%x in (%beginYear%,1,%endYear%) do call :renameLoop %%x
      
      :renameLoop
      for /f "delims=" %%a in ('dir ????%1 /b/ad ') do (
          set "name=%%~na"
          echo ren "!name!" "!name:~0,2!_!name:~2,2!_!name:~4,4!"
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-28
        • 2016-09-11
        • 2014-02-02
        • 1970-01-01
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        相关资源
        最近更新 更多