СПРАВКА Попытка использовать код для перемещения файлов по 30 блоков, если в% DataLoc% меньше 20 файлов.Я изменил код с Предыдущий вопрос .Проблема в разделе FMove файла.Независимо от того, что я положил в строку для, это дает мне ошибку.Я хочу, чтобы у него было значение% 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:>
>