gpt4 book ai didi

batch-file - 延迟扩展错误

转载 作者:行者123 更新时间:2023-12-01 23:41:01 25 4
gpt4 key购买 nike

我在玩批处理文件和延迟扩展。
我只是想打印目录中所有项目的文件/文件夹名称。

@ECHO off

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

CD "E:\Documents\Films\Need_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

当我这样做时,我会得到错误:

The syntax of this command is incorrect

我唯一能想到的是我错误地使用了延迟扩展。

最佳答案

语法错误的原因是因为 :: 不是用于注释的。它们实际上是标签标记。使用 REM 进行注释。

其他问题...

去掉=周围的空格

SET item=%%i

如果您使用调用,您也不必使用延迟扩展。

CALL ECHO %%item%%

此外,请记住此 FOR 命令只会显示文件(无文件夹)。如果您想要文件夹和文件,只需使用 DIR/B(不要使用 FOR)。如果你想处理它们,你可以像这样使用 FOR/F:

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

(编辑)根据您更新的文件,您可能还希望使用 CD/D 来切换到您的 E:(除非您已经在 E: 上,在这种情况下您不需要它)。

关于batch-file - 延迟扩展错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40076707/

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