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

[文件操作] 检查BAT代码错误:复制文件名含有指定关键字的文件

查找当前文件夹内文件名含有  家访  二字的文件,将文件复制到名字为B的文件夹内,执行代码,打开BAT后自动闪退,无任何提示,win10系统:
  1. @echo off
  2. :: 设置要查找的字符串
  3. set searchString=家访
  4. :: 获取当前批处理文件所在的文件夹路径
  5. set sourceFolderPath=%~dp0
  6. :: 遍历源文件夹中的文件
  7. for %%f in (%sourceFolderPath%\*) do (
  8.     :: 获取文件名
  9.     set fileName=%%~nxf
  10.     :: 如果文件名包含指定字符串,将文件复制到目标文件夹
  11.     if "!fileName!" contains "%searchString%" (
  12.         copy "%%f" B\
  13.         echo "成功复制文件:!fileName!"
  14.     ) else (
  15.         echo "文件!fileName! 不包含'家访',未进行复制。"
  16.     )
  17. )
  18. if errorlevel 1 (
  19.     echo "复制过程中发生错误,请检查文件和权限。"
  20. ) else (
  21.     echo "文件复制完成。"
  22. )
复制代码

另存为ANSI编码试试

QQ 20147578

TOP

  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. md "B" 2>nul
  4. for %%a in (*家访*) do (
  5. copy "%%a" "B\"
  6. )
  7. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 1# wangkuang


请参考Q-04把test.bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA

如果仍有问题,请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 holley 于 2024-3-22 10:39 编辑

回复 1# wangkuang


    14行 这句 我读得懂意思,但...
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :: 检查目标文件夹B是否存在,如果不存在则创建
  4. if not exist "B\" (
  5.     mkdir "B"
  6.     if errorlevel 1 (
  7.         echo 创建文件夹B失败,请检查权限。
  8.         goto :EOF
  9.     )
  10. )
  11. :: 查找当前目录下文件名包含“家访”的文件,并复制到B文件夹内
  12. for /r %%i in (*家访*) do (
  13.     echo 正在复制文件: %%i
  14.     copy "%%i" "B\"
  15.     if errorlevel 1 (
  16.         echo 复制文件 %%i 失败。
  17.     ) else (
  18.         echo 复制文件 %%i 成功。
  19.     )
  20. )
  21. echo.
  22. echo 复制操作完成。
  23. pause
复制代码

TOP

返回列表