在这里需要一点帮助,请稍微完成我的剧本,但似乎无法想出最后一篇文章。
背景
我需要将命令输出\\%%A\%B
与预设的"排除列表进行比较"比较该进程是否已在其他脚本上运行。
我有一个文件存储有复制错误的文件位置的日志。解析此日志文件,并将所有文件位置(动态)存储到%%A
和%%B
中。排除列表说明哪些文件已根据已知问题手动复制。此脚本需要跳过这些文件并复制其余文件。
要求:
我需要将%% A \ %% B的结果与\ root \ path进行比较,看看字符串是否匹配(在文件之前)。如果确实如此,我需要标记它。
代码:
这是我到目前为止所做的:
cd C:\logs
for /f "tokens=2* delims=\" %%A in (err.log) do (
if not \\%%A\%%B==%BACKUPDIR% (
if not \\%%A\%%B==%TEMPLATEPATH%\* (
for %%I in %PSTNAMES% do (
if not "\\%%A\%%B"=="%NASDIR%\%%I PST\"* (
echo %NASDIR%\%%I PST\*
@echo \\%%A\%%B
) else (
echo false
)
)
)
)
这可以让您了解需要发生什么 我也在尝试使用比较代码:
If NOT "%somepath%"=="%somepath:some_exclusion=%" (
echo continue
) else (
echo don't continue
)
EXTRA:
现在第一组代码可以工作,如果我只是要使用的路径,但因为它包含文件名,比较不匹配。 所以为了实现这个目标,我想有两种途径。
"%somepath%"=="%somepath:some_exclusion=%"
正常工作我遇到的问题是:
%somepath%
无法工作,因为我似乎无法将%%A
存储为%var%
等变量请帮忙
答案 0 :(得分:1)
如果您尝试将通配符与if
一起使用:这将无效。
但不是
if mouse==mouse*
你可以使用
echo mousetail | find "mouse" && echo yes || echo no
(仅显示基本原则; findstr
有一些有用的功能,如“字符串开头”:findstr "^mouse" - see
findstr /?`更多信息)