[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 happyxxdhaha 于 2019-2-23 17:24 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /a-d /s /b c:\9999.vmx') do (
  3. set list=aaa=bbb;ccc=ddd;eee=fff;
  4. echo %%i
  5. call:loop "%%i"
  6. )
  7. pause&goto:eof
  8. :loop
  9. if not defined list del tmp.tmp&goto:eof
  10. for /f "tokens=1,* delims=;" %%i in ("%list%") do (set tmp=%%i&set list=%%j)
  11. for /f "tokens=1,2 delims==" %%i in ("%tmp%") do (set a=%%i&set b=%%j)
  12. (for /f "usebackq delims=" %%i in (%1) do (set str=%%i&echo !str:%a%=%b%!))>tmp.tmp&>nul fc tmp.tmp %1||>nul copy tmp.tmp %1
  13. goto:loop
复制代码
Life is a balance.

TOP

本帖最后由 happyxxdhaha 于 2019-2-24 14:19 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /a-d /s /b c:\9999.vmx') do (
  3. echo %%i
  4. call:next "%%i"
  5. )
  6. pause&goto:eof
  7. :next
  8. for /f "tokens=1,2 delims=;" %%i in ('more +17 "%~f0"') do (
  9. set old=%%i&set old=!old:"="""!
  10. set new=%%j
  11. (for /f "delims=" %%a in ('findstr /biv "uuid" %1') do echo %%a|>nul findstr /c:"!old!" &&echo !new!||echo %%a)>tmp.tmp&>nul findstr /c:"logging = """FALSE"""" tmp.tmp||>>tmp.tmp echo logging = "FALSE"&>nul fc tmp.tmp %1||>nul copy tmp.tmp %1
  12. )
  13. del tmp.tmp&goto:eof
  14. :list
  15. rem 整行替换,分隔符为分号。
  16. ethernet0.networkName = "VM Network";ethernet0.networkName = "VM Network 2"
  17. scsi0:0.fileName = "/vmfs/volumes/datastore1/8800/8800.vmdk";scsi0:0.fileName = "/vmfs/volumes/53dc6d93-3bf4396b-0807-0024817f82ad/test.vmdk"
  18. sched.swap.derivedName = "/vmfs/volumes/datastore1/9999/9999-f17ab1e4.vswp";sched.swap.derivedName = "/vmfs/volumes/53dc6d93-3bf4396b-0807-0024817f82ad/test.vswp"
复制代码
1

评分人数

Life is a balance.

TOP

本帖最后由 happyxxdhaha 于 2019-2-23 21:33 编辑

回复 6# 滴血雄鹰

路径只需要修改dir /a-d /s /b 后面的字符串即可,其它地方不需要修改。findstr /c:这里的"c:"是findstr的开关,不是盘符。
list标签后面的替换代码要写完整,因为是整行替换,你只复制一半,所以出错了,要这样复制:scsi0:0.fileName = "/vmfs/volumes/datastore1/8800/8800.vmdk";scsi0:0.fileName = "/vmfs/volumes/53dc6d93-3bf4396b-0807-0024817f82ad/test.vmdk"。
5楼的代码,我又修改了一下,你再试试看。
Life is a balance.

TOP

回复 8# 滴血雄鹰

5楼的代码已修改,把这两个功能整合到一起了。
Life is a balance.

TOP

返回列表