我在目录A:
中有这些文件夹名称Veep
Vegas
Valentina
Valeria Medico Legale
我将此文件列表放在同一目录A
中Veep - Season 1 BDMux
Valentina S01e01-13
Vegas S01e01-21
Valeria Medico Legale S01-02e01-16
例如
Veep [folder]
Veep - Season 1 BDMux [file]
veep 是文件夹和文件名相同的词 我想移动这个文件
Veep - Season 1 BDMux
在此文件夹中
Veep
使用文件 .bat
任何帮助?
答案 0 :(得分:1)
我能想到的最简单的解决方案是使用字符串替换。请注意,如果您的目录具有匹配的子字符串,则可能无法执行您想要的操作,如:
Veep
Veeponic
虽然它不是一个完美的解决方案,如果有很多目录而且成本很高,它可能会给你一个开始。
它接收您要作为参数%1
进行处理的目录:
@echo off
setlocal enabledelayedexpansion
pushd %1
for /F "USEBACKQ tokens=*" %%a in (`dir /b /a:-d`) do (
set "_file=%%a"
for /D %%b in (*) do (
if NOT "x!_file:%%b=!" == "x!_file!" (
echo moving "%%a" to %%b
)
)
)
popd
将其另存为my_batch.bat
,假设您的文件/文件夹位于C:\ songs \中,请使用my_batch C:\songs\
从cmd调用它。输出将是
moving Valentina S01e01-13 to Valentina
moving Valeria Medico Legale S01-02e01-16 to Valeria
... and so on
将echo
行替换为正确的move
命令,例如move "%%a" %%b
修改: NOT 应该适用于名称中包含空格的目录。