Batch file 一支箭→;将角色添加到.bat脚本中的文件

Batch file 一支箭→;将角色添加到.bat脚本中的文件,batch-file,Batch File,下面的脚本获取扩展名为.new_tmp的所有文件,并将它们复制到一个名称相同但扩展名为.new_tmp的文件中。此外,将在文件顶部放置注释,并删除.new_tmp文件 echo ^<?php /* > start.tmp echo */ ?^> > end.tmp for /R "./mydir" %%I in (*.new_tmp) do ( copy start.tmp+license.txt+end.tmp+%%I worker.tmp move w

下面的脚本获取扩展名为.new_tmp的所有文件,并将它们复制到一个名称相同但扩展名为.new_tmp的文件中。此外,将在文件顶部放置注释,并删除.new_tmp文件

echo ^<?php /* > start.tmp
echo */ ?^> > end.tmp
for /R "./mydir" %%I in (*.new_tmp) do (
    copy start.tmp+license.txt+end.tmp+%%I worker.tmp
    move worker.tmp %%~pI%%~nI
    del %%I
)
同样的问题,最后一个箭头


我在Windows 7下运行

箭头是一个CTRL-Z ascii字符,当使用
+
选项连接文件时,该字符由
COPY
命令附加

要防止
COPY
追加CTRL-Z字符,请使用
COPY/B
进行二进制复制

所以,你的命令是

COPY /B start.tmp+license.txt+end.tmp+%%I worker.tmp

当/b跟随目标时,“复制”不会添加文件结尾字符

这就是我解决问题的方法:

COPY start.tmp+license.txt+end.tmp+%%I worker.tmp /B

哪个箭头字符,► 或→ 或者别的什么?可能是你的编辑显示了EOF标记。如果你只是在命令行上输入“more filename”,你看到了吗?如果你从键盘输入它(而不是复制它),它能工作吗?@Martin是的,我在记事本中看到了它,或者使用了more commandThank!我正在到处搜索为什么在我的SSIS包中有那个奇怪的箭头字符(EOF)。我发现这是由于复制FileA+FileB FileA造成的(连接)。一个重要的注意事项:我有copy/b参数[小写],它不起作用。你必须把它放在大写(copy/b)奇怪的是,它仍然保留在ASCII 1AH字符之间,与此相反,将
/b
附加到语句末尾起作用。非常感谢你发布这个@PA。!
COPY start.tmp+license.txt+end.tmp+%%I worker.tmp /B