根据文件名子字符串创建目录并将文件移动到其中
Create directories based on filename substrings and move the files into them
我需要一些帮助来自动化一个枯燥的过程。
我正在收集双语文本,我使用前缀来指定给定文本包含的语言。
示例列表如下所示:
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"
)
)
我现在希望根据上面提到的流程调整此任务。
- 跳过“IT”或“EN”前缀
- Select 前缀后的整个文件名,直到扩展名.pdf
- 选择后创建文件夹并命名
- 将文件对移动到文件夹中
在尝试了我在这里找到的许多不同选项后,我决定 post 这个查询,因为我无法解决这个问题。
if not "%%~ni" == "organize" (
for /f "tokens=1*" %%b in ("%%~ni") do (
md "%%~c" 2>nul
move "%%~i" "%%~c"
)
)
文件的名称部分(例如 IT 6875
)使用 space 作为分隔符(默认情况下)进行标记,将 %%b
设置为 IT
并且%%c
至
6875
请参阅提示中的 for /?
以获取更多详细信息 - 或有关 SO 的许多示例。
2>nul
确保遇到的下一个 6875
不会引发可见的 directory already exists
错误消息。
我需要一些帮助来自动化一个枯燥的过程。
我正在收集双语文本,我使用前缀来指定给定文本包含的语言。
示例列表如下所示:
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"
)
)
我现在希望根据上面提到的流程调整此任务。
- 跳过“IT”或“EN”前缀
- Select 前缀后的整个文件名,直到扩展名.pdf
- 选择后创建文件夹并命名
- 将文件对移动到文件夹中
在尝试了我在这里找到的许多不同选项后,我决定 post 这个查询,因为我无法解决这个问题。
if not "%%~ni" == "organize" (
for /f "tokens=1*" %%b in ("%%~ni") do (
md "%%~c" 2>nul
move "%%~i" "%%~c"
)
)
文件的名称部分(例如 IT 6875
)使用 space 作为分隔符(默认情况下)进行标记,将 %%b
设置为 IT
并且%%c
至
6875
请参阅提示中的 for /?
以获取更多详细信息 - 或有关 SO 的许多示例。
2>nul
确保遇到的下一个 6875
不会引发可见的 directory already exists
错误消息。