我发现这个可爱的节省时间脚本对我帮助很大。
@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"
答案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)具有内置功能,可让您更快地完成操作。
如果您选择多个文件 > 右键单击 > 单击带选择的新建文件夹> 这将创建一个名为“包含项目的新文件夹'并将您选择的文件移动到其中。
为了实现此功能,您必须启用'添加到资源管理器上下文菜单‘