【发布时间】:2018-04-07 04:30:06
【问题描述】:
我在使用 Java 编程时使用此批处理脚本,以避免文件夹与类文件混淆。但由于某种原因,它不能复制 *.txt 文件。
这是复制到另一个文件夹之前的 *.txt 文件内容:
U 450
I 100
I 5000
U 500
批处理文件包含:
@echo off
set TEST=%1
mkdir %TEST%Folder
xcopy *.txt %TEST%Folder
xcopy %TEST%.java %TEST%Folder
cd %TEST%Folder
javac -encoding utf8 %TEST%.java
java %TEST%
cd..
::RD /S /Q %TEST%Folder //is commented out while I'm debugging
这是复制文件的内容:
它是空的。
奇怪的是,如果我自己运行xcopy *.txt DestinationFolder,它就可以正常工作。
编辑: %1 变量是程序将编译的 java 的名称,我的所有路径都设置正确,这部分代码工作正常,唯一有问题的部分是 xcopy
【问题讨论】:
-
收到的参数字符串
%1的具体内容是什么? -
@Compo 是要编译的java文件的名字
-
@Waitwuut,如果您也注释掉
javac和java行,并且文件正确且可读地复制到保存目录,那么您可以将问题确定为与编译器有关。如果文件未到达保存目录或命名不正确,则问题可能与您的输入参数%1有关。如果文件完全按预期到达那里并且是空的、不可读的或损坏的,则问题很可能是系统问题。 -
@Compo 文件按预期到达但为空。
-
@Waitwuut,根据我之前的评论,如果文件正确到达但为空,那么您接受的答案只有在 java 编译器遇到 Windows 通常允许的字符问题时才是正确的/命令.exe。 (十多个小时前,有人向您询问
%1的内容以确定这一点)。在这种情况下,我不相信Xcopy会清空您的文件,即使这是可能的,将XCopy更改为Copy或RoboCopy将是建议的解决方案,而不是用双引号括住文件名。
标签: batch-file xcopy