Поэтому я пытаюсь установить несколько переменных с помощью цикла For Latch в пакетном файле.Я знаю, что мне нужно использовать EnableDelayedExpansion
, но я опробовал несколько различных методов, и пока что ничего не работает.Кроме того, он обычно запускается как пользователь домена, у которого нет папки пользователя на компьютере.
Конечная цель - собрать путь к файлу для notes.ini для каждого пользовательского каталога.Первоначально я повторил бы раздел для каждой папки и изменил бы переменную на n1 тогда n2 тогда n3.Я пытаюсь сжать это и позволить этому файлу обрабатывать любое количество пользовательских папок.Мне нужно иметь возможность вызывать каждый путь отдельно в пакете, поэтому в настоящее время каждый путь записывается в текстовый файл, а затем текстовый файл анализируется в переменной.
Это мой оригинальный код:
SETLOCAL EnableDelayedExpansion
for /D %%x in ("C:\Users\*") do (
if exist %temp%\niresults.txt del /q %temp%\niresults.txt
dir "%%x\AppData\Local\lotus\Notes\*.*" /L /A /B /S|Find "notes.ini" >> %temp%\niresults.txt
If not exist %temp%\niresults.txt echo "Files not found"
set /p n1= < %temp%\niresults.txt
if exist C:\niresults.txt del /q C:\niresults.txt
)
Я планирую использовать переменные следующим образом.
wscript "FnR.vbs" "Find this" "Replace with this" !n1!
или
wscript "FnR.vbs" "Find this" "Replace with this" %n1% %n2% %n3%... etc
FnR.vbs настроен на прием и обработку параметров с 3 по x в цикле, поэтому количество параметров не имеет большого значения;однако FnR требует немного времени для запуска.Я думал о включении wscript "FnR.vbs"
в цикл, но в настоящее время мне нужно вызывать его 4 раза для каждого местоположения файла, и я сделаю это, если потребуется, но это все замедлит.
Так что естьспособ заставить это работать так, чтобы каждый путь был в различной переменной или изменял имя файла txt для каждого запуска цикла?или пропустите txt-файл и выведите вывод непосредственно в переменную (я думаю, это может быть тем, что мне больше всего нужно, чтобы заставить его работать с EnableDelayedExpansion
)?
Самое простое решение было бы, возможно лиизмените n1 на n2 на второй итерации цикла и n3 на 3-й и т. д.
Я знаю, что могу вернуться и найти файлы в более крупном каталоге C:\users
, но с количеством пользовательских данных на большинстве машин в моей среде, что может занять больше времени, чтобы файл работалдействия, которые он заменит.