批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

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

本帖最后由 HerveyHu 于 2020-7-1 23:37 编辑

起因是这样的,因为经常使用不同的电脑,电脑里面的有个专业软件需要使用一些收藏的文件,每次都要用U盘拷贝到电脑的指定盘符,比较麻烦,现在有个想法是这样的:当U盘插入电脑时,U盘里的bat档可以自动读取目前U盘的盘符,并替换掉指定文件(文件后缀是.pro格式)里面的多个相同路径前的盘符(如原始为D:\  替换为新的假设为E:\ ,盘符后面的路径不动),以达到可以直接使用U盘里的文件资料,感谢了!!!

pro格式的文件用记事本软件能打开吗?把pro格式的文件发上来看看内容是啥样的

TOP

回复 2# binghejin

可以打开的

TOP

本帖最后由 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
复制代码

TOP

回复 4# binghejin
大佬,考到U盘里测试了一下,好像不行,部分内容被串改,运行时还报错了,麻烦用新的附档再改改看,感谢!

TOP

你这两次给的附件不一样啊,现在给的附件是正确的文件么?

TOP

回复 6# binghejin
本来源文件不太方便给,但是看见报错比较多,索性就发上来了,麻烦了,只要U盘插上,读取U盘当前盘符,替换掉文档里的盘符就好了,后面的路径不变,感谢!!

TOP

本帖最后由 yhcfsr 于 2020-6-30 21:14 编辑

方案逻辑:
1.电脑运行VBS脚本(VBS可以无窗口静默运行),后台循环监控U盘插入事件.
2.如果有U盘插入,检测U盘是否存在指定路径的.pro文件(防止对其他U盘误操作).
3.检测电脑是否存在指定路径的.pro文件(如无必要可省略这一步),如果有则复制U盘指定路径.pro文件覆盖.
4.将VBS脚本加入任务计划,设置登陆运行;或者其他开机启动VBS脚本的方式.
5.想要免费快速解决,最好加入论坛QQ群.否则付费留联系方式,自有高手前来.
QQ 33892006

TOP

必须运行在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
复制代码

TOP

返回列表