本帖最后由 china365love 于 2023-11-15 23:38 编辑
原创一款关于拖拽批处理一键创建文件夹并把文件移动到对应的新创建的文件夹中的BAT脚本
拖拽批处理一键创建文件夹并把文件移动到对应的新创建的文件夹中的软件是一款高效易用的工具,能够简化文件管理流程,提高工作效率。该软件通过简单的拖拽操作,即可快速创建文件夹并自动将文件移动到对应的文件夹中,无需手动操作,大大节省了时间和精力。[AppleScript] 纯文本查看 复制代码
@echo off
setlocal enabledelayedexpansion
set "folderName=%~n1"
set "sourceFile=%~f1"
rem 创建一个新的文件夹
if not exist "%folderName%\" (
mkdir "%folderName%")
rem 判断源文件是否存在,如果不存在则退出脚本
if not exist "%sourceFile%" (
echo 请关闭当前窗口,拖放主文件到bat文件上。
exit /b
)
rem 获取文件名和扩展名
for %%F in ("%sourceFile%") do (
set "fileName=%%~nF"
set "extension=%%~xF"
)
rem 如果源文件没有扩展名,则创建一个空文件夹并移动文件到该文件夹中
if not defined extension (
mkdir "%folderName%" 2>nul
move "%sourceFile%" "%folderName%\"
) else (
mkdir "%folderName%_temp" 2>nul
move "%sourceFile%.*" "%folderName%_temp\"
rmdir /s /q "%folderName%_temp"
)
pause
1. 我把文件名的输入参数从`%~1`改为了`%folderName%`,这样更符合脚本的功能。2. 我添加了一个检查源文件是否存在并移动文件的逻辑,如果源文件不存在,脚本会输出提示信息并退出。3. 我把`mkdir`命令的输出重定向到了一个临时文件夹,这样可以避免在移动文件后立即删除原文件夹。这个临时文件夹会在移动完所有文件后被立即删除。4. 我把`pause`命令放在了最后,这样用户可以看到脚本的执行结果。5. 我移除了最后的`exit /b`命令,因为这个命令会强制结束脚本的运行,而且使用的是退出代码为0(通常表示正常退出),所以我不建议在脚本中使用它。
第二种方法:
琢磨了很久,终于写成了一个批处理脚本,发帖上来分享给大家,初次发这类帖子,高手勿笑,如违规请管理员删除!
批处理功能:一键创建与“主文件名”名称相同的文件夹,并将当前文件夹中“主文件名”相同的文件移到新创建的文件夹中。
@echo off
setlocal enabledelayedexpansion
set "filename=%~1"
set "foldername=%filename:~0,-4%"
mkdir "%foldername%" 2>nul
move "%foldername%".* "%foldername%\
)
echo 文件夹已创建并文件已移动。
使用方法:将上述代码保存为批处理文件(例如,create_folder.bat),然后将其放置在您希望使用的文件夹中。
使用时,只需将文件直接拖到批处理文件上(如果有多个主文件名相同的文件需要移动,只拖动其中任意一个即可)。脚本将自动根据文件的主文件名创建一个同名文件夹(不包括扩展名),并将当前文件夹中主文件名相同(扩展名不同)的所有文件移动到新建的文件夹中,如果该文件夹已经存在,脚本将不会覆盖它。
第三种方法:使用字符分割来获取文件名的话,后缀名长度<>3会出错,可以使用%%~nF和%%~xF来获取文件名和后缀,就简单多了。
setlocal enabledelayedexpansion
set "filename=%~1"
for %%F in ("%filename%") do (
set "foldername=%%~nF"
set "extension=%%~xF"
)
第四种方法:
@echo off
setlocal enabledelayedexpansion
set "filename=%~1"
for %%F in ("%filename%") do (
set "foldername=%%~nF"
set "extension=%%~xF"
)
if "%extension%"=="" (
mkdir "!foldername!" 2>nul
move "!foldername%!extension!" "!foldername!"
) else (
mkdir "!foldername!" 2>nul
move "!foldername!.*" "!foldername!"
)
echo 文件夹已创建并文件已移动。
第五种方法:文件名模糊查找文件移动.bat
@echo off
cd /d "%~dp0"
set "Key=A"
if not exist "%Key%\" (
md "%Key%"
)
for /f "delims=" %%i in ('dir /b /a-d') do (
if not "%%i" == "%~nx0" (
set "FileName=%%i"
setlocal enabledelayedexpansion
if not "!FileName!" == "!FileName:%Key%=!" (
echo "!FileName!" ---^> "%Key%\"
move "!FileName!" "%Key%\" >nul
)
endlocal
)
)
pause
第六中稍微优化一下的代码:一键创建文件夹并移动文件.bat |
@echo off
if "%~1" == "" (
echo 请关闭当前窗口,拖放主文件到bat文件上。
exit /b
)
set "FileName=%~n1"
set "FolderName=%~n1"
md "%FolderName%" 2>nul
move "%FileName%.*" "%FolderName%\"
该软件支持在Windows操作系统上运行,界面简洁易用,操作简单方便。用户只需将需要创建的文件夹和移动的文件拖放到软件界面上,即可一键完成创建和移动操作。此外,该软件还提供了丰富的自定义选项,用户可以根据自己的需求进行设置,以满足不同的文件管理需求。
总之,这款拖拽批处理一键创建文件夹并把文件移动到对应的新创建的文件夹中的软件是一款高效、易用、灵活的文件管理工具,能够极大地提高用户的工作效率。
|