gpt4 book ai didi

batch-file - Windows批处理文件将X个文件从一个文件夹移动到另一个文件夹

转载 作者:行者123 更新时间:2023-12-04 02:06:28 26 4
gpt4 key购买 nike

如果 %DataLoc% 中的文件少于 20 个,我正在尝试使用批处理文件以 30 个 block 为单位移动文件。我修改了 a prior question 中的代码.问题出在文件的 FMove 部分。无论我在 for 行中输入什么,它都会给我一个错误。

我希望它具有 %HoldLoc% 值,但由于出现错误而一直对其进行硬编码。

环境为Windows 2008 R2服务器。

我尝试过的变体,以及括号中有无引号:

FOR %F IN (%HoldLoc%)
FOR %F IN (%%HoldLock%)
FOR %F IN (c:\Play\hold\*.tmp)

我的代码:

SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION

echo on
set DataMax=20
set DataLoc=C:\Play\Data
Set HoldLoc=C:\Play\Hold
set count=0
FOR /F %%a in ('DIR /B %DataLoc%\*.tmp') do set /A count=count+1
if %count% GEQ %DataMax% (Goto Exit) else (GOTO FMove)
:FMove
Echo Gather Top 30 files
set SrcCount=0
set SrcMax=30
echo %HoldLoc%
FOR %F IN (c:\Play\hold\*.tmp) DO IF !SrcCount! LSS %SrcMax% (
SET /A SrcCount += 1
move /y %F "%DataLoc%"
)

问题是我在输出窗口中得到了这个,为什么看不到 C

C:>set /A count=count+1

C:>if 19 GEQ 20 (Goto Exit ) else (GOTO FMove )

C:>Echo Gather Top 30 files
Gather Top 30 files

C:>set SrcCount=0

C:>set SrcMax=30

C:>echo C:\Play\Hold
C:\Play\Hold
\Play\hold\*.tmp) was unexpected at this time.

C:>FOR \Play\hold\*.tmp) DO IF !SrcCount! LSS 30 (

C:>

最佳答案

@echo off

set Source=C:\perl\Drift_Bat\IN
set Target=C:\perl\Drift_Bat\OUT

set MaxLimit=20

for /f "tokens=1* delims=[]" %%G in ('dir /A-D /B "%Source%\*.*" ^| find /v /n ""') do (
move /y "%Source%\%%~nxH" "%Target%"
if %%G==%MaxLimit% exit /b 0
)

关于batch-file - Windows批处理文件将X个文件从一个文件夹移动到另一个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9123875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com