[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 miqilaosu 于 2019-6-23 10:21 编辑

回复 3# netdzb
  1. @echo off
  2. for /f %%i in ('dir /a-d /b "*.mp3"')do (
  3. for /f %%a in ('type 1.txt')do (
  4. echo.%%i %%a
  5. )
  6. )
  7. pause
复制代码
你这个思路好像不太对,如果是一个文本可以这样写,如果是多个文件,你想用什么条件去查找文件,你要用的是文本第几行?,mp3有没有重复,如果没有重复,是不是文本1,文本2,都去和mp3混着来? 停止的条件是什么,比如文件夹里只有一个mp3文件,是不是循环着和txt混和,还是mp3没了混和就停止

TOP

本帖最后由 miqilaosu 于 2019-6-25 09:35 编辑

回复 8# netdzb
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set "n=0"&set "nn=0"
  4. for /f "delims=" %%i in ('dir /a-d /b "*.mp3"') do (
  5. call set "str[!n!]=%%~i"
  6. set /a n+=1
  7. )
  8. for /f "delims=" %%a in ('type "ip.txt"') do (
  9. call set "str1[!nn!]=%%~a"
  10. set /a nn+=1
  11. )
  12. for /l %%d in (0,1,!n!) do (
  13. echo.!str[%%d]! !str1[%%d]!
  14. )
  15. pause
复制代码
上边是DOS的方法,下边的shell的方法,DOS没有数组不太好执行
  1. powershell -NoProfile -ExecutionPolicy Bypass ^
  2. $text = Get-Content -Path c:\ip.txt;^
  3. $n=0;^
  4. foreach($file in dir *.mp3)^
  5. {^
  6. Write-Host($File.Name,$text[$n]);^
  7. $n+=1;^
  8. }^
  9. exit
  10. pause
复制代码

TOP

回复 10# netdzb


    如果出现mp3和文本数量不对应,可以通过FOR的最大值!n!或!nn!来控制哪个没有了就不执行,我也是边做边学,都是新人互相帮助

TOP

本帖最后由 miqilaosu 于 2019-6-25 09:25 编辑

回复 13# netdzb

4楼的代码别用,那个没做判断,有重复,用9楼的两个代码就行
    if 是我测试时的代码删除掉就行了
if ($File.Name -ne $oo) {  如果 文本的名字不等于$oo变量的内容的话,执行里边命令,因为最开始做判断,后来被我把判断删了

你没执行成功不会是直接在DOS里执行的吧,我那个没加连接符^执行不了,现在加上了

TOP

返回列表