找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32215|回复: 14

[文本处理] 批处理复制文件为何提示:找不到文件?

[复制链接]
发表于 2015-9-2 21:20:57 | 显示全部楼层 |阅读模式
各位老师好!以下代码始终执行时,提示:找不到文件 — *.* ,复制了0个文件。 2015年07月份,执行完毕!
  1. @echo off
  2. set /a "y=%date:~,4%,m=1%date:~5,2%-2"
  3. if %m% lss 101 set /a y-=1,m+=12
  4. xcopy /y "e:\外勤\%y%\%m:~-2%\*.*" d:\
  5. echo %y%年%m:~-2%月份%,执行完毕!
  6. pause
复制代码
平时创建目录是执行的如下批处理文件,是否错误与此有关?
  1. @echo off
  2. set /p d="创建日期目录: (注意日期格式:2015-05-01)"
  3. md e:\外勤\%d%
  4. pause
复制代码
我是在w7系统上运行!
发表于 2015-9-2 21:52:14 | 显示全部楼层
我猜   e:\外勤\2015\07\   下没文件
要么只有目录,要么什么都没有
 楼主| 发表于 2015-9-2 22:11:50 | 显示全部楼层

【说明】 期待高手帮我解决,这个难题

回复 2# 回家路上
说明:你好!在w7系统上,那个创建目录代码,如2015年07月05日创建的目录显示为e盘“外勤”下显示:2015、07、05,三个文件夹!
我的文件全部放在号数文件夹下的(05文件夹下),每天的文件都有几个,所以按号数文件夹存放文件。
发表于 2015-9-2 22:27:06 | 显示全部楼层
回复 3# 7016427


所以这个就应该说清楚。xcopy加上/e参数

  1. xcopy /y /e "e:\外勤\%y%\%m:~-2%\*.*" d:\
复制代码
 楼主| 发表于 2015-9-3 16:20:41 | 显示全部楼层

【未解决】 批处理复制文件为何提示:找不到文件?

【未解决】回复 4# 回家路上
xcopy /y /e "e:\外勤\%y%\%m:~-2%\*.*" d:\
win7系统上执行时,仍然错误提示:系统找不到指定文件。最后显示已了38个文件。请问老师怎么解决!
发表于 2015-9-3 18:14:21 | 显示全部楼层
回复 5# 7016427


那我再猜,你的代码不止这些

  1. @echo off
  2. set /a "y=%date:~,4%,m=1%date:~5,2%-2"
  3. if %m% lss 101 set /a y-=1,m+=12
  4. xcopy /e /y "e:\外勤\%y%\%m:~-2%\*.*" d:\
  5. echo %y%年%m:~-2%月份%,执行完毕!
  6. pause
复制代码
这个代码不至于又错又对
 楼主| 发表于 2015-9-3 21:56:42 | 显示全部楼层

[请高手解决]批处理复制文件为何提示:找不到文件?

[请高手解决]回复 6# 回家路上
我的完整代码如下,执行时提示:系统找不到指定文件,显示复制文件路径和文件名,最后显示已复制38个文件。目录不是空的。2015年07月份,执行完毕!
@echo off
set /a "y=%date:~,4%,m=1%date:~5,2%-2"
if %m% lss 101 set /a y-=1,m+=12
del d:\备份\*.* /q
xcopy /e /y "e:\外勤\%y%\%m:~-2%\*.*" d:\备份\
del "e:\外勤\%y%\%m:~-2%\*.*" /q
rd "e:\外勤\%y%\%m:~-2%
echo %y%年%m:~-2%月份%,执行完毕!
pause
 楼主| 发表于 2015-9-3 22:06:43 | 显示全部楼层

【补充】 批处理复制文件为何提示:找不到文件?

回复 7# 7016427
说明:执行时,复制文件正确,就是未删除指定文件和指定目录!
发表于 2015-9-3 22:25:40 | 显示全部楼层
回复 8# 7016427


下次说的话可以说的更全面点,节省时间

  1. @echo off
  2. set "spath=e:\外勤"
  3. set "bakpath=d:\备份"
  4. set /a "y=%date:~,4%,m=1%date:~5,2%-2"
  5. if %m% lss 101 set /a y-=1,m+=12
  6. rd /q /s %bakpath%&md %bakpath%
  7. xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%"
  8. rd /q /s "%spath%\%y%\%m:~-2%"
  9. echo %y%年%m:~-2%月份,备份完毕!
  10. pause & exit /b
复制代码
 楼主| 发表于 2015-9-3 22:42:31 | 显示全部楼层
回复 9# 回家路上

谢谢!我明天在w7电脑上试!
 楼主| 发表于 2015-9-4 14:02:13 | 显示全部楼层

【继续请教】 批处理复制文件为何提示:找不到文件?

回复 9# 回家路上
你好!我想再加个判断条件:也就是“%spath%\%y%\%m:~-2%”这个目录不存在就退出,怎样修改?谢谢其他要的。
发表于 2015-9-4 17:05:28 | 显示全部楼层
回复 11# 7016427


