2014-11-21 2 views
0

Итак, я пытаюсь сделать так, чтобы пользователь не мог удалять пакетные файлы.Невозможно определить пакетный ввод/вывод

echo !Choose a file to delete: 
set /p deletei=$_ 
DEL /P %deletei% 
if %deletei% == %deletei%.bat goto $DELETEN 

echo Access denied. You may not delete BATCH files. 
pause > nul 

Он спрашивает меня «Вы хотите удалить этот файл? (Y/N)» Как и любой другой, и если я типа «Y», она удаляет его. Есть ли способ обойти это?

+0

На следующей строке вашего командного файла вы можете не просто поставить 'Y'? – DrRoach

+1

Почему бы не проверить имя файла перед запуском команды удаления? – SomethingDark

ответ

0

Как @SomethingDark тонко предложил, вам нужно проверить, если это летучая мышь файл перед удалением

echo !Choose a file to delete: 
set /p deletei=$_ 
if "%deletei:~-4%" NEQ ".bat" (
DEL /P %deletei% 
) else (
echo Access denied. You may not delete BATCH files. 
pause > nul 
) 

Что следует проверить, является ли файл .bat перед удалением.

+0

Спасибо! Это отлично работало, @Monacraft. Я все еще относительно новичок в пакетном программировании, поэтому я немного смутился относительно того, что делать после этого. – Krontical