23070205 发表于 2010-8-20 11:14:00

如何静默运行收集当前运行的服务的bat

本帖最后由 23070205 于 2010-8-20 11:18 编辑

又遇到了问题,来请教大家。

FileInstall("系统服务优化打包文件.exe", '"' & @ScriptDir & "\系统服务优化打包文件.exe" & '"', 1)
If Not FileExists('"' & @ScriptDir & "\系统服务优化\服务备份.BAT" & '"') Then Run('"' & @ScriptDir & "\系统服务优化打包文件.exe" & '"' & " /s")
Sleep(500)
RunWait(@ComSpec & " /C " & '"' & @ScriptDir & "\系统服务优化\服务备份.BAT" & '"', @ScriptDir, @SW_HIDE)

以上为我要调用的代码。就是这个服务备份的bat,不能静默的用au3运行成功。
下面是这个服务备份的bat内容

@echo off
remget current date and time
for /f "tokens=1, 2, 3, 4 delims=-/. " %%j in ('Date /T') do set FILENAME=srv_%%j_%%k_%%l_%%m
for /f "tokens=1, 2 delims=: " %%j in ('TIME /T') do set FILENAME=%FILENAME%_%%j_%%k.bat

rem get all service name
sc query type= service state= all| findstr /r /C:"SERVICE_NAME:" >tmpsrv.txt
echo Save Service Start State In %FILENAME%
rem save service start state into batch file
rem

echo @echo Restore The Service Start State Saved At %TIME% %DATE% >"%FILENAME%"
echo @pause >>"%FILENAME%"

for /f "tokens=2 delims=:" %%j in (tmpsrv.txt) do @( sc qc %%j |findstrSTART_TYPE >tmpstype.txt &&for /f "tokens=4 delims=:_ " %%s in ( tmpstype.txt) do @echo sc config%%j start= %%s >>"%FILENAME%")
echo @pause >>"%FILENAME%"

del tmpsrv.txt
del tmpstype.txt



现在生成的备份的bat代码为

@echo Restore The Service Start State Saved At 11:11:24.98 2010-08-20 星期五
@pause
@pause

上面这个是没有完全收集成功的。
大家有没有这个方面的经验,怎么做到静默运行这个bat呢?

23070205 发表于 2010-8-20 11:15:46

本帖最后由 23070205 于 2010-8-20 11:17 编辑

我解释下为什么是@scriptdir当前路径了,还要加双引号,因为主要为了考虑带空格的目录的问题。
页: [1]
查看完整版本: 如何静默运行收集当前运行的服务的bat