2014-09-02 2 views
0

Я пытаюсь скопировать каталог - C:/user/som в C:/admin/только, если dir 'som' отсутствует в C:/admin /, используя командный файл. Мой командный файл, как this-Копирование каталога в пункт назначения, если его еще нет

SET Location= C:\admin 
IF NOT EXIST "%Location%\som" xcopy "C:/user/som" "C:/admin/som" /S /E 

Это не работает должным образом, даже если DIR- с:/администратор/сома присутствует он спрашивает меня, если я хотел бы переписать файлы в каталоге. Что здесь происходит?

Add to this- Когда я делаю xcopy, он спрашивает меня, является ли «C: \ admin \ som» файлом или каталогом, и попросил меня выбрать F для файла и D для каталога, теперь я хочу это автоматически выбирается как D, это можно сделать.

ответ

2
SET "Location=C:\admin" 
IF NOT EXIST "%Location%\som\." xcopy "C:\user\som" "C:\admin\som" /S /E 

Это должно сработать.

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

набор «переменная = строка» будет установлен в varstring, опуская любые конечные пробелы на линии (если они существуют). Включение конечных пробелов может вызвать хаос - и их трудно обнаружить. В вашем коде ведущее пространство равно, включенному в назначенное значение.

Отметьте, что \ является разделителем каталогов; / - это переключатель. Конверсия спорадическая.

+0

«ЕСЛИ НЕ СУЩЕСТВУЕТ»% Местоположение% \ som \ "' <--- обратная косая черта - это ключ к надежной идентификации папки (при условии, что она «не поверх локальной сети»). Ваш добавленный период работает некорректно, потому что он срабатывает в файле под названием 'som' – foxidrive

+0

Когда я делаю xcopy, он спрашивает меня, является ли« C: \ admin \ som »файлом или каталогом, и просит меня выберите F для файла и D для каталога, теперь я хочу, чтобы это было автоматически выбрано как D, это можно сделать. –

+0

использовать '' C: \ admin \ som \ "' с обратной обратной косой чертой в целевой папке – foxidrive

Смежные вопросы