2015-08-17 3 views
0

Мне нужно создать пакетный файл для удаления определенного файла в каталоге appdata users. Batchfile выполняется как локальная система.Windows Batch File for loop on user dir

Я сделал проверить следующие senarios: Командная строка как LocalSystem - это работает Командная строка как администратор - это работает Командная строка, как пользователь - это работает для всех папок, в которых пользователь имеет разрешения

Как только Я помещаю цикл for в пакетный файл, он больше работает. Это также дозирующее вещество, в котором контекст (User, admin, localsystem) я запускаю его.

for /D %i in ("C:\Users\*") do del /Q /F "%i\AppData\LocalLow\Sun\Java\Deployment\deployment.properties" 

Код выхода показывает 255, что означает длительную ошибку.

Ошибка я получаю следующее:

C:\Windows\Scripts>sync_exeptionsiteslistandconfig_java.bat > output.txt 
\Users\*") do del "i\AppData\LocalLow\Sun\Java\Deployment\deployment.properties" /Q /F was unexpected at this time. 

Любая помощь, почему одна линия работает и пакетник с этим одна линия не работает приветствуется.

Также объясните, почему он не работает. (Я всегда выполнять задачи в качестве LocalSystem)

ответ

1

Это может делать то, что вы хотите, но он обрабатывает только обычные папки, не скрыты и т.д.

Ваша проблема может быть с помощью% I пакетного сценария.

@echo off 
for /D %%i in ("C:\Users\*") do del /Q /F "%%i\AppData\LocalLow\Sun\Java\Deployment\deployment.properties" 2>nul 
+0

Привет, спасибо, он работает. Но знаете ли вы, почему использование %% i вместо% i? Я все еще не мог понять, почему он работает непосредственно в командной строке. – snapo

+0

В пакетном файле для цикла необходимо удвоить знаки '%'. В подсказке cmd используется только один '%'. – foxidrive