标题: [文本处理] 批处理命令for不带开关,如何转义通配符星号和问号? [打印本页]
作者: tiandyoin 时间: 2023-10-10 16:04 标题: 批处理命令for不带开关,如何转义通配符星号和问号?
- :testForRaw
- set i=100
- for %%a in (
- "~"
- "`"
- "!"
- "@"
- "#"
- "$"
- "%"
- "^"
- "&"
- "*"
- "("
- ")"
- "-"
- "_"
- "+"
- "["
- "]"
- "{"
- "}"
- "\"
- "|"
- ":"
- ";"
- """"
- "'"
- "<"
- ">"
- ","
- "."
- "?"
- "/"
- "C:\Windows\System32\C_114?.NLS"
- "s(^^)*s"
- "a"
- "b c"
- "b
- c"
- ; "Data"=hex:
- ; " "Data"=hex: "
- ; ""Data"=hex:"
- ; "HKEY_CURRENT_USER\Control Panel"
- con
- "con"
- " " "
- """
- """
- ) do (
- set /a i+=1
- call set "Key%%i%%=%%~a"
- )
- set Key
- @goto :EOF
复制代码
代码如上,* 会匹配成当前目录下任何文件,? 会匹配成任何单个字符。
我想取消它两的特殊作用,能否把它们转义了?
作者: Five66 时间: 2023-10-10 17:38
应该无解
参考
http://www.bathome.net/viewthrea ... amp;page=1#pid30833
作者: pd1 时间: 2023-10-10 18:22
你这是英文的?*这个是不允许在文件名里面的吧 也就是说转义了也没用
中文的?做不了通配符吧
中文和英文的*好像是一样的
作者: Nsqs 时间: 2023-10-11 02:11
本帖最后由 Nsqs 于 2023-10-11 02:21 编辑
- @echo off
- set n=100
- for /f "delims=" %%1 in ('PowerShell -noprofile -executionpolicy bypass "$Read=gc '%~f0';$Read|select -Skip ($Read|Select-String '^::ps').LineNumber|out-string|iex"')do set /a n+=1&call set #Key%%n:~1,3%%=%%1
- set #Key
- pause
- goto :eof
-
- %你的代码1...%
- %你的代码2...%
- %你的代码3...%
- %你的代码666...%
-
-
- ::ps 从这一行开始最好放在最后一行
- data {
- '~'
- '`'
- '!'
- '@'
- '#'
- '$'
- '%'
- '^'
- '&'
- '*'
- '('
- ')'
- '-'
- '_'
- '+'
- '['
- ']'
- '{'
- '}'
- '\'
- '|'
- ':'
- ';'
- "'"
- '<'
- '>'
- ','
- '.'
- '?'
- '/'
- 'C:\Windows\System32\C_114?.NLS'
- 's()*s'
- 'a'
- 'b c'
- '"b '
- 'c"'
- ' "Data"=hex:'
- ' "Data=hex: '
- ' """Data"=hex:"'
- ' "HKEY_CURRENT_USER\Control Panel"'
- 'con'
- 'con'
- ' " '
- '"'
- }
- #下边就不要再写bat代码了,否则PowerShell读取不是你想要的数据了
复制代码
大致模拟,毕竟不懂你的逻辑
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |