我有一堆文件夹,我必须移动到另一个目录。为了完成这个任务我做了一个.bat。我的目的是选择我想要移动的文件夹并拖动.bat文件。这对一个文件夹一次使用以下语法,如果我想一次对多个文件夹执行相同的操作,我该怎么做?
BONUS问题,如何只复制文件夹中的文件而不复制文件夹本身?
xcopy %* C:\DOCUMENTALE\dms_in\ /s
答案 0 :(得分:0)
您正在寻找SHIFT
命令。
@ECHO OFF
:LOOP
IF NOT "%1"=="" (
xcopy %1 C:\DOCUMENTALE\dms_in\ /s
SHIFT
GOTO LOOP
)
将多个文件或文件夹添加到批处理脚本时,其路径将作为参数附加。 %1
是第一条路径,%2
是第二条路径,依此类推。 SHIFT
除了将索引向右移动以外,%2
变为%1
,%3
变为%2
,依此类推。该脚本继续循环,直到它到达最后一个附加路径,该路径变为%1
。 SHIFT
的下一次执行将%1
设置为空字符串,不再满足IF条件并且脚本停止。
现在让我们来看看你的红利问题:
有几种方法可以实现这一目标。其中一个:
@ECHO OFF
:LOOP
IF NOT "%1"=="" (
FOR /F %%F IN ('dir /b /s /a-d "%1"') DO (
COPY /y %%F C:\DOCUMENTALE\dms_in\
)
)