Windows 基于文件名子字符串创建目录并将文件移动到其中
我需要一些帮助使一个枯燥的过程自动化 我收集双语文本,我使用前缀来指定给定文本包含的语言 示例列表如下所示:Windows 基于文件名子字符串创建目录并将文件移动到其中,windows,batch-file,windows-10,Windows,Batch File,Windows 10,我需要一些帮助使一个枯燥的过程自动化 我收集双语文本,我使用前缀来指定给定文本包含的语言 示例列表如下所示: IT 6875.pdf EN 6875.pdf IT sT5ezt.pdf EN sT5ezt.pdf 然后,我为某个文件对手动创建单个文件夹。输出为: 6875 ---IT 6875.pdf ---EN 6875.pdf sT5ezt ---IT sT5ezt.pdf ---EN sT5ezt.pdf 我找到了一种自动创建文件夹的方法,使用我放在目标目录中名为“organize.
IT 6875.pdf
EN 6875.pdf
IT sT5ezt.pdf
EN sT5ezt.pdf
然后,我为某个文件对手动创建单个文件夹。输出为:
6875
---IT 6875.pdf
---EN 6875.pdf
sT5ezt
---IT sT5ezt.pdf
---EN sT5ezt.pdf
我找到了一种自动创建文件夹的方法,使用我放在目标目录中名为“organize.bat”的.bat文件。我可以为每个文件创建一个文件夹,并将文件移动到其文件夹中。但是,这仅在我处理的不是双语文件对,而是包含两种语言的文件时才有用,稍后我将其编辑为两个文件
此过程的语法为:
@echo off
for %%i in (*) do (
if not "%%~ni" == "organize" (
md "%%~ni" && move "%%~i" "%%~ni"
)
)
我现在希望使这项任务适应上面提到的过程
if not "%%~ni" == "organize" (
for /f "tokens=1*" %%b in ("%%~ni") do (
md "%%~c" 2>nul
move "%%~i" "%%~c"
)
)
文件的名称部分(例如,IT 6875
)使用空格作为分隔符(默认情况下)进行标记,将%%b
设置为IT
并将%%c
设置为
6875
有关更多详细信息,请参见提示符中的以获取/?
,或其他许多示例
2>nul
确保遇到的下一个6875
不会引发可见的目录已存在的错误消息。Magoo,这非常有效,非常感谢!