2016-02-09 62 views
2

我有我不能設法解決一個簡單的問題刪除echo命令的額外空間...與管道

我使用該行批量的打印在文件中的命令的結果,而不回車:

echo | set /P=%tmp% > %~n1.txt 

但它一直在增加,我不想結束一個額外的空間...

我讀過一些其他職位,但它是我的第一批項目,所以我有點迷路瞭解決方案:p

我已經試過:

%^^^cmd | set /P=%tmp% > %~n1.txt 

任何想法?

謝謝!

+0

'設置/ P =%TMP%%〜n1.txt' – Squashman

+0

由於哥們,工作正常; d '%〜n1.txt' –

+0

...或稍微清晰一點,用引號分隔值:'%〜n1.txt' – Aacini

回答

2

你只需要一些引號。

echo | set /P "=%tmp%" > %~n1.txt 

雖然有一種更有效的方法可以不使用管道。請注意,引號仍應使用。

set /p "=%tmp%" >"%~n1.txt" <nul 

如果不包括引號,那麼你將需要:

set /p =%tmp%>%~n1.txt <nul 

但如果%tmp%值是一個數字未加引號形式會失敗,或者如果它結束空格後跟一個數字。它會失敗,因爲該數字將被視爲重定向所使用的文件句柄。例如,1等同於stdout。

引號是乾淨避免文件句柄問題最簡單的方式。