我有以下脚本执行当前目录中的所有.reg文件。问题是我在该文件夹中也有子目录,我也想执行这些reg文件。我不确定我应该使用什么开关。我尝试使用/s
返回驱动器的所有.reg文件。
这是我的批处理文件的样子:
rem @echo off
cls
SET folder=%~dp0
for %%i in ("%folder%*.reg") do (regedit /s "%%i")
echo done
pause
EXIT
这就是文件/目录结构的样子:
Folder1
batchfile.bat -> user double clicks or executes from command prompt
1.reg
2.reg
3.reg
Folder2
4.reg
5.reg
我在这里缺少什么?
答案 0 :(得分:1)
我认为您需要使用for
开关进行递归/R
循环:
for /R "%folder%" %%i in (*.reg) do (regedit /s "%%i")
答案 1 :(得分:0)
你实际上并没有说出你的问题是什么,所以不用修复你的脚本就是我要做的事情:
@echo off
set folder=%~dp0
for /f "usebackq" %%i in (`dir /s /b *.reg`) do (
regedit /s "%%i"
)
regedit上的/s
脚本用于静默模式。它告诉regedit不要通过对话框询问用户确认。 for
循环是导致批处理文件遍历所有子目录的原因,而不是{restit上的/s
开关。
[/s|-s]
When a filename is specified on the command line, this switch is used to
suppress any informational dialog boxes that would normally be displayed.
This is useful when the Setup program for an application wants to execute
REGEDIT.EXE with a .REG file, but does not want the user to be confused by
any dialog boxes that are displayed.