Java xcopy不是';我不能在批处理文件中工作,我不知道为什么?

Java xcopy不是';我不能在批处理文件中工作,我不知道为什么?,java,windows,batch-file,cmd,xcopy,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

第一次海报在这里!我通常潜伏着寻找答案,但鉴于我一直对此感到头痛,我真的希望为我的老板完成这件事,我想直接问一下,看看是否有人能发现我的剧本有什么问题

    @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:\where\bat\is\
的路径,在最后已经有一个
\

您键入了此
“%~dp0\Log Archive\%new\u name%”
,这将导致
“C:\where\bat\is\\Log Archive\%new\u name%”

看到了吗?一个小小的错误可能会把整个事情弄错。因此,请尝试添加/s开关并像这样编辑代码

xcopy/s/e“%~dp0Log Archive\%new\u name%”%~dp0Log Archive\sendFolder”

也请关注@JosefZ评论


问候,

欢迎来到SO。您的脚本是否显示一些错误消息,例如访问被拒绝。移动了0个目录或类似目录?请回答您的问题并添加更多详细信息(请删除
java
标记)。顺便说一句,
move
命令不会在不同的磁盘驱动器(卷)之间移动目录。@JosefZ很抱歉花了这么长时间回复,我参加了一个不会结束的会议。但是脚本现在开始无缘无故地工作了,我什么也没改变,奇怪吧?还感谢大家为move命令提供指导,我通过复制内容并删除源文件解决了这个问题。
/e
开关意味着xcopy中的
/s
开关,包括它在内,它不会以任何方式更改命令。他的问题是move命令没有移动文件开始with@foxidrive我告诉他,无论它是否移动它,他都不会得到正确的结果,除非他移除多余的\。因此,无论我们是否解决了他的问题,他仍然会得到一个错误,直到他解决了这个问题。我已经知道他的问题了。Windows在大多数情况下都能容忍\\。试一试。无意冒犯,但你给出的答案是\\行不通,这是必要的。这两件事都不是真的。其他人会因为这个原因投票否决你的答案,你的代表将被罢免。@foxidrive Ok Windows可以接受
/