【发布时间】:2015-11-09 08:58:44
【问题描述】:
如何检查批处理文件中的变量是否包含特殊字符?
例如,如果我的变量包含文件名,则文件名不应包含 \/ < > | : * " ? 这些字符。
@echo off
set param="XXX"
echo %param%| findstr /r "^[^\\/?%*:|"<>\.]*$">nul
if %errorlevel% equ 0 goto :next
echo "Invalid Attribute"
:next
echo correct
【问题讨论】:
-
到目前为止你尝试过什么?请通过编辑您的帖子分享您的尝试...
-
我不需要转义或替换,我只需要找到变量是否有字符,如果变量有字符,我需要从批处理文件中退出
-
您肯定需要转义,因为您必须在脚本中逐字说明字符;其余的有两个可能的起点: 1. 字符串替换,如
if "%VAR%"=="%VAR:/=%",因此如果VAR不包含/,则条件为真; 2. 像for /F "tokens=2 delims=\/:%C in ("%VAR%#") 这样的for /F循环,仅当至少出现任何给定字符\/:时才执行循环;
标签: windows batch-file