Ошибки отложенного расширения

Я играю с пакетными файлами и замедленными расширениями.
Я просто пытаюсь напечатать имена файлов / папок всех элементов в каталоге.

@ECHO off

SET title=%1
SET mp4="mp4"
SET mkv="mkv"
SET avi="avi"
SET minimumSize=300

CD "E:DocumentsFilmsNeed_compressing"
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%i IN (*) DO (
    SET item = %%i
    ECHO !item!
    :: print dir/file name
    :: if "!i!" == "%title%" (
    ::  echo "found file!"

    :: 'if' directory
    ::  if exist "%title" (
    ::      echo "is a directory"
    ::      cd %title%
    ::      echo "title: " %title%
    ::      for %%f in (*.*) do (

    ::          set file = %%f
    ::          set extension = %%~xf
    ::          set fileSize = %%~zf

    ::          if %extension% == %mp4% if %extension% == %mkv% if %extension% == %avi% (
    ::              if %fileSize% gtr %minimumSize% (
    ::                  move %file% %compressFolder%
    ::              )
    ::          ) 
    ::      )
    ::  )
    ::)
)
ENDLOCAL

Когда я сделаю это, я получу ошибку:

Синтаксис этой команды неверен

Единственное, что я могу придумать, это то, что я неправильно использую задержанное расширение.

batch-file,delayedvariableexpansion,

3

Ответов: 1


3 принят

Причина: синтаксическая ошибка связана с тем, что REMони не являются комментариями SET item = %% i. Они на самом деле лейблы. Используйте CALL ECHO %%item%% для комментариев.

Другие вопросы...

Удалите пробелы вокруг =

FOR

Вы также не должны использовать задержанное расширение, если используете вызов.

DIR /B

Кроме того, имейте в виду, что эта FORкоманда будет показывать только файлы (без папок). Если вы хотите папку и файлы, просто используйте FOR(нет FOR). Если вы хотите обработать их, вы можете использовать FOR /Fследующее:

FOR /F "delims=" %%a IN ('DIR /B') DO ( echo do stuff with "%%~a" )

(Изменить) На основе вашего обновленного файла вы также можете использовать, CD /Dкоторый переключится на ваш E: (если вы уже не на E :, в этом случае вам это не нужно).

пакетный файл, delayedvariableexpansion,