xcopy在我的批处理文件中不起作用,我不知道为什么?

时间:2016-03-11 15:23:59

标签: java windows batch-file cmd xcopy

这里第一次发布海报!我经常潜伏在寻找答案,但看到我一直对此感到头疼,我真的希望这对我的老板这样做我想直接询问,看看是否有人能发现我的剧本有什么问题。

    @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'的var(它不是我的代码,从某个地方获取它,我忘记了在哪里)。后一部分,将文件夹的内容从一个地方移动到另一个地方,然后假设将这些内容复制到驱动器中的另一个地方。

有人可以帮我弄清楚为什么我的代码没有将内容复制到我的sendFolder吗?

1 个答案:

答案 0 :(得分:0)

我唯一看到的是你没有使用所有的开关。尝试使用开关/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评论

问候,