2015-07-15 5 views
0

я нашел ответ здесь: How can I check the size of a file in a Windows batch script? и он хорошо работает, если путь к файлу без пробелов, но не тогда, когда она имеет пробелыКак проверить размер файла в пути с пробелами в пакетном сценарии

Пример:

set file=C:\Example.txt 
FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA 

работает, но

set file=C:\Program Files\Example.txt 
FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA 

нет, я попытался двойные кавычки путь в объявлении переменной

set file="C:\Program Files\Example.txt" 

и/или цикл переменного файла

FOR /F "usebackq" %%A IN ('"%file%"') DO set size=%%~zA 

но ни один работает

ответ

1
set "file=C:\Program Files\Example.txt" 
for %%A in ("%file%") do set "size=%%~zA" 

Там нет необходимости в команде for /f (его нормальное использование для обработки содержимого файла или строки или вывод выполнения команды), достаточно выполнить команду for, чтобы получить ссылку на файл.