Board logo

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

作者: wangkuang    时间: 2024-3-21 15:31     标题: 检查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. )
复制代码

作者: czjt1234    时间: 2024-3-21 15:49

另存为ANSI编码试试
作者: 77七    时间: 2024-3-21 16:35

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

作者: Batcher    时间: 2024-3-21 20:27

回复 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
作者: holley    时间: 2024-3-22 10:33

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





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2