循环此批处理语法
Looping this batch syntax
我有一堆文件夹需要移动到另一个目录。为了完成这项任务,我制作了一个 .bat。我的意图是 select 我想移动的文件夹并拖到 .bat 文件上。这是一次对一个文件夹使用以下语法,如果我想一次对多个文件夹执行相同的操作,我必须做什么?
红利问题,如何只复制文件夹中的文件而不复制文件夹本身?
xcopy %* C:\DOCUMENTALE\dms_in\ /s
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\
)
)
我有一堆文件夹需要移动到另一个目录。为了完成这项任务,我制作了一个 .bat。我的意图是 select 我想移动的文件夹并拖到 .bat 文件上。这是一次对一个文件夹使用以下语法,如果我想一次对多个文件夹执行相同的操作,我必须做什么?
红利问题,如何只复制文件夹中的文件而不复制文件夹本身?
xcopy %* C:\DOCUMENTALE\dms_in\ /s
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\
)
)