Я сделал пакетный скрипт, который настроен на копирование всех .cpp
файлов из указанного мной местоположения. Он может копировать файлыисохранить структуру папок, но она не расширяет скопированные имена файлов должным образом. У меня также есть старая версия, которая может это сделать, но она также копируетвсеиз целевой папки в новую папку. Цель новой версии —толькокопировать определенный тип файла.
Вот синтаксис XCOPY
, который правильно расширяет имена файлов, но копирует все содержимое папки:
ECHO D | XCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects" "Backup\Projects" /S /Q /N
Вот новый синтаксис, который не позволяет развернуть имена файлов скопированных типов файлов:
ECHO F | XCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects\*.cpp" "Backup\Projects\" /S /Q /N
Вот пример сокращенных/неразвернутых имен файлов, которые я получаю в целевом каталоге:
WRNM~1.CPP
.
Я не знаю, переключается ли команда переопределения подсказки( /S /Q /N
)влияют на это, но мне нужно, чтобы подсказки были переопределены ими из-за огромного количества копируемых файлов. Я также хотел бы отметить, что несмотря на копирование файлов с помощью нового синтаксиса, я все равно могу XCOPY
скопировать их, даже если я определяю цель как каталог с помощью переключателя D
.
решение1
Я нашел решение, которое отвечает всем моим требованиям, используя ROBOCOPY
вместо этого:
ROBOCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects" "Backup\Projects" *.cpp /S
Вы можете добавить /E
переключатель, чтобы также копировать пустые папки, если это необходимо. Я пробовал это раньше, но я потерял определение типа файла.
Дополнительная ROBOCOPY
документация отСС64:
решение2
Создает копии, используя короткие имена файлов или каталогов NTFS. /n требуется при копировании файлов или каталогов с тома NTFS на том FAT или когда в файловой системе назначения требуется соглашение об именовании файловой системы FAT (то есть 8,3 символа). Файловая система назначения может быть FAT или NTFS.
Ваша старая версия xcopy не обрабатывала /n
должным образом. Проверьте xcopy /?
каждый раз, когда опция меняла свое значение.