Почему эти условия условия проблематичны c? - PullRequest
0 голосов
/ 16 апреля 2020

Я делаю пакетный скрипт, который проверяет, имеет ли текущий пользователь право на запись в локальную папку, создавая файл внутри нее. Если нет, отображается сообщение об ошибке. Если это так, он удаляет файл и создает подпапку.

@echo off

set folder=C:\test

rem directory check
copy /y nul "%folder%\.writable" >nul 2>&1 || (echo %username% can't access %folder%) && (

del "%folder%\.writable" 2>nul
md "%folder%\test2"
)

pause
exit

Проблема заключается в том, что скрипт по-прежнему выполняет удаление файла .writable и создание папки "test2", даже если это не удается t создать файл.

Заменив> null 2> & 1 на> null 2> null = та же проблема

Путем обращения || и &&, если он может создать файл, он отображает команду echo, не идя дальше, в противном случае, если он не может его создать, он не отображает команду echo и тем не менее выполняет строки ниже (del, md).

Как решить эту проблему, сохранив команду копирования?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...