ИМХО, лучше сделать код кратко и надёжно с созданием служебного файла, чем городить многострочный код.
Цитата alpap:
можно загнать в исключение и без xcopy, например так: »
|
Красиво придумано, для меня открытие, что имя переменной в CMD может содержать пробелы. Интересно, есть ли ограничение на длину идентификатора? Но, тем не менее, xcopy хорош тем, что создаёт нужную структуру каталогов при копировании. Вот код, который имитирует /Exclude, в качестве развлечения:
Код:

@Echo Off
Set "BoxIn=Z:\Box_In"
Set "BoxOut=Z:\Box_Out"
Set "Ext@@001=.js"
Set "Ext@@002=.bat"
Set "Ext@@003=\Муз\"
FOR /F "usebackq delims=" %%x IN (`xcopy /L /S /E /F /Y "%BoxIn%\*.*" "%BoxOut%\"`) DO (
Set "S=%%~dpx"
Call :ExtCopy "%%S: -> =" "%%"
)
Exit /B
:ExtCopy
If "%~2"=="" Exit /B 0
Set "SS=%~1"
Set "SSS=%SS%"
FOR /F "usebackq tokens=2 delims==" %%e IN (`Set "Ext@@"`) DO Call Set "SSS=%%SSS:%%e=%%"
If "%SS%"=="%SSS%" (
>nul xcopy /Y %1 %2
)
Exit /B