我有要求进行维护。
我在d文件夹中有一个exe文件,该exe文件应该在不同驱动器上不同文件夹中的文件上运行。
exe文件路径:d:\ notes \ ncompact.exe 它应该在E盘中的文件夹上运行,维护应该在以1开头的文件上运行 E:\ NOTES \数据\ 1 *。NSF
请给我这个
的脚本从评论中添加:
@echo off
Start D:\notes\nserver.exe -q >> D:\logs\quitDomino.txt
pause
net stop "Lotus Domino Server (ENotesData)" >> D:\logs\lotusservice.txt
Pause
echo %date% %time% >> D:\logs\updall.txt
pause
Start D:\notes\ncompact.exe -c -i "E:\notes\data\state\1*.nsf" >> D:\logs\bes1.txt
echo %date% %time% >> D:\logs\bes1.txt
pause
Start D:\notes\ncompact.exe -c -i "E:\notes\data\state\2*.nsf" >> D:\logs\bes2.txt
echo %date% %time% >> D:\logs\bes1.txt
end
答案 0 :(得分:0)
听起来你的程序D:\notes\ncompact.exe
不懂通配符。
我编写批处理文件已经8年了。但是,for /f
命令应该允许您执行所需的操作。
试试这个:
@echo off
setlocal enableextensions
Start D:\notes\nserver.exe -q >> D:\logs\quitDomino.txt
pause
net stop "Lotus Domino Server (ENotesData)" >> D:\logs\lotusservice.txt
Pause
echo %date% %time% >> D:\logs\updall.txt
pause
for /f %%f in (E:\notes\data\state\1*.nsf) do ( Start D:\notes\ncompact.exe -c -i %%f >> D:\logs\bes1.txt )
echo %date% %time% >> D:\logs\bes1.txt
pause
for /f %%f in (E:\notes\data\state\2*.nsf) do ( Start D:\notes\ncompact.exe -c -i %%f >> D:\logs\bes2.txt )
echo %date% %time% >> D:\logs\bes1.txt
end
请注意,如果从命令行而不是批处理文件运行,则可能需要使用%f
而不是%%f
。正如我所说,已经很长时间了。我还添加了setlocal enableextensions
命令。我不记得for /f
是否有必要这样做。