用于批处理脚本中的语句/文件处理

时间:2014-04-28 21:19:38

标签: windows batch-file command-line

以此为例 For statement in batch script from SO

尝试了以下

for %%f in (c:\username\desktop\Test\*.log) do (
    echo %%~nf
)

我收到以下错误:%%f was unexpected at this time

我的目标是将[n]个文件从一个目录移动到另一个目录,等待[x]秒然后移动下一个[n]个文件

我可以花时间等待对未知站点执行ping操作并强制延迟或使用超时[尚未测试,因为这需要在没有任何用户干预的情况下完成]

如果有更好的方法可以做到这一点,我是开放的,因为这是我第一次尝试这种类型的脚本。

1 个答案:

答案 0 :(得分:1)

试试这个:

@echo off
setlocal EnableDelayedExpansion

::The number of files to copy
set [n]=10
::The time to wait after copying [n] files
set $tempo=5
::Your source path
set $sourceDir="C:\your\source\path"
::Your destination path
set $DestDir="C:\your\destination\path"

set $c=1
for /f "delims=" %%f in ('dir /b/a-d %$SourceDir% *.log') do (
    if !$c! equ %[n]% (
        timeout %$tempo%
        set $c=1
    )
    copy "%$SourceDir:~1,-1%\%%~nxf" %$Destdir%
    set /a $c+=1
)
echo Done...

假设要测试的扩展名为.log。如果不是,你必须改变它。