[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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

回复 22# mqi666


收到,谢谢。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 20# GNU


    已转30元

TOP

回复 18# mqi666
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "file=C:\Form_TM\Form.api"
  4. for %%i in ("%file%") do set "name=%%~nxi"
  5. for %%i in (C) do (
  6.     echo,正在查找%%i:中的同名文件...
  7.     for /f "delims=" %%j in ('dir /b /s "%%i:\%name%" 2^>nul') do (
  8.         if not "%file%"=="%%j" (
  9.             copy /y "%file%" "%%j"
  10.         )
  11.     )
  12. )
  13. echo,已按要求完成所有替换,按任意键退出...
  14. pause>nul
复制代码

TOP

回复 19# mqi666


请替我捐给论坛吧,谢谢。
支付宝账号 batcher.li@gmail.com
http://bbs.bathome.net/thread-10403-1-1.html

TOP

回复 15# GNU


    这问老师把微信号发给我!我转帐给你

TOP

回复 15# GNU


    这位老师说的非常对!就是这个双引号问题!我想直接替换该怎么弄!!不需要输入Y N 的

TOP

星期1看看!!!不再办公室

TOP

回复 15# GNU


    估计是...

TOP

回复 11# mqi666


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

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

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

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

TOP

W7 环境下运行的

TOP

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

TOP

返回列表