2017-09-30 74 views
0

我正在研究一個簡單的批處理文件來爲每個JPG保存一個文本文件。 txt文件的內容由用戶使用set/p輸入。由於某些原因,當我用for循環set/p時,txt文件沒有顯示用戶輸入的值(它只顯示:「ECHO is on」)任何幫助將不勝感激!謝謝。使用帶for循環的Set/p命令

for %%Q in (*v.JPG) do (
set /p meas= "enter value " 
echo %meas%>"%%~nQ.txt" 
) 
pause 
+3

使用頂部欄中的「搜索」工具來查找對「延遲擴展」的引用 – Magoo

+3

[批處理文件中延遲擴展的示例]的可能重複(https://stackoverflow.com/questions/10558316/example-of -delayed-expansion-in-batch-file) –

回答

-1
for %%Q in (v*.jpg) do (set /p meas="enter value " && echo !meas! > %%~nQ.txt) 

我只是一個命令提示符測試這一點,但應該在一個批次正常工作。

這將創建一個名爲<filename>.jpg.txt的新文件並將包含用戶輸入的值。

關鍵是在set /pecho之間加上& &。

+0

https://stackoverflow.com/questions/38805476/enable-delayed-expansion-doesnt-work Magoo是對的。不知道它是如何爲我工作的。一定是我的用戶錯誤。 – foodcoder86

0

Magoo是對的,謝謝!我不得不使用啓用延遲擴展,然後將變量作爲!變量!而不是%變量%。不幸的是,微軟網站上沒有關於這個問題的文檔,至少在'set'命令網頁上沒有。