У меня есть очень простой пакетный сценарий, который пытается использовать команду FORFILES
в окнах командной строки на моем сервере Windows Server 2012R2 ...
Цель этого пакетного файла - просмотретькуча каталогов (с подкаталогами) и удаление файлов старше X дней.
@ECHO OFF
CLS
SETLOCAL EnableDelayedExpansion EnableExtensions
SET "MINDAYSOLD=9"
SET "TARGETPATH=E:\archives"
SET "PADDEDTIME=%TIME: =0%"
SET "DATESTAMP=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%"
SET "LOGFILEPATH=Logs\%~n0-%DATESTAMP%.log"
SET "WORKINGDIR=%~dp0"
CALL :CreateDirectory "%WORKINGDIR%Logs"
ECHO Wiping files that are %MINDAYSOLD% or more days old...
ECHO Target Path: "%TARGETPATH%"
ECHO.
ECHO Searching folder: %TARGETPATH%
FOR /F "usebackq delims=" %%b IN (
`forfiles /p "%TARGETPATH%" /S /M *.* /D -%MINDAYSOLD% /C "cmd /C ECHO @path" 2^>nul`
) DO (
SET "filepath=%%~b"
SET "filename=%%~nxb"
ECHO Found !filepath!
ECHO Deleting !filename!
DEL /F /Q /A "!filepath!"
REM TIMEOUT /NOBREAK /T 1
IF EXIST "!filepath!" (
ECHO Error deleting file^^!
) ELSE (
ECHO Success.
)
)
ECHO Checking if folder %TARGETPATH% is empty...
SET "filesearch="
FOR /F "usebackq delims=" %%c IN (
`DIR /B /A-D "%%~a" 2^>nul`
) DO (
SET "filesearch=%%c"
)
IF {!filesearch!}=={} (
ECHO Folder is empty, deleting folder...
RD /Q "%TARGETPATH%"
REM TIMEOUT /NOBREAK /T 1
IF EXIST "%TARGETPATH%" (
ECHO Error deleting folder^^!
) ELSE (
ECHO Success.
)
) ELSE (
ECHO Folder is NOT empty^^! Skipping deleting.
)
ECHO.
EXIT /B %ERRORLEVEL%
REM =================================================================
REM ! FUNCTIONS !
REM =================================================================
REM == Create directory =============================================
:CreateDirectory
IF NOT EXIST "%~1" (
MKDIR "%~1"
)
EXIT /B 0
REM =================================================================
В папке много файлов, и я просто пытаюсь вернуть файлы за 1 день.По какой-то причине команда продолжает возвращать следующее ...
...
ERROR: The parameter is incorrect.
ERROR: The parameter is incorrect.
ERROR: The parameter is incorrect.
ERROR: The parameter is incorrect.
ERROR: The parameter is incorrect.
ERROR: The parameter is incorrect.
ERROR: The parameter is incorrect.
ERROR: The parameter is incorrect.
test
test
...
Я пытаюсь выяснить, почему в мире я получаю эти ошибки.Есть идеи?