2013-11-25 96 views
0

運行我有一個關於在批處理文件中的一些命令的問題與Windows Server 2008Windows Server 2008中沒有.bat文件

當我嘗試使用在命令提示符下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當我使用clip命令從CMD它的工作原理,但是當我創建一個批處理文件,並嘗試使用我可以把完整的路徑與批處理文件,還它不會複製到剪貼板。它應該是關於特權還是某事?

+1

我的程序給出了5的答案,但它應該是4.我做錯了什麼?祝你好運回答,對不對?如果你不顯示你的代碼,診斷你的問題有點難。 – dbenham

+0

我同意dbenham。如果你不提供一個好問題,我們不能給你一個好的答案。每次提出問題時,都會在頁面中看到以下短語:*您提出一個模糊的問題,您會得到一個模糊的答案。*將代碼提供給我們,我們會爲您解決問題。但截至目前,我們無法做任何事情來幫助你。 –

+0

@dbenham好吧我很抱歉我的錯誤:/我編輯了我的問題,所以也許這更清楚,以便更好地理解 –

回答

0

在我的手中,您的代碼有效,除了它只複製列出的最後一個文件到剪貼板。這是因爲列出的每個文件都將自己的管道添加到新的CLIP命令中。每個CLIP命令都會覆蓋前一個的結果。

您需要以某種方式列出文件的完整路徑,並將整個結果集傳輸到單個CLIP命令。不使用臨時文件的最簡單解決方案是在FOR語句周圍放置括號。管道的每一側都在其自己的CMD.EXE過程中執行,ECHO狀態默認爲默認狀態。因此DO子句中的命令需要@來抑制命令的回顯。

在輸出中不需要包含%wp%。 FOR變量修飾符~f將提供完整路徑。

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

d: 
cd %wp% 

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