[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]求助查错批处理查找同名文件并覆盖替换提示“命令语法错误”

求助高手一下!D:\Form_TM\Form.api 这个文件  
在C盘
C:\Program Files\Founder\Apabi Reader 4.0\Plugins
C:\program files(x86)\Founder\Apabi Reader 4.0\Plugins  
这两个文件夹内查找同名文件并替换
但是W7  W10系统替换系统文件 需要以管理员方式运行
这个BAT怎么做??

命令语法错误 哪位高手帮帮忙看看是哪里有问题!!
  1. @echo off&setlocal enabledelayedexpansion
  2. set "file=C:\Form_TM\Form.api
  3. for %%i in ("%file%") do set name=%%~nxi
  4. for %%i in (C) do (
  5. echo,正在查找%%i:中的同名文件...
  6. set choice=null
  7. for /f "delims=" %%j in ('dir /b /s %%i:\%name% 2^>nul') do (
  8. if not "%file%"=="%%j" (set /p choice=需要替换【%%j】吗?(Y/N^)) else (set choice=noneed)
  9. if /i "!choice!"=="Y" copy /y "%file%" %%j
  10. )
  11. if /i "!choice!"=="null" echo,没有找到同名文件。
  12. if /i "!choice!"=="noneed" echo,没有找到其他同名文件。
  13. echo,
  14. )
  15. echo,已按要求完成所有替换,按任意键退出...
  16. pause>nul
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

咋没人回啊???

TOP

到底是哪有问题呀??

TOP

晕死!!看来这边也没啥高手啊!
这么简单的问题都处理不了!!
1

评分人数

    • lxzzr: 不要动不动就高手什么的,还是谦虚低调点好 ...PB -4

TOP

解决冲20QB

TOP

把报错信息发出来看看

TOP

  1. set "file=C:\Form_TM\Form.api
复制代码
人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

回复 7# 回家路上


我的Win7测试这里没有报语法错,你用什么环境测的?
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

别这么傻B。只是你自己不会。不是别人会。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 8# gawk


哦,这么写确实行,我一眼看去,以为右边少个双引号呢。试了确实还能正确解析。

整个脚本我试了,没错。估计楼主是一时兴起发着玩的吧。也没说错误。
而或许只是脚本没达到自己设想效果而不是错。
人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

运行后输入Y就有这个提示了

TOP

W7 环境下运行的

TOP

怎么改成找到后直接替换啊!!不用输入Y的

TOP

找到文件后直接替换这边该怎么写啊???

set choice=null
for /f  "delims=" %%j in ('dir /b /s %%i:\%name% 2^>nul') do (
if not "%file%"=="%%j" (set /p choice=需要替换【%%j】吗?(Y/N^)) else (set choice=noneed)
if /i "!choice!"=="Y" copy/y "%file%" %%j
)
if /i "!choice!"=="null" echo,没有找到同名文件。
if /i "!choice!"=="noneed" echo,没有找到其他同名文件。
echo,
)

解决问题后发微信30元红包!!谢谢 或者充20 Q币

TOP

回复 11# mqi666


if /i "!choice!"=="Y" copy /y "%file%" "%%j"
初步猜测是这里少了双引号

如果仍然有问题,请把 @echo off 删掉重新执行,看看具体哪个命令在报错。

TOP

返回列表