Войти

Показать полную графическую версию : [for] что не так?копирование всех файлов кроме одного.


nfs911
17-07-2013, 13:20
Нужно скопировать всё кроме %win86%\Sources\install.wim

@echo off
set win7aio=%CD%\ru_win_7_AIO
set win86=%CD%\ru_win_7_ultimate_sp1_x86

for /f "tokens=*" %%i in ('dir /b /s /a-d "%win86%\*"') do if not "%%i"=="%win86%\Sources\install.wim" xcopy /s /h "%%i" "%win7aio%"

pause


Вроде всё правильно,а не работает...

Sphinx114
17-07-2013, 17:23
Может так?
@echo off
set win7aio=%CD%\ru_win_7_AIO
set win86=%CD%\ru_win_7_ultimate_sp1_x86
(
\Sources\install.wim
) 2>nul
xcopy /s /h /exclude:%~nx0 "%win86%" "%win7aio%"

sov44
17-07-2013, 19:08
или так (не проверял)
@echo off
::если папки рядом с батником
set win7aio=ru_win_7_AIO
set win86=ru_win_7_ultimate_sp1_x86

for /f "delims=" %%i in ('dir /b /s /a-d "%win86%\*"') do if not "%%~nxi"=="install.wim" xcopy /s /h "%%i" "%win7aio%"
pause

nfs911
17-07-2013, 19:45
А можно ссылку на подробную справку по %~nx0 и ему подобные,а то гугл нормально не гуглит
Sphinx114, если вас не затруднит
объясните как это заключив в скобки перенаправляется на %~nx0 и откуда взялся параметр /exclude в справке его нет

Sphinx114
17-07-2013, 22:23
откуда взялся параметр /exclude в справке его нет »
У меня на виндоус XP он есть, см. xcopy /?
%~nx0 »
Можно глянуть в конце for /?
%0 это полное имя батника (диск+путь+имя+расширение) с кавычками
(
\Sources\install.wim
) 2>nul »
В данном примере, xcopy с параметром ecxclude ищет название файлов для исключения из копирования в самом батнике. Командный интерпретатор воспримет строку \Sources\install.wim как ошибочную команду, поэтому поток ошибок (2) перенаправлен (>) в никуда (nul).

Название батника не должно содержать пробелов.




© OSzone.net 2001-2012