无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5221|回复: 9
打印 上一主题 下一主题

[求助] 如何替换字符串中的英文惊叹号“!”?

[复制链接]
跳转到指定楼层
#
发表于 2018-7-4 08:23:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 chiannet 于 2018-7-4 08:25 编辑

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

屏显为:
54545!

如何用CMD批处理实现:
1、替换这个“!”为其它符号?
2、又如果“!”是文件中多行不确定位置的呢?
9#
发表于 2018-7-6 10:37:09 | 只看该作者
本帖最后由 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 这些跨平台的工具.
回复

使用道具 举报

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

现在环境好多了,qq输入法,搜狐输入法,随便网上下载安装就是了,而且很普及。
回复

使用道具 举报

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


在windows也可用Linux命令 , 详见 3F

点评

linux shell 和 linux 命令是两回事吧. 当然,win 也有 bash 等第三方的. 我电脑上就下载有,一时找不着了 . linux shell也不是很好,但是 linux 自带. bat 也不是很好,就因为它自带. powershell 强是强,就是  详情 回复 发表于 2018-7-6 10:37
回复

使用道具 举报

6#
发表于 2018-7-5 08:42:09 | 只看该作者
批处理灵活太差,坑又多,像这种 % ! " ' ,  处理起来要亲命.

PS 学习起来太复杂.

远没有 linuxshell 用起来那么方便.

点评

在windows也可用Linux命令 , 详见 3F  详情 回复 发表于 2018-7-5 09:25
回复

使用道具 举报

5#
发表于 2018-7-4 10:03:07 | 只看该作者
  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. set a=54^^!545^^!
  4. echo !a!
  5. set  a=%a:!=今天%
  6. echo %a%
  7. pause>nul
复制代码
回复

使用道具 举报

4#
 楼主| 发表于 2018-7-4 09:27:57 | 只看该作者
wuyouaaa 发表于 2018-7-4 08:57
C:\Windows\System32>set a=1234!234

C:\Windows\System32>echo %a%

如果必须要在延迟环境变量扩展开启的前提下,该如何不借助第三方外部命令来实现操作呢?
回复

使用道具 举报

3#
 楼主| 发表于 2018-7-4 09:24:23 | 只看该作者
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这条命令
回复

使用道具 举报

2#
发表于 2018-7-4 09:04:58 | 只看该作者
* 如何利用 仿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

回复

使用道具 举报

1#
发表于 2018-7-4 08:57:45 | 只看该作者
C:\Windows\System32>set a=1234!234

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

C:\Windows\System32>echo %a:!=%
1234234

点评

如果必须要在延迟环境变量扩展开启的前提下,该如何不借助第三方外部命令来实现操作呢?  详情 回复 发表于 2018-7-4 09:27
忘记了SETLOCAL DISABLEDELAYEDEXPANSION这条命令  详情 回复 发表于 2018-7-4 09:24
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 18:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表