0
我在Windows 7 Professional上。我在C:\脚本中有以下文件。批处理脚本中途退出
clamav_daily_scan.bat
log_email_clamav_daily_scan.bat
email.vbs
log.txt
log_email_clamav_daily_scan.bat
@echo off
@echo set variables
SET DATETIME=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%%TIME:~9,2%
SET LOG_DIR="%PROGRAMFILES(X86)%"\ClamWin\bin\daily_scan\log
SET LOG_FILENAME=clamscanlog_%DATETIME%.txt
@echo start daily scan
C:\script\clamav_daily_scan.bat > %LOG_DIR%\%LOG_FILENAME%
@echo send result
C:\Windows\SysWOW64\cscript.exe C:\script\email.vbs %LOG_DIR%\%LOG_FILENAME%
当我执行CMD上log_email_clamav_daily_scan.bat,它只是停止,直到开始每天扫描。
C:\script\log_email_clamav_daily_scan.bat
set variables
start daily scan
首先,删除'@echo off'或将其更改为'@echo on'或命令'REM把它注释掉'在开始时。其次,打开命令提示符窗口。第三,在双引号中输入带完整路径的批处理文件的名称。第四,按ENTER或RETURN,现在从命令提示符窗口中运行批处理文件,而不是双击它,可以看到错误消息输出,因为窗口在出错时保持打开状态。而且你也看到命令行在命令处理器处理后真正执行。这就是我们所说的调试批处理文件。 – Mofi
如果使用您的用户帐户执行的批处理文件对目录'“%ProgramFiles(x86)%\ ClamWin \ bin \ daily_scan \ log”'具有写入权限,那么我会非常惊讶。请注意我在这里放置第二个双引号的位置,以及在代码中将第二个双引号放在字符串中的位置。为什么您使用'C:\ Windows \ SysWOW64 \ cscript.exe'而不是'%SystemRoot%\ System32 \ csript.exe'运行32位或64位控制台版本的Windows脚本宿主,具体取决于执行的批处理文件来自32位或64位命令解释器,具体取决于从32位还是64位进程启动? – Mofi
还有一个类似的问题:重复吗? http://stackoverflow.com/q/1103994/4291215 – loadingnow