Shell脚本在文件夹上运行

时间:2014-12-18 20:48:30

标签: batch-file

我有要求进行维护。

我在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 

1 个答案:

答案 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是否有必要这样做。