Windows批处理字符串替换在变量给出搜索字符串时不起作用
发布时间:2020-12-14 01:42:07 所属栏目:Windows 来源:网络整理
导读:我破坏了一些代码,它们应该删除没有名称以keep值开头的文件.我通过将文件的名称放在tmpL1和tmpL2中同时替换keep with nothing的值来实现这一点.如果tmpL1和tmpL2不同,我会保留文件,否则会被删除. setlocal enabledelayedexpansionset keep=[File I want to k
我破坏了一些代码,它们应该删除没有名称以keep值开头的文件.我通过将文件的名称放在tmpL1和tmpL2中同时替换keep with nothing的值来实现这一点.如果tmpL1和tmpL2不同,我会保留文件,否则会被删除.
setlocal enabledelayedexpansion set keep=[File I want to keep] for /F %%L IN ('dir /b *') do ( set tmpL1=%%L set tmpL2=!tmpL1:%keep%=! if !tmpL1!==!tmpL2! ( echo.[REMOVE] ) else ( echo.[KEEP] ) ) 这工作正常.但是,当我将此代码放在一个更大的脚本中时,设置tmpL2突然停止工作.而不是(部分)文件名tmpL2现在字面上包含tmpL1:=. 这是我想要使用它的脚本.附加的for循环仅用于浏览目录树.脚本的主要功能仍然相同. setlocal enabledelayedexpansion for /F %%G in ('dir /b *-snapshots') do ( set tmpG1=%%G for /F %%H in ('dir /b !tmpG1!*') do ( set tmpH1=%%H for /F %%I in ('dir /b !tmpG1!!!*') do ( set tmpI1=%%I for /F %%J in ('dir /b !tmpG1!!!!!*-SNAPSHOT') do ( set tmpJ1=%%J set tmpJ2=!tmpJ1:~0,8! for /F %%K in ('dir /b !tmpG1!!!!!!!*!tmpJ2!*.pom /O:N') do ( set tmp1=%%K ) set keep=!tmp1:.pom=! for /F %%L in ('dir /b !tmpG1!!!!!!!*!tmpJ2!*') do ( set tmpL1=%%L set tmpL2=!tmpL1:%keep%=! pause if !tmpL1!==!tmpL2! ( echo.[REMOVE] ) else ( echo.[KEEP] ) ) ) ) ) ) 我还尝试通过替换set tmpL2 =!tmpL1来尝试“懒惰”延迟扩展:%keep%=!使用调用集tmpL2 = %% tmpL1:%keep%= %%.这也适用于小脚本,但当我将它应用于大脚本时,我得到一个错误,如“=%”无法在此位置进行语法处理(这是一个免费的翻译,因为我的控制台是德语). 任何人都知道造成这种情况的原因是什么?
您可以尝试更改此行
set tmpL2 =!tmpL1:%keep%=! 同 FOR /F "delims=" %%R in (""!keep!"") do set "tmpL2=!tmpL1:%%~R=!" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 基于X次登录尝试失败的禁止IP地址?
- gtk3 – 自gtk版本3.22起不推荐使用’gdk_screen_get_activ
- 如何将Window从另一个应用程序嵌入到WPF窗口中作为用户控件
- windows-phone-7 – WP7 – 1月工具更新会爆炸我的应用程序
- windows-update – Windows Server 2016中的“延迟功能更新
- 插件 – 带有NPAPI插件扩展的外部dll打包
- active-directory – 你可以将域功能级别提升到Windows Ser
- windows – 如何在域控制器上配置DNS服务器
- windows – 如何最大限度地减少存储消耗?
- windows-7 – Windows交换文件:当我有8GB RAM时,为什么我有
推荐文章
站长推荐
- windows-server-2008 – 由于不支持NETDIAG,在Wi
- Windows文件系统:当删除并再次创建文件时,文件的
- windows-xp – 如何强制某些应用程序使用特定的网
- WPF窗口托管usercontrol
- windows-server-2012-r2 – Windows Server 2012
- 用于Windows的Git bash不提示输入密码
- windows-server-2008-r2 – 处理器关联掩码(IIS)
- windows – 枚举特定组的所有用户的AD查询语法是
- windows-server-2008-r2 – 在文件复制操作期间,
- Windows命令行javascript
热点阅读