DOS文件名的括号

时间:2014-08-18 19:48:26

标签: batch-file character dos

我正在编写一个脚本来将旧文件复制到另一个文件夹中。

我的脚本基于此 http://www.dostips.com/DtTipsDateTime.php

在检查名为

的文件之前,一切都顺利进行
search_results_2014-04-16_142612(keywordsbroad-exact).xls

代码第31行似乎有错误:

) ELSE (for /f %%a in ('"dir %attr% /-c "%file%"|findstr "^^[0-9]""') do call:jdate JD "%%a")

我相信"("和"")"是导致问题的原因。我尝试添加^(和%%(对于语句,但我不断收到错误信息..

错误信息是.xls" | findstr" ^ [0-9]""这时出人意料。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

外部双引号导致问题。他们在那里制作它,所以你不需要逃避|,但它们会导致%file%出现问题,因为它没有被正确引用,导致)暴露,因此过早关闭IN()子句。解决方法是删除外部引号并转义管道。此外,插入符号现在将被正确引用,因此无需逃避它:

) ELSE (for /f %%a in ('dir %attr% /-c "%file%"^|findstr "^[0-9]"') do call :jdate JD "%%a")