2017-09-30 20 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'命令网页上没有。