Другие языки программирования и технологии

Что делать, если при использовании в cmd * в xcopy пишет что "Недопустимый путь"

Мне нужно скопировать папку "Жизнь" в "C:\Program Files (x86)" допустим что местоположение папки Жизнь я не знаю, и поэтому использую команду
xcopy "*\Жизнь\" "C:\Program Files (x86)" /e /q /y
но, при использовании "*\Жизнь\ после открытия copyff.bat пишет что "Недопустимый путь"
на Windows 7 (Проверял на виртуальной машине) всё работает чудесно
VS
Valerii Serguhhin
107
Эмм так это не работает. Пассажи со * и \ Вам не помогут в данном случае

Соотв. в два этапа. Сначала находите папку н-р for /R или dir /s и передаёте в xcopy.

Есс-но ещё могут быть проблемы в кодировке, но это вторично. Надо сохранять в 866. Ну или использовать chcp в cmd файле

Ещё момент НИ ОДНА из этих команд не будет работать со всеми дисками в системе. Только с текущим или указанным. Если нужен поиск на всех дисках в cmd - нужно будет ещё их все получить.

"Windows 7 (Проверял на виртуальной машине) всё работает чудесно"
Очень сомнительно. Смените папку и диск и посмотрите что выйдет
Мария Панаинте
Мария Панаинте
84 764
Лучший ответ
Valerii Serguhhin У меня он и так в кодировке 866 :(
Valerii Serguhhin Вот команда: xcopy "*\Жизнь\" "C:\Program Files (x86)" /e /q /y
Но при запуске bat файла с этой командой пишет "Недопустимый путь" кодировка OEM 866 (делал через NotePad++)
Valerii Serguhhin то есть, использовать "*\Жизнь\" не получится? :(
Мария Панаинте Объединив (если в папке много файлов - будут притормаживания на папке - это нормально) н-р C:\Windows\servicing\Packages

https://pastebin.com/zCGPtZjU

@echo off
setlocal enabledelayedexpansion
set toFind="\Жизнь\. "

for %%d in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist %%d:\ (
echo ---- checking drive %%d ----
cd /d "%%d:\"
echo %%d:\
for /r "." %%a in (.) do (
set fname=%%a
set fname=!fname:~-9!
echo folder:%%a
if "!fname!"==%toFind% (
echo Found:%%a
pause
exit
)
)
)
)

Пруф (папка находилась на диске D:\1\Жизнь)
Момент когда cmd закончил проверять C: и перешел на D: и нашел.
Если вы получаете сообщение об ошибке "Недопустимый путь" при использовании символа "*" с командой xcopy в cmd, возможно, вы делаете это не в правильном контексте, или путь, который вы пытаетесь скопировать, недопустим.

Вот несколько шагов, которые вы можете выполнить, чтобы исправить проблему:

1. Убедитесь, что вы находитесь в правильной директории. Если вы используете "*" для того, чтобы скопировать папку из неизвестного места, убедитесь, что вы находитесь в корневой директории, откуда вы хотите копировать.

2. Проверьте, есть ли у вас права на запись в директорию назначения. Если вы пытаетесь скопировать файлы в системную директорию, такую как "C:\Windows", вам может потребоваться запустить cmd с правами администратора.

3. Проверьте правильность вашей команды. Может быть, вы опечатались в пути или используете неверную команду. Убедитесь, что вы используете правильный синтаксис для команды xcopy.

4. Если все еще есть проблемы, попробуйте использовать другой способ копирования файлов, например, команду robocopy.

Надеюсь, эти советы помогут вам решить проблему с xcopy в cmd.

Похожие вопросы