你在论坛一年多了,发了这么多贴,怎么这if都不会。。。。。

  1. if exist "%spath%\%y%\%m:~-2%" (
  2.         xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%"
  3.         rd /q /s "%spath%\%y%\%m:~-2%"
  4.         echo %y%年%m:~-2%月份,备份完毕!
  5. ) else echo;%spath%\%y%\%m:~-2%\不存在,程序退出。
复制代码
 楼主| 发表于 2015-9-4 20:43:52 | 显示全部楼层

【请教老师】 批处理复制文件为何提示:找不到文件?

【请教老师】回复 12# 回家路上
请教各位老师,以下代码执行时,我密码输入正确,仍无法执行,还是提示:对不起,您密码输入错误!
@echo off&setlocal EnableDelayedExpansion
echo.
set "spath=e:\外勤"
set "bakpath=d:\备份\外勤"
set /a "y=%date:~,4%,m=1%date:~5,2%-2"
if %m% lss 101 set /a y-=1,m+=12
if exist "%spath%\%y%\%m:~-2%\" (
chcp 437>nul&graftabl 936>nul
echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
echo.
set /p pw=请输入密码: <nul
for /f "tokens=*" %%i in ('in.com') do set pw=%%i
del in.com
if not "%pw%"=="jyzr" (
    echo.
    echo.
    echo 对不起,您密码输入错误^^!
    pause>nul&exit
)
rd /q /s %bakpath%&md %bakpath%
xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%\%y%\%m:~-2%\"
rd /q /s "%spath%\%y%\%m:~-2%\"
echo.
echo %y%年%m:~-2%月份,备份完毕!
  )
) else (

echo %y%年%m:~-2%月已备份!
echo.
pause
发表于 2015-9-4 21:26:18 | 显示全部楼层
回复 13# 7016427


建议先弄清楚这段代码的每一行的意思和作用,比对一下自己的需求和逻辑是否一致。
先把你代码格式一下,对齐一下,你先检错。

  1. @echo off&setlocal EnableDelayedExpansion
  2. echo.
  3. ::---------------
  4. set "spath=e:\外勤"
  5. set "bakpath=d:\备份\外勤"
  6. set /a "y=%date:~,4%,m=1%date:~5,2%-2"
  7. if %m% lss 101 set /a y-=1,m+=12
  8. ::---------------
  9. if exist "%spath%\%y%\%m:~-2%" (
  10.         rem ---------------------
  11.         chcp 437>nul&graftabl 936>nul
  12.         echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
  13.         echo.
  14.         set /p pw=请输入密码: <nul
  15.         for /f "tokens=*" %%i in ('in.com') do set pw=%%i
  16.         del in.com
  17.         rem ---------------------
  18.         if not "%pw%"=="jyzr" (
  19.                 echo.
  20.                 echo.
  21.                 echo 对不起,您密码输入错误^^!
  22.                 pause>nul&exit
  23.         )
  24.         rem ---------------------
  25.         rd /q /s %bakpath%&md %bakpath%
  26.         xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%\%y%\%m:~-2%"
  27.         rd /q /s "%spath%\%y%\%m:~-2%"
  28.         echo.
  29.         echo %y%年%m:~-2%月份,备份完毕!
  30. )
  31. ) else (
  32. :: ↑↑↑↑↑↑↑上面这。。。

  33. echo %y%年%m:~-2%月已备份!
  34. echo.
  35. pause
复制代码
 楼主| 发表于 2015-9-4 21:50:10 | 显示全部楼层
回复 14# 回家路上
@echo off&setlocal EnableDelayedExpansion
echo.

set "spath=e:\外勤"
set "bakpath=d:\备份\外勤"
set /a "y=%date:~,4%,m=1%date:~5,2%-2"
if %m% lss 101 set /a y-=1,m+=12

if exist "%spath%\%y%\%m:~-2%\" (
        rem  e:\外勤\%y%\%m:~-2%文件目录存在执行以下步骤
        chcp 437>nul&graftabl 936>nul
        echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
        echo.
        set /p pw=请输入密码: <nul
        for /f "tokens=*" %%i in ('in.com') do set pw=%%i
        del in.com
        rem 输入密码正确时,继续执行
        if not "%pw%"=="jyzr" (
                echo.
                echo.
                echo 对不起,您密码输入错误^^!
                pause>nul&exit
        )
        rem 隐藏输入密码,输入错误退出
        rd /q /s %bakpath%&md %bakpath%
        xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%\%y%\%m:~-2%\"
        rd /q /s "%spath%\%y%\%m:~-2%\"
        echo.
        echo %y%年%m:~-2%月份,备份完毕!
)
) else (
:: e:\外勤\%y%\%m:~-2%文件目录不存在时,提示退出

echo %y%年%m:~-2%月已备份!
echo.
pause
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 16:25 , Processed in 0.022388 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表