На всякий случай может быть более одного подкаталога, содержащего файлы .doc
и .docx
, в следующем примере могут распространяться переменные %$.doc%
и %$.docx%
со всеми из них:
@Echo Off
SetLocal EnableDelayedExpansion
Set "BaseDir=X:\NEW-ENDORSEMENTS\Backlog_checked\cne\CLIENT-SUPPLIED\Backlog Transfer\Non EV articles\cne24314\Input_Files"
For /F "Delims=" %%A In ('Where /R "%BaseDir%" *.doc *.docx 2^>Nul'
) Do If "!$%%~xA!"=="" (Set "$%%~xA=%%~dpA/") Else (
If "!$%%~xA:%%~dpA/=!"=="!$%%~xA!" Set "$%%~xA=!$%%~xA! "%%~dpA/"
)
For %%A In ($.doc $.docx) Do If Not "!%%A!"=="" Set "%%A="!%%A:\/="!"
Set $.doc 2>Nul
Pause
Последние две строки включены только для того, чтобы показать вам переменные с их содержимым, и при необходимости могут быть заменены вашими собственными командами.
Этот скрипт имеет ограничения, основными из которых являются то, что он не будет работать в В операционных системах до Vista она не ожидает путей к каталогам, которые содержат !
символов, и из-за длины вашего базового пути к каталогу размер переменной среды может быть превышен.