Board logo

标题: [文件操作] [已解决]批处理放在不同地方,处理结果不一样? [打印本页]

作者: ganlian_6666    时间: 2021-2-3 09:33     标题: [已解决]批处理放在不同地方,处理结果不一样?

@echo offfor %%i in (*.ygx) do (echo %~f1>>★★★用Excel打开★★★.txt)@echo=    >>★★★用Excel打开★★★.txt@echo,    >>★★★用Excel打开★★★.txt@echo         ←这里输入盘数>>★★★用Excel打开★★★.txt@echo;    >>★★★用Excel打开★★★.txt@echo=    >>★★★用Excel打开★★★.txt@echo         ←这里输入单条灯珠数量,务必带上字母,比如"D100">>★★★用Excel打开★★★.txt@echo=    >>★★★用Excel打开★★★.txt@echo,    >>★★★用Excel打开★★★.txt@echo;    >>★★★用Excel打开★★★.txt@echo 确认输完后,按" Ctrl + Shift + A "一键搞定吧!>>★★★用Excel打开★★★.txtexit

大家好,为什么在不同路径下拖入ygx文件,输出的内容不一样呢?
作者: Batcher    时间: 2021-2-3 10:11

回复 1# ganlian_6666


    你是从什么地方复制过来的?都变成一行了,请重新发一下吧。
作者: ganlian_6666    时间: 2021-2-3 11:36

  1. @echo off
  2. for %%i in (*.ygx) do (
  3. echo %~f1>>★★★用Excel打开★★★.txt)
  4. @echo=    >>★★★用Excel打开★★★.txt
  5. @echo,    >>★★★用Excel打开★★★.txt
  6. @echo ←这里输入盘数>>★★★用Excel打开★★★.txt
  7. @echo;    >>★★★用Excel打开★★★.txt
  8. @echo=    >>★★★用Excel打开★★★.txt
  9. @echo ←这里输入单条灯珠数量,务必带上字母,比如"D100">>★★★用Excel打开★★★.txt
  10. @echo=    >>★★★用Excel打开★★★.txt
  11. @echo,    >>★★★用Excel打开★★★.txt
  12. @echo;    >>★★★用Excel打开★★★.txt
  13. @echo 确认输完后,按" Ctrl + Shift + A "一键搞定吧!>>★★★用Excel打开★★★.txt
  14. exit
复制代码
回复 2# Batcher
作者: ganlian_6666    时间: 2021-2-3 11:46

回复 2# Batcher

不知道为什么路径会输出5次,
作者: Batcher    时间: 2021-2-3 11:47

回复 3# ganlian_6666


第5行
echo %~f1
它的功能本来就是获取到文件实际路径的

能否举例说明你希望得到的结果是什么?
你试验得到的实际结果是什么?
作者: ganlian_6666    时间: 2021-2-3 11:49

回复 2# Batcher

我在公司两台电脑试,一台正常,一台路径会输出5次,用自己的电脑也是会重复输出,是哪里问题呢?
作者: ganlian_6666    时间: 2021-2-3 11:50

回复 5# Batcher

图片上传不了,我是想得到完整路径,但是它会输出5次,正常不是应该输出一次到文本么?
作者: Batcher    时间: 2021-2-3 11:51

回复 6# ganlian_6666


把第3行删掉
把第5行结尾的括号删掉
再试试呢?
作者: ganlian_6666    时间: 2021-2-3 11:59

回复 5# Batcher

比如2222.ygx这个文件在C盘根目录下,我将它拖入进去
得到的文本内容是:
C:\2222.ygx
C:\2222.ygx
C:\2222.ygx
C:\2222.ygx
C:\2222.ygx


    ←这里输入盘数

   
    ←这里输入单条灯珠数量,务必带上字母,比如"D100"


     确认输完后,按" Ctrl + Shift + A "一键搞定吧!

“C:\2222.ygx”不应该只出现一次么?
作者: Batcher    时间: 2021-2-3 12:15

回复 9# ganlian_6666


    请按照8楼的方法修改代码试试
作者: Batcher    时间: 2021-2-3 12:38

回复 3# ganlian_6666


按照你的意思解决了,我将第5行的>>改成了>也解决了,能否简单说说for在这里的作用呢?

for命令在你这个【拖放操作】的需求里面没有用处
作者: Batcher    时间: 2021-2-3 12:44

回复 3# ganlian_6666


for命令的适用场景是这样,比如当前目录下有多个ygx文件和一个BAT脚本,双击执行BAT脚本(而不是拖放ygx文件)

test.bat
  1. @echo off
  2. (for %%i in (*.ygx) do (
  3.     echo %~fi
  4. ))>"★★★用Excel打开★★★.txt"
复制代码

作者: ganlian_6666    时间: 2021-2-8 00:15

回复 12# Batcher

嗯嗯,谢谢啦




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2