找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: 2013koko

[文本处理] [已解决]批处理获取文件路径删除被拖放的文件夹部分

[复制链接]
 楼主| 发表于 2021-5-7 13:10:54 | 显示全部楼层
回复 12# newswan

这个似乎不对,试了多个文件夹 都只显示一行:smart-art\quickstyle\simple5.xml
发表于 2021-5-7 13:28:22 | 显示全部楼层
回复 15# 2013koko

我试了已经可以了。
sed.exe放在批处理同目录,搜索下载:http://www.bathome.net/s/tool/index.html

评分

参与人数 1技术 +1 收起 理由
2013koko + 1 谢谢

查看全部评分

 楼主| 发表于 2021-5-7 13:46:11 | 显示全部楼层
回复 17# cutebe


用三方工具确实可以了,谢谢!
请教不用工具,批处理删除文本中的字符串能够实现吗?
发表于 2021-5-7 14:24:02 | 显示全部楼层

  1. @echo off
  2. setlocal enableDelayedExpansion

  3. for %%a in (%*) do (
  4.     call :f1 %%a
  5. )
  6. goto :END


  7. :f1
  8. for /f "usebackq" %%a in (`Powershell -c "'%1'.Length"`) do (
  9.     set /a n=%%a+1
  10. )
  11. for /f "usebackq delims=" %%a in (` dir /a/s/b/on %1 `) do (
  12.     set str=%%~a
  13.     set str=!str:~%n%!
  14.     echo !str!
  15. )
  16. goto :eof

  17. :END
  18. pause

复制代码
支持多个文件夹

评分

参与人数 1技术 +1 收起 理由
2013koko + 1 感谢帮助!

查看全部评分

发表于 2021-5-7 15:43:39 | 显示全部楼层
本帖最后由 cutebe 于 2021-5-7 15:44 编辑

不用三方会稍微复杂点。
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. set "str=%~1"
  4. set dn=1
  5. :snlp
  6. if "!str:*\=!" neq "" (
  7.         set/a dn+=1
  8.         set "str=!str:*\=!"
  9.         if "!str:*\=!" neq "!str!" goto :snlp
  10. )
  11. setlocal disableDelayedExpansion
  12. (for /f "tokens=%dn%* delims=" %%q in ('dir/a-d/b/s/og "%~1"')do echo %%r)>"%~dp0%~nx1_filelist.txt"
复制代码

评分

参与人数 1技术 +1 收起 理由
2013koko + 1 谢谢帮助

查看全部评分

发表于 2021-5-7 16:57:57 | 显示全部楼层
支持一次性拖动多个文件夹到bat上,ansi保存
  1. @echo off
  2. if "%~1"=="" echo,请拖放文件夹到本文件上 &pause&exit
  3. :loop
  4. echo %~1
  5. (
  6.         for /r "%~1" %%i in (*) do (
  7.                 call set "p=%%~i"
  8.                 call set "p=%%p:%~1\=%%"
  9.                 call echo %%p%%
  10.         )
  11. )>"%~nx1.txt"
  12. echo %~nx1.txt
  13. echo done.
  14. echo ---------------
  15. shift /1
  16. if not "%~1"=="" goto :loop
  17. pause&exit
复制代码
发表于 2021-5-7 17:00:18 | 显示全部楼层
回复 21# went


    要生成到bat文件夹就把第一行@echo off改为
  1. @echo off & cd /d "%~dp0"
复制代码
 楼主| 发表于 2021-5-7 17:40:44 | 显示全部楼层
回复 19# newswan


    这个批处理运行后得到的是文件列表+目录列表。能否文件列表一个输出,文件目录一个输出?谢谢!
 楼主| 发表于 2021-5-7 17:49:40 | 显示全部楼层
回复 20# cutebe


这个完美!批处理多大?比三方小多了,并且一个文件就ok!
 楼主| 发表于 2021-5-7 18:23:12 | 显示全部楼层
回复 21# went

这个也能达到目的,可惜不知为何不能评分,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 17:24 , Processed in 0.029075 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表