10

У меня проблемы с командой del в командном файле. Когда дело доходит до шага удаления, я получаю сообщение "Доступ запрещен". Моя пакетная команда выглядит примерно так.

set destPath=\\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del *.dtsConfig
ren *.dev .
popd

Введите описание изображения здесь

Я могу просматривать каталог и удалять файлы без проблем в Windows Explorer.

Я пробовал работать от имени администратора, но проблема все та же.

3 ответа3

7

Чтобы заставить команду del удалить файлы, доступные только для чтения, добавьте флаг /F

Очевидно, что файл только для чтения не может быть удален пакетным файлом, хотя он все еще может быть удален через Проводник Windows. Чтобы проверить, доступен ли ваш файл только для чтения, вы можете щелкнуть правой кнопкой мыши по файлу и выбрать свойства или ввести attrib <filename> в командной строке. Это покажет серию букв, соответствующих различным атрибутам файла.

R = Read-only file
A = Archive file
S = System file
H = Hidden file

Вы можете удалить доступный только для чтения тег, сняв флажок в окне свойств или выполнив команду attrib <filename> -R .

2

После экспериментов с параметрами, доступными для команды "del", я обнаружил, что файлы, которые я пытался удалить, были доступны только для чтения. Чтобы решить эту проблему, я мог бы либо отредактировать файлы, чтобы удалить атрибут только для чтения, либо указать параметр /F.

Окончательный сценарий

set destPath=\\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del /F *.dtsConfig
ren *.dev .
popd

Простое решение, но вводящее в заблуждение сообщение об ошибке. Надеюсь, это поможет кому-то еще.

1

Что сработало для моего ПК с Windows 8.1:

Прежде всего, закройте Windows Explorer:

Нажмите Ctrl + Alt + Del, чтобы открыть диспетчер задач, перейти к процессам, найти проводник Windows, щелкнуть правой кнопкой мыши и завершить задачу. Не волнуйтесь, если стартовый бар пропал и что-то еще. Используйте Alt + Tab для перемещения между файлами. Затем в диспетчере задач нажмите « Файл» и « Выполнить новое задание» и введите cmd . Это откроет вам командную строку.

Внутри терминала:

Если ваша версия 32-битная, и в моем случае она находится в Program Files (x86), то вам нужно набрать:

cd "C:\Program Files (x86)\Git\git-cheetah"
regsvr32 /u git_shell_ext64.dll

Это было для отмены регистрации.

Вы можете перемещаться между каталогами, используя cd directoryname и вы можете получить обратно один каталог с помощью cd .. Для просмотра того, что находится в каталоге, вы можете ввести dir когда вы находитесь в этом каталоге. Для удаления типа файла:

del /F filename

После этого снова откройте диспетчер задач, зайдите в File, затем запустите explorer . Таким образом, вы попадете на обычный дисплей. Перейдите в папку Git, от которой мы хотели избавиться, и просто удалите ее.

Я надеюсь, что это работает для других людей, которые используют Windows 8.1.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .