Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2709
Благодарности: 1685

Профиль | Отправить PM | Цитировать


ИМХО, лучше сделать код кратко и надёжно с созданием служебного файла, чем городить многострочный код.
Цитата 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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:49, 19-04-2019 | #5