Показать полную графическую версию : [for] что не так?копирование всех файлов кроме одного.
Нужно скопировать всё кроме %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%"
или так (не проверял)
@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
А можно ссылку на подробную справку по %~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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.