标题: [文本处理] 批处理复制文件为何提示:找不到文件? [打印本页]
作者: 7016427 时间: 2015-9-2 21:20 标题: 批处理复制文件为何提示:找不到文件?
各位老师好!以下代码始终执行时,提示:找不到文件 — *.* ,复制了0个文件。 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
- xcopy /y "e:\外勤\%y%\%m:~-2%\*.*" d:\
- echo %y%年%m:~-2%月份%,执行完毕!
- pause
复制代码
平时创建目录是执行的如下批处理文件,是否错误与此有关?- @echo off
- set /p d="创建日期目录: (注意日期格式:2015-05-01)"
- md e:\外勤\%d%
- pause
复制代码
我是在w7系统上运行!
作者: 回家路上 时间: 2015-9-2 21:52
我猜 e:\外勤\2015\07\ 下没文件
要么只有目录,要么什么都没有
作者: 7016427 时间: 2015-9-2 22:11 标题: 【说明】 期待高手帮我解决,这个难题
回复 2# 回家路上
说明:你好!在w7系统上,那个创建目录代码,如2015年07月05日创建的目录显示为e盘“外勤”下显示:2015、07、05,三个文件夹!
我的文件全部放在号数文件夹下的(05文件夹下),每天的文件都有几个,所以按号数文件夹存放文件。
作者: 回家路上 时间: 2015-9-2 22:27
回复 3# 7016427
所以这个就应该说清楚。xcopy加上/e参数- xcopy /y /e "e:\外勤\%y%\%m:~-2%\*.*" d:\
复制代码
作者: 7016427 时间: 2015-9-3 16:20 标题: 【未解决】 批处理复制文件为何提示:找不到文件?
【未解决】回复 4# 回家路上
xcopy /y /e "e:\外勤\%y%\%m:~-2%\*.*" d:\
win7系统上执行时,仍然错误提示:系统找不到指定文件。最后显示已了38个文件。请问老师怎么解决!
作者: 回家路上 时间: 2015-9-3 18:14
回复 5# 7016427
那我再猜,你的代码不止这些- @echo off
- set /a "y=%date:~,4%,m=1%date:~5,2%-2"
- if %m% lss 101 set /a y-=1,m+=12
- xcopy /e /y "e:\外勤\%y%\%m:~-2%\*.*" d:\
- echo %y%年%m:~-2%月份%,执行完毕!
- pause
复制代码
这个代码不至于又错又对
作者: 7016427 时间: 2015-9-3 21:56 标题: [请高手解决]批处理复制文件为何提示:找不到文件?
[请高手解决]回复 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
作者: 7016427 时间: 2015-9-3 22:06 标题: 【补充】 批处理复制文件为何提示:找不到文件?
回复 7# 7016427
说明:执行时,复制文件正确,就是未删除指定文件和指定目录!
作者: 回家路上 时间: 2015-9-3 22:25
回复 8# 7016427
下次说的话可以说的更全面点,节省时间- @echo off
- 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
- rd /q /s %bakpath%&md %bakpath%
- xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%"
- rd /q /s "%spath%\%y%\%m:~-2%\"
- echo %y%年%m:~-2%月份,备份完毕!
- pause & exit /b
复制代码
作者: 7016427 时间: 2015-9-3 22:42
回复 9# 回家路上
谢谢!我明天在w7电脑上试!
作者: 7016427 时间: 2015-9-4 14:02 标题: 【继续请教】 批处理复制文件为何提示:找不到文件?
回复 9# 回家路上
你好!我想再加个判断条件:也就是“%spath%\%y%\%m:~-2%”这个目录不存在就退出,怎样修改?谢谢其他要的。
作者: 回家路上 时间: 2015-9-4 17:05
回复 11# 7016427
你在论坛一年多了,发了这么多贴,怎么这if都不会。。。。。- if exist "%spath%\%y%\%m:~-2%\" (
- xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%"
- rd /q /s "%spath%\%y%\%m:~-2%\"
- echo %y%年%m:~-2%月份,备份完毕!
- ) else echo;%spath%\%y%\%m:~-2%\不存在,程序退出。
复制代码
作者: 7016427 时间: 2015-9-4 20:43 标题: 【请教老师】 批处理复制文件为何提示:找不到文件?
【请教老师】回复 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
回复 13# 7016427
建议先弄清楚这段代码的每一行的意思和作用,比对一下自己的需求和逻辑是否一致。
先把你代码格式一下,对齐一下,你先检错。- @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 ---------------------
- 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 (
- :: ↑↑↑↑↑↑↑上面这。。。
-
- echo %y%年%m:~-2%月已备份!
- echo.
- pause
复制代码
作者: 7016427 时间: 2015-9-4 21:50
回复 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
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |