Rush> Мне понять нужно. У меня отрабатывает правильно
Этот скрипт не мой, а твоя модификация, которая не работает!
Да у тебя правильно в [more=этом скрипте]
set "DV=E:"
if exist %DV% call:StCopy1 "%cd%"
goto qw
:StCopy1
xcopy %1 "%DV%\%~nx1\" /C /H /Y /Q
exit /b
[/more], относительно вопроса о том, что не нужны все папки в пути и, к стати, твой ход оказался действенным для папок, в то время когда, в справке написано, что %~nx возвращает имя и расширение).
Мона использовать не %~nx1, а %~n1 причем тогда не нужно знать зарание "имя папки".
ХЗ что не понравилось инициатору вопроса, и почему у него не сработало!
Но, если DV будет указывать на съемный носитель, то твой скрипт запнется с выдачей мессяги в винде о том, что "Windows - Устройство не готово", а мой не запнется, вот зачем нужны были выкрутасы!
firsteducation!!!
Мой скрипт, с учетом варианта от Rush с применением %~nx1, будет выглядеть [more=вот так]
set "DV=E:"
set MI=0
WMIC.Exe Path Win32_LogicalDisk Where DriveType="2" get Caption > e1.txt
for /F "skip=1" %%i IN ('type e1.txt') Do (if /i %%i==%DV% (set MI=1))
if /i %MI% NEQ 1 Call:StCopy1 %CD%
goto qw
:StCopy1
xcopy "%cd%" "%DV%\%~n1\" /C /E /H /Y /Q
exit /b
:qw
[/more]
Этот скрипт не мой, а твоя модификация, которая не работает!
Да у тебя правильно в [more=этом скрипте]
set "DV=E:"
if exist %DV% call:StCopy1 "%cd%"
goto qw
:StCopy1
xcopy %1 "%DV%\%~nx1\" /C /H /Y /Q
exit /b
[/more], относительно вопроса о том, что не нужны все папки в пути и, к стати, твой ход оказался действенным для папок, в то время когда, в справке написано, что %~nx возвращает имя и расширение).
Мона использовать не %~nx1, а %~n1 причем тогда не нужно знать зарание "имя папки".
ХЗ что не понравилось инициатору вопроса, и почему у него не сработало!
Но, если DV будет указывать на съемный носитель, то твой скрипт запнется с выдачей мессяги в винде о том, что "Windows - Устройство не готово", а мой не запнется, вот зачем нужны были выкрутасы!
firsteducation!!!
Мой скрипт, с учетом варианта от Rush с применением %~nx1, будет выглядеть [more=вот так]
set "DV=E:"
set MI=0
WMIC.Exe Path Win32_LogicalDisk Where DriveType="2" get Caption > e1.txt
for /F "skip=1" %%i IN ('type e1.txt') Do (if /i %%i==%DV% (set MI=1))
if /i %MI% NEQ 1 Call:StCopy1 %CD%
goto qw
:StCopy1
xcopy "%cd%" "%DV%\%~n1\" /C /E /H /Y /Q
exit /b
:qw
[/more]