我正在研究一个简单的批处理文件来为每个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
我正在研究一个简单的批处理文件来为每个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
for %%Q in (v*.jpg) do (set /p meas="enter value " && echo !meas! > %%~nQ.txt)
我只是一个命令提示符测试这一点,但应该在一个批次正常工作。
这将创建一个名为<filename>.jpg.txt
的新文件并将包含用户输入的值。
关键是在set /p
和echo
之间加上& &。
https://stackoverflow.com/questions/38805476/enable-delayed-expansion-doesnt-work Magoo是对的。不知道它是如何为我工作的。一定是我的用户错误。 – foodcoder86
Magoo是对的,谢谢!我不得不使用启用延迟扩展,然后将变量作为!变量!而不是%变量%。不幸的是,微软网站上没有关于这个问题的文档,至少在'set'命令网页上没有。
使用顶部栏中的“搜索”工具来查找对“延迟扩展”的引用 – Magoo
[批处理文件中延迟扩展的示例]的可能重复(https://stackoverflow.com/questions/10558316/example-of -delayed-expansion-in-batch-file) –