无忧启动论坛

标题: 如何替换字符串中的英文惊叹号“!”? [打印本页]

作者: chiannet    时间: 2018-7-4 08:23
标题: 如何替换字符串中的英文惊叹号“!”?
本帖最后由 chiannet 于 2018-7-4 08:25 编辑

  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. set ^a=54545^^!
  4. echo !^a!
复制代码

屏显为:
54545!

如何用CMD批处理实现:
1、替换这个“!”为其它符号?
2、又如果“!”是文件中多行不确定位置的呢?
作者: wuyouaaa    时间: 2018-7-4 08:57
C:\Windows\System32>set a=1234!234

C:\Windows\System32>echo %a%
1234!234

C:\Windows\System32>echo %a:!=%
1234234
作者: tools241    时间: 2018-7-4 09:04
* 如何利用 仿unix/linux命令 sed 一次替换文字中的 "某些相似性的字串" ==>
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=383106

* windows下安装 UnxUtils -- 仿 unix/linux 命令 (约120个) ==>
   http://bbs.wuyou.net/forum.php?mod=viewthread&tid=383107


作者: chiannet    时间: 2018-7-4 09:24
wuyouaaa 发表于 2018-7-4 08:57
C:\Windows\System32>set a=1234!234

C:\Windows\System32>echo %a%
  1. SETLOCAL  DISABLEDELAYEDEXPANSION
  2. set layedexpansion=1&if not "!layedexpansion!"=="1" (echo 延迟环境变量扩展未启用) else echo 延迟环境变量扩展已启用
  3. set a=54!545!
  4. echo %a%
  5. set  a=%a:!=今天%
  6. echo %a%
  7. pause
复制代码



忘记了SETLOCAL  DISABLEDELAYEDEXPANSION这条命令
作者: chiannet    时间: 2018-7-4 09:27
wuyouaaa 发表于 2018-7-4 08:57
C:\Windows\System32>set a=1234!234

C:\Windows\System32>echo %a%

如果必须要在延迟环境变量扩展开启的前提下,该如何不借助第三方外部命令来实现操作呢?
作者: holley2008    时间: 2018-7-4 10:03
  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. set a=54^^!545^^!
  4. echo !a!
  5. set  a=%a:!=今天%
  6. echo %a%
  7. pause>nul
复制代码

作者: junyee    时间: 2018-7-5 08:42
批处理灵活太差,坑又多,像这种 % ! " ' ,  处理起来要亲命.

PS 学习起来太复杂.

远没有 linuxshell 用起来那么方便.
作者: tools241    时间: 2018-7-5 09:25
junyee 发表于 2018-7-5 08:42
PS 学习起来太复杂.
远没有 linuxshell 用起来那么方便.


在windows也可用Linux命令 , 详见 3F
作者: dos时代菜鸟    时间: 2018-7-6 10:27
毕竟是 本地环境,目前看,扩展到其他 环境还是需要时间习惯。
比如,我只会用拼音打字,当时 拼音输入法 都是大体积不能上网的,比如 拼音加加 黑马拼音 啥的,要打材料,用拼音,还要速度,就必须自备 输入法,到了什么电脑上都安装下,在干活。
后来,觉得,还是自练 微软拼音 ,就是人们常说的 与其改造环境不如 适应环境。

现在环境好多了,qq输入法,搜狐输入法,随便网上下载安装就是了,而且很普及。
作者: junyee    时间: 2018-7-6 10:37
本帖最后由 junyee 于 2018-7-6 10:39 编辑
tools241 发表于 2018-7-5 09:25
在windows也可用Linux命令 , 详见 3F


linux shell 和 linux 命令是两回事吧.

当然,win 也有 bash 等第三方的.
或者是模拟linux环境,如 cygwin,msys,mingw .
虚拟机就算了,犯不着执行个脚本开个虚拟机..
我电脑上就下载有,一时找不着了 .

linux shell也不是很好,但是 linux 自带.
bat 也不是很好,就因为它自带.
powershell 强是强,就是因为太强了,学习起来费劲.

搞不好哪一天 被微软抛了,白学一场.
倒不如简单问题用CMD,复杂问题用第三方如 python,perl ,lua 这些跨平台的工具.





欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3