[英]xcopy isn't working in my batch file, and I am not sure why?
第一次海报在这里! 我通常会偷偷摸摸地寻找答案,但是看到我一直对此感到头疼时,我真的想为我的老板做到这一点,我想直接问一下,看看是否有人可以发现我的脚本出了什么问题。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value')do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
set "new_name=PayCase_%fullstamp%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
move /-y "E:\RFT workspace folder\PayCase_Project_Playground_logs\PayCase_ScriptLog" "%~dp0\Log Archive\%new_name%"
xcopy /e "%~dp0\Log Archive\%new_name%" "%~dp0\Log Archive\sendFolder"
pause
EXIT
脚本的第一部分只是获取今天的日期和时间,并将其设置为一个名为“ new_name”的变量(这不是我的代码,是从某个地方获取的,我忘记了在哪里)。 后一部分将文件夹的内容从一个位置移动到另一位置,然后假定将这些内容复制到驱动器中的另一位置。
有人可以帮我弄清楚为什么我的代码没有将内容复制到我的sendFolder吗?
我唯一看到的是您没有使用所有的开关。 尝试使用开关/s
。 其次,最重要的是,您正在使用%~dp0
错误!
在txt文件中键入此文件并将其另存为批处理文件
Echo %~dp0
Pause
运行它,您将在最后找到一个\\
,例如,您将拥有一个像C:\\Wherever\\bat\\is\\
这样的路径,最后一个已经有一个\\
。
您已键入此"%~dp0\\Log Archive\\%new_name%"
,这将导致"C:\\Wherever\\bat\\is\\\\Log Archive\\%new_name%"
。
看到了吗? 轻微的错误可能会使整个事情出错。 因此,尝试添加/ s开关并像这样编辑代码
xcopy /s /e "%~dp0Log Archive\\%new_name%" "%~dp0Log Archive\\sendFolder"
也请关注@JosefZ评论
问候,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.