batch-file - 将文件名附加到文件夹名称并替换 `-` 并删除空格
问题描述
我有一个文件夹,其中包含
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\VIDS - -.mp4
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\VIDS - -.json
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\VIDS - -.aaf
我希望根据保存它们的文件夹重命名文件。
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\2020-04-08 14-09-07-VIDS.mp4
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\2020-04-08 14-09-07-VIDS.json
P:\RECORDINGS\2020-04-08 14-09-07 - VIDS - -\2020-04-08 14-09-07-VIDS.aaf
我得到的是以下
P:\RECORDINGS\2020-04-08 16-01-12 - TEST - ->(
Echo Ren: ".\2020-04-08 16-01-12 - TEST - -\TEST - -.m4a" "2020-04-08 16-01-12 - TEST - -.m4a"
Ren "TEST - -.m4a" "2020-04-08 16-01-12 - TEST - -.m4a"
我有这个代码,但是,它似乎没有附加名称,所以替换它。
@echo on
Setlocal enabledelayedexpansion
FOR /D /R %%# in (*) DO (
PUSHD "%%#"
FOR %%@ in ("*") DO (
Echo Ren: ".\%%~n#\%%@" "%%~n#%%~x@"
Ren "%%@" "%%~n#%%~x@"
)
POPD
)
上面的代码来自:点击这里(我能找到的衣柜)
更新
@echo off
Setlocal enabledelayedexpansion
rem - keeps the first 19 chas of the folder names
for /F "delims=" %%D in ('dir /B /A:D "*"') do (
set "FOLDER=%%D"
setlocal EnableDelayedExpansion
ren "!FOLDER!" "!FOLDER:~,19!"
endlocal
)
for /r %%a in (*.*) do for %%b in ("%%~dpa\.") do echo ren "%%~a" "%%~nxb____%%~xa"
好的。所以我现在已经清理了文件夹。"%%~nxb____%%~xa"
我需要在此处输入文件名,但是,我不确定如何获取信息。我一直在看%%f
。但是,我不确定如何在上面的代码中添加它。不是我有点失落。
解决方案
解决方案:
rem - Rename files based on folder name
for /d %%D in (*) do (
pushd "%%D"
for /r %%F in (*) do (
for %%P in ("%%F\..") do (
ren "%%F" "%%~nxP_%%~nxF"
)
)
popd
)
popd
推荐阅读
- r - 无法加载 ggplot2 包
- vue.js - 从挂载中获取变量到方法中
- c++ - 带有 unique_ptr(不是 shared_ptr)的 Netbeans 8.2 代码帮助问题
- javafx - JavaFX ListChangeListener 根据 ObservableList 中已删除项目的位置不一致地处理“removeAll(Collection)”
- mysql - mysql - 存储多个值的最佳方式
- azure - 如何在 ASP.NET 表单应用程序中访问 Azure AD 声明?
- java - 如何在editText中显示交替图标?
- javascript - XMLHttpRequest 不发送 JSON 只是一个空字符串
- ios - 计算时我错过了什么?
- go - 在 VS Code(Go 扩展)中,我在哪里运行命令?