Batch file 为什么重新格式化成功的批处理文件会导致失败?
以下批处理文件是@Compo在另一篇文章中编写的。这是我在学校的一个孙子孙女要求的,所以我只是照原样通过电子邮件发送了文件。这对我和她都非常有效 该批处理将子目录添加到Batch file 为什么重新格式化成功的批处理文件会导致失败?,batch-file,Batch File,以下批处理文件是@Compo在另一篇文章中编写的。这是我在学校的一个孙子孙女要求的,所以我只是照原样通过电子邮件发送了文件。这对我和她都非常有效 该批处理将子目录添加到E:\Evernote 子目录的名称是yyyy\u mm\u dd中的日期 文件从C:复制到新的子目录 @Echo Off Set "sd=C:\EverNote" Set "dd=E:\EverNote" Set "ds=" If Not Exist "%sd%\" Exit /B For /F "Tokens=1-3Delim
E:\Evernote
子目录的名称是yyyy\u mm\u dd
中的日期
文件从C:
复制到新的子目录
@Echo Off
Set "sd=C:\EverNote"
Set "dd=E:\EverNote"
Set "ds="
If Not Exist "%sd%\" Exit /B
For /F "Tokens=1-3Delims=/ " %%A In ('RoboCopy/NJH /L "\|" Null'
) Do If Not Defined ds Set "ds=%%A_%%B_%%C"
If Not Defined ds Exit /B
RoboCopy "%sd%" "%dd%\%ds%" /E
现在已经停止加热,但几周后,项目的第二部分将提交记录在案的批处理文件进行标记。我的第一步是使用学校提供的规则,让这批人更“易读”。这意味着使用成对的括号来包围条件语句,以及大量的“空白”和REM语句
问题:在添加括号和空格后,没有对任何语句进行任何更改(AFAIK),以下重新格式化的批处理在几行之后失败
@Echo Off
Set "sd=C:\EverNote"
Set "dd=E:\EverNote"
Set "ds="
REM The next @echo is respected
@echo "If Not Exist"
REM After the next "Pause", and hitting any key, the batch exits.
REM IMO, that means "Exit /B" is being executed.
REM In turn, that means "%sd%\" does not exist. Why not?
Pause
If Not Exist "%sd%\"
(
Exit /B
)
For /F "Tokens=1-3Delims=/ " %%A In ('RoboCopy/NJH /L "\|" Null') Do
(
If Not Defined ds
(
Set "ds=%%A_%%B_%%C"
)
)
If Not Defined ds
(
Exit /B
)
RoboCopy "%sd%" "%dd%\%ds%" /E
Pause
如果有人能解释一下格式的更改是如何导致失败的,我将不胜感激。
(
必须与处于同一物理线路上,如果
OldGrantonian,您和我都不应该为其他人的项目提供要标记的工作。这是学术上的不诚实行为,并且您的孙子没有我的许可将其任何部分用于此类目的!阅读您尝试执行的命令的帮助文件做得很好使用。如果你读过它们,你肯定不会写这样的代码。@OldGrantonian,背景故事是无关紧要的,如果你真的爱你的孙女并珍视她,你会通过鼓励和建议支持她的学习,而不是向他们表明欺骗和剽窃是可以接受的行为。@Squashman,TBF他们没有时间,他们忙着做别人的数学评估!