我们正在将文件从一个共享迁移到另一个共享。我们构建了一个工具,用户可以在其中选择要复制到目标共享的目录和/或单个文件。该工具为集合中的每个文件或目录生成单独的RoboCopy命令,该命令是由用户进行的选择产生的。
如果要复制的单个文件以短划线开头,我们遇到问题,例如:
$query = "SELECT * FROM `reparaciones` WHERE `marca` LIKE '%" . $name ."%' AND `idusuario` = '" . $_SESSION['k_username'] . "' ORDER BY `idusuario` ASC ";
RoboCopy退出:错误:参数#3无效:“ - a.txt” 我们尝试了通常的嫌疑人(文件名等引用),但到目前为止似乎没有任何作用。知道怎么解决这个问题,而不是在复制前重命名文件吗?
答案 0 :(得分:1)
这似乎是robocopy中的一个错误;它有一些其他类似的类似的东西:
https://support.microsoft.com/en-us/kb/2646454
这是一种可行的解决方法:
robocopy c:\temp c:\temp2 *-a.txt /xf *?-a.txt
*-a.txt
仍将匹配“-a.txt”,但它也匹配“x-a.txt”,“xx-a.txt”等。
/xf
文件排除会删除“xa.txt”,“xx-a.txt”以及连字符前面带字符(特别是至少一个字符)的任何其他文件。
我已经确认上述命令只会匹配“-a.txt”,即使c:\temp
也包含这些文件:
other folder\-a.txt
-a.txt1
-a1.txt
x-a.txt
xx-a.txt
我不是百分之百的自信,所以你可能想要考虑其他一些文件名来测试它。