windows - 使用批处理操作文件夹名称

标签 windows batch-file

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

20_01_1993, 2-1-1993, 20-01-1993, 1993.

我意识到理论上我应该能够使用 delims 和 token 来做到这一点,但我需要一点帮助。


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 位。

如果这有点令人困惑,我深表歉意,我试图尽可能简短。

最佳答案

您似乎正在尝试将一个以日期作为文件名的文件夹重命名为相同的日期,但已编辑。为此,您可以执行以下操作:

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

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

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

关于windows - 使用批处理操作文件夹名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36616669/

相关文章:

batch-file - 用于监视 FTP 服务器上更改的批处理脚本

c - 如何使用命令提示符/C合并两个EXE文件

windows - 使用 WM_SHOWWINDOW 代替 ShowWindow() 来显示窗口

c# - Rfc2898DeriveBytes 是否等同于 PKCS5_PBKDF2_HMAC_SHA1?

windows - 滚动时 msysgit 中的乱码文本

batch-file - 批处理日期时间戳比较

c# - 我如何检查用户是否想要动画(通过系统设置)?

windows - 在 Windows 上以编程方式读取程序的页面错误计数

windows - FFMPEG - 批量转换子文件夹

TFS 2010 构建 - 批处理文件 'access denied'