我正在尝试运行批处理,但似乎找不到指定的文件。我希望批处理执行以下操作:
- 终止我的 IP 摄像机软件
- 等待几秒钟以确保软件已关闭
- 删除存档(视频)文件,只保留一个文件(
Sources.SRCS.lxa
) - 再次等待以确保文件已全部删除
- 重新启动 IP 摄像机软件
- 关闭批处理窗口
我认为我已经接近了,但我真的很希望有“专业人士”来解决这个问题,让它正常工作。这是我目前的情况(我读了一些简单的书后“拼凑”起来的,但目前我陷入了困境):
@echo off
taskkill /f /im DVRClient.exe
timeout 10
for %%i in (N:\TRENDnet\"TRENDnetVIEW Pro"\"Archive Files"\*) do if not %%~nxi == Sources.SRCS.lxa del %%i
timeout 20
C:\Program Files (x86)\TRENDnet\TRENDnetVIEW Pro\DVRClient.exe
exit
任何帮助,将不胜感激!
谢谢,艾德
答案1
带引号的原则是必须用引号括住整个路径(而不是部分目录)。
因此转换
N:\TRENDnet\"TRENDnetVIEW Pro"\"Archive Files"\*
进入
"N:\TRENDnet\TRENDnetVIEW Pro\Archive Files\*"
并转换
C:\Program Files (x86)\TRENDnet\TRENDnetVIEW Pro\DVRClient.exe
进入
"C:\Program Files (x86)\TRENDnet\TRENDnetVIEW Pro\DVRClient.exe"
最后,您可以考虑%%i
用引号将所有出现的变量括起来:"%%i"
因此,如果文件名中带有空格%%i
,您的处理也不会失败。