Windows Server 2008不运行.bat文件

时间:2013-11-25 16:12:08

标签: batch-file cmd windows-server-2008

我对使用Windows Server 2008的批处理文件中的某些命令有疑问。

当我尝试在命令提示符下使用clip命令时,它可以正常工作。

但是当我在批处理文件中使用clip命令并运行批处理文件时,clip命令不起作用。我该怎么办这个问题或者我的错在哪里?

编辑:

set wp=D:\workset\xxx\MC_DIM\exchange\

d:
cd %wp%

for %%i in (xxx_to_yyy*.zip) do (
  echo %wp%%%i | clip
)

当我尝试仅echo时,我可以使用批处理文件的完整路径,当我从cmd使用clip命令时,它可以工作,但是当我创建批处理文件并尝试使用它时不要复制到剪贴板。应该是关于特权还是某事?

1 个答案:

答案 0 :(得分:0)

在我手中,您的代码可以正常工作,除了它只复制列出的最后一个文件到剪贴板。这是因为列出的每个文件都有自己的管道到新的CLIP命令。每个CLIP命令都会覆盖前一个命令的结果。

您需要以某种方式列出文件的完整路径,并将整个结果集传递给单个CLIP命令。不使用临时文件的最简单的解决方案是在FOR语句周围加上括号。管道的每一侧都在其自己的CMD.EXE进程中执行,ECHO状态默认为on。因此,DO子句中的命令需要@来抑制命令的回显。

您的输出中不需要包含%wp%~f FOR变量修饰符将提供完整路径。

@echo off
set wp=D:\workset\xxx\MC_DIM\exchange\

d:
cd %wp%

(for %%i in (xxx_to_yyy*.zip) do @echo %%~fi) | clip