Рейтинг:0

Поведение команды Windows DEL по отношению к точкам соединения

флаг pn

В моем сценарии установки я хочу удалить известные файлы из известных мест на локальном ПК с помощью команды DEL. Команда должна удалить файл из определенной папки и всех подпапок под ней. Поэтому я использую:

cd /d "C:\MyFolder"
del /f /s /q MyFile.xyz

Однако, если соединение отображается где-то ниже «C:\MyFolder» (скажем, в «C:\MyFolder\Junction», указывающем на другую папку на том же диске), DEL, похоже, вообще не проходит в него. Таким образом, все файлы «MyFile.xyz» там не будут удалены. Если DEL также не может найти файл где-либо еще в корневой папке, он также с радостью сообщит «Не удалось найти C:\MyFolder\MyFile.xyz».

Кажется, нет никаких переключателей, которые управляют этим поведением, и расширения команд не помогают - это известное ограничение DEL?

Существуют ли какие-либо обходные пути с использованием команд или стандартных приложений, установленных по умолчанию на новых современных компьютерах с Windows, или мне следует написать для этого свой собственный исполняемый файл, подобный DEL, или выполнить то же действие, используя сценарий в моем установщике?

Рейтинг:1
флаг cn

Если точка соединения размещена в сети, проблема, скорее всего, заключается в том, что сценарий установки необходимо запускать от имени администратора.

Запуск от имени администратора заставляет использовать локальные учетные данные, и большинство точек соединения обычно указывают на общий сетевой ресурс, поэтому команде DEL не хватает учетных данных для навигации по точке соединения.

Carl Colijn avatar
флаг pn
Спасибо за понимание! Но это все на моей локальной машине, сети не видно :) Я обновлю свой пост, чтобы включить это.
yagmoth555 avatar
флаг cn
@CarlColijn Спасибо за редактирование. Если вы запустите такую ​​команду; Get-ChildItem -Path "c:\MyFolder" -File -Include MyFile.xyz -Recurse | Remove-Item -Force -Verbose это работает? если да, я склонен думать, как вы, ограничение, тогда
Carl Colijn avatar
флаг pn
Ага; этот фрагмент powershell работает, даже если он запущен из-за пределов перекрестка. Так что, вероятно, действительно встроенное ограничение DEL. Проблема в том, что я не думаю, что смогу убедить парня, поддерживающего скрипт, начать использовать Powershell :) К счастью, эта проблема почти чисто теоретическая (пока мы знаем об этом только на моей машине разработки, а не на клиентах).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.