Команда FOR
в Windows имеет некоторые параметры, которых не было в DOS.В частности, он поддерживает возврат сегментов имени файла следующим образом.
In addition, substitution of FOR variable references has been enhanced.
You can now use the following optional syntax:
%~I - expands %I removing any surrounding quotes (")
%~fI - expands %I to a fully qualified path name
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
%~nI - expands %I to a file name only
%~xI - expands %I to a file extension only
%~sI - expanded path contains short names only
%~aI - expands %I to file attributes of file
%~tI - expands %I to date/time of file
%~zI - expands %I to size of file
Когда я пытаюсь использовать следующую команду, она не работает.Вместо печати \Program Files
печатается \
.
for %i in ("%programfiles%") do echo %~pi
Кажется, что только аргумент p
неверен, потому что другие аргументы возвращают ожидаемые результаты.
> for %i in ("%programfiles%") do echo %i
C:\Program Files
> for %i in ("%programfiles%") do echo %~i
C:\Program Files
> for %i in ("%programfiles%") do echo %~fi
C:\Program Files
> for %i in ("%programfiles%") do echo %~is
C:\PROGRA~1
> for %i in ("%programfiles%") do echo %~id
C:
Кто-нибудь знает, в чем может быть проблема?