Windows 7 批处理文件删除带空格的路径中的指定文件

Windows 7 批处理文件删除带空格的路径中的指定文件

我正在尝试运行批处理,但似乎找不到指定的文件。我希望批处理执行以下操作:

  1. 终止我的 IP 摄像机软件
  2. 等待几秒钟以确保软件已关闭
  3. 删除存档(视频)文件,只保留一个文件(Sources.SRCS.lxa
  4. 再次等待以确保文件已全部删除
  5. 重新启动 IP 摄像机软件
  6. 关闭批处理窗口

我认为我已经接近了,但我真的很希望有“专业人士”来解决这个问题,让它正常工作。这是我目前的情况(我读了一些简单的书后“拼凑”起来的,但目前我陷入了困境):

@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,您的处理也不会失败。

相关内容