我需要一个可以运行的批处理文件(适用于 Windows),它将需要(非常)大量的文件,并将它们放在自己的文件夹中。
源目录结构如下:
\\Movies\Movie1.mkv
\\Movies\Movie1.idx
\\Movies\Movie1.sub
\\Movies\Movie1.jpg
\\Movies\Movie1.mkv_sheet.jpg
\\Movies\Movie2.mkv
\\Movies\Movie2.idx
\\Movies\Movie2.sub
\\Movies\Movie3.mkv
\\Movies\Movie3.idx
\\Movies\Movie3.sub
我需要它根据 mkv 文件名创建一个文件夹,然后将 Movie*.* 移动到该文件夹中,如下所示:
\\Movies\Movie1\Movie1.mkv
\\Movies\Movie1\Movie1.idx
\\Movies\Movie1\Movie1.sub
\\Movies\Movie1\Movie1.jpg
\\Movies\Movie1\Movie1.mkv_sheet.jpg
\\Movies\Movie2\Movie2.mkv
\\Movies\Movie2\Movie2.idx
\\Movies\Movie2\Movie2.sub
编辑为使用评论中指定的路径
@echo off
pushd D:\Video
for %%F in (*.mkv) do (
2>nul md "%%~nF"
>nul move /y "%%~nF*.*" "%%~nF"
)
popd
任何在 Linux / MacOS 上寻找相同东西的人,这应该可以完成工作:
#!/bin/bash
# Specify the source folder
source_folder="/path/to/source/folder"
# Check if the source folder exists
if [ ! -d "$source_folder" ]; then
echo "Source folder does not exist."
exit 1
fi
# Move to the source folder
cd "$source_folder" || exit 1
# Iterate through each file in the source folder
for file in *; do
# Check if it's a file, not a directory
if [ -f "$file" ]; then
# Extract the file name without extension
file_name="${file%.*}"
# Create a new folder with a unique identifier
folder_name="$file_name"
mkdir -p "$folder_name"
# Move the file into the new folder
mv "$file" "$folder_name/"
echo "Moved $file to $folder_name/"
fi
done
echo "Organizing files complete."
确保将文件顶部的
source_folder="/path/to/source/folder"
更改为您要操作的文件夹。我已经在 MacOS 上测试了这一点,文件夹指向 NAS 上已安装的网络卷,它工作没有问题。
在 MacOS 上,如果挂载网络文件夹,您可以在 /Volumes 文件夹下找到路径。