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