找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25249|回复: 8

[文本处理] 批处理如何读取目前U盘的盘符并替换文件内容?

[复制链接]
发表于 2020-6-28 00:22:16 | 显示全部楼层 |阅读模式
本帖最后由 HerveyHu 于 2020-7-1 23:37 编辑

起因是这样的,因为经常使用不同的电脑,电脑里面的有个专业软件需要使用一些收藏的文件,每次都要用U盘拷贝到电脑的指定盘符,比较麻烦,现在有个想法是这样的:当U盘插入电脑时,U盘里的bat档可以自动读取目前U盘的盘符,并替换掉指定文件(文件后缀是.pro格式)里面的多个相同路径前的盘符(如原始为D:\  替换为新的假设为E:\ ,盘符后面的路径不动),以达到可以直接使用U盘里的文件资料,感谢了!!!
发表于 2020-6-28 14:21:51 | 显示全部楼层
pro格式的文件用记事本软件能打开吗?把pro格式的文件发上来看看内容是啥样的
 楼主| 发表于 2020-6-28 16:39:25 | 显示全部楼层
回复 2# binghejin

可以打开的
发表于 2020-6-28 17:37:44 | 显示全部楼层
本帖最后由 binghejin 于 2020-6-28 17:39 编辑

以下为修改盘符并生成一个新的文件。
  1. @echo off
  2. cls
  3. for /f "tokens=1 delims=" %%a in ('echo %cd%') do (set pan=%%a)
  4. for /f "delims=" %%z in (config.pro) do (
  5.         for /f "tokens=1 delims= " %%a in ('echo %%z') do (
  6.                 for /f "tokens=2 delims=:" %%b in ('echo %%z') do (
  7.                 echo %%a %pan%%%b>>new.txt
  8.                 )
  9.         )
  10. )
复制代码
以下为在源文件上修改盘符(注意保存原文件)
  1. @echo off
  2. cls
  3. for /f "tokens=1 delims=" %%a in ('echo %cd%') do (set pan=%%a)
  4. for /f "delims=" %%z in (config.pro) do (
  5.         for /f "tokens=1 delims= " %%a in ('echo %%z') do (
  6.                 for /f "tokens=2 delims=:" %%b in ('echo %%z') do (
  7.                 echo %%a %pan%%%b>>new.txt
  8.                 )
  9.         )
  10. )
  11. del /q config.pro>nul
  12. ren new.txt config.pro
复制代码
 楼主| 发表于 2020-6-29 22:00:21 | 显示全部楼层
回复 4# binghejin
大佬,考到U盘里测试了一下,好像不行,部分内容被串改,运行时还报错了,麻烦用新的附档再改改看,感谢!
发表于 2020-6-30 17:55:21 | 显示全部楼层
你这两次给的附件不一样啊,现在给的附件是正确的文件么?
 楼主| 发表于 2020-6-30 19:15:29 | 显示全部楼层
回复 6# binghejin
本来源文件不太方便给,但是看见报错比较多,索性就发上来了,麻烦了,只要U盘插上,读取U盘当前盘符,替换掉文档里的盘符就好了,后面的路径不变,感谢!!
发表于 2020-6-30 21:12:59 | 显示全部楼层
本帖最后由 yhcfsr 于 2020-6-30 21:14 编辑

方案逻辑:
1.电脑运行VBS脚本(VBS可以无窗口静默运行),后台循环监控U盘插入事件.
2.如果有U盘插入,检测U盘是否存在指定路径的.pro文件(防止对其他U盘误操作).
3.检测电脑是否存在指定路径的.pro文件(如无必要可省略这一步),如果有则复制U盘指定路径.pro文件覆盖.
4.将VBS脚本加入任务计划,设置登陆运行;或者其他开机启动VBS脚本的方式.
5.想要免费快速解决,最好加入论坛QQ群.否则付费留联系方式,自有高手前来.
发表于 2020-7-3 16:58:27 | 显示全部楼层
必须运行在U盘根目录下,config.pro文件也必须在U盘根目录下,不然就需要根据情况修改,否则会出错。
  1. @echo off
  2. cls
  3. echo set fso = createobject("scripting.filesystemobject")>>yk.vbs
  4. echo set stream = fso.opentextfile("config.pro",1)>>yk.vbs
  5. echo content = stream.readall()>>yk.vbs
  6. echo call stream.close()>>yk.vbs
  7. echo content = replace(content,"D:","%cd%")>>yk.vbs
  8. echo set stream = fso.opentextfile("config.pro",2)>>yk.vbs
  9. echo call stream.write(content)>>yk.vbs
  10. echo call stream.close()>>yk.vbs
  11. call yk.vbs
  12. del /q yk.vbs
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 23:35 , Processed in 0.019779 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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