“发送”所有选定的文件到文件夹中

“发送”所有选定的文件到文件夹中

我发现这个可爱的节省时间脚本对我帮助很大。

@echo off
cd /D "%~dp1"
md "%~n1"
move %1 "%~dp1%~n1"

脚本在这里应用程序将文件移动到具有文件名的新文件夹

但是,它只会将一个文件(这是它的设计目的)移动到它创建的新文件夹中,新文件夹以该文件命名。我想选择多个文件并让批处理文件将它们全部移动到新文件夹中。也许使用第一个文件的文件名来命名文件夹。如果可以的话,有人能帮忙吗?谢谢,Mike

答案1

我想选择多个文件并让批处理文件将它们全部移动到新文件夹中

如果您打算使用第一个文件来命名目标文件夹,则可以使用%*

%*批处理脚本中引用所有参数(例如 %1 %2 %3 %4 %5 ...%255)

来源:参数/参数 - Windows CMD - SS64.com

因此你的脚本将是:

@echo off
cd /D "%~dp1"
md "%~n1"
for %%f in (%*) do move %%f "%~dp1%~n1"

shift这样就避免了使用回答经过用户1686

答案2

处理第一个文件后,使用shift将下一个参数(当前为%2)移动到该%1位置,然后goto回到开头。(另外,别忘了检查是否它是空的,以避免永远循环。)

:begin
if "%~1"=="" goto :EOF
...your commands here...
shift
goto :begin

或者:

:start
...your commands here...
shift
if not "%~1"=="" goto :start

要对所有文件使用单个文件夹名称,请将mkdir命令移出循环(即,将其放在多于标签:begin),并将路径保存在一个变量%1这样即使在首字母移开后也可以引用它:

set "target=%~dpn1"
mkdir "%target%"

现在循环可以将所有文件移动到"%target%"

答案3

TeraCopy(适用于 Windows)具有内置功能,可让您更快地完成操作。

如果您选择多个文件 > 右键单击​​ > 单击带选择的新建文件夹> 这将创建一个名为“包含项目的新文件夹'并将您选择的文件移动到其中。

在此处输入图片描述

为了实现此功能,您必须启用'添加到资源管理器上下文菜单

在此处输入图片描述

相关内容