0
echo off
SETLOCAL EnableDelayedExpansion
set caminho="C:\Users\%username%\AppData\Local\Microsoft\Outlook"
set maxbytesize=10
for /F %%i in ('dir /b "C:\Users\%username%\AppData\Local\Microsoft\Outlook\*.ost"') do (
set directoria=%caminho%\%%i
%1 %0 :: %directoria%
set len=%~z2
if %len% LSS %maxbytesize% (
msg * algo
PAUSE
) ELSE (
msg * O ficheiro exedeu 29Gb, diriga-se a Informatica
)
)
我不太擅长这个,所以我需要一些帮助。 我有一个类似的代码可以工作,但是当我“变形”成这个时,它开始说10 is not expected
是10的%maxbytesize%
。 有一些方法可以使这项工作或我需要重新开始?找不到数字变量
本质上与http://stackoverflow.com/questions/42438092/batch-file-to-check-file-with-the-same-extension相同。问题是“延迟扩展” - 请搜索许多关于此的文章。根本的问题是,当'for/f'到达时'len'是未定义的,所以它被替换为* nothing *,这违反了'if'语句的语法。我不知道'%1%0 ::%directoria%'应该达到什么,因为你没有提供你正在使用的参数。 – Magoo
[此问题](http://webcache.googleusercontent.com/search?q=cache:aW-mXC4F_lkJ:stackoverflow.com/questions/42420902/way-of-batch-file-check-various-file-with-这个同样的扩展+&cd = 3&ct = clnk)似乎以前已经被问过了,现在不再可用了。 – Compo