[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 8# newswan

这个很接近我的意愿,但这个怎么把结果输出到文件?
另外输出结果中多了子目录信息,如下(上两行希望不出现在输出结果中):
EBWebView\x64
EBWebView\x86
EBWebView\x64\EmbeddedBrowserWebView.dll
EBWebView\x86\EmbeddedBrowserWebView.dll

TOP

回复 9# cutebe

这个子目录路径没有显示
我的意图是只删除被拖放目录之前部分的路径
另一个思路,能否对前面输出全路径的文档file1.txt进行再处理,删除路径?

被拖动文件夹路径可以用如下方法获取
::被拖动文件夹路径=%~dp1%~nx1
set wjlj=%~dp1%~nx1

但以下方法没有成功去除
for /f "delims=" %%i in (file1.txt) do (
set var=%%i
set var=!var:%wjlj%=!
echo !var!>>file.txt

请问有没有好的方法?谢谢!

TOP

  1. (for /f "delims=" %%a in ('dir/a-d/b/s/og "%~1"')do @echo %%~nxa)>"%~dp0outfile.txt"
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

  1. @echo off
  2. setlocal enableDelayedExpansion
  3. if "%~1"=="" echo,请拖入文件夹到本文件上&pause&exit /b
  4. for /f "usebackq" %%a in (`Powershell -c "'%1'.Length"`) do (
  5.     set /a n=%%a+1
  6. )
  7. for /f "delims=" %%j in ('"dir /a/s/b/on %1"') do (
  8.     set str=%%~j
  9.     set str=!str:~%n%!
  10.     echo !str!
  11. )
  12. pause
  13. 得到全路径,截取
复制代码

TOP

回复 4# cutebe


    本来就是为了获取所有目录下的文件名,这是前设,

TOP

回复 5# xp3000


    是我没有说清楚,这个用了/s,子目录的路径还是要保留的,只是想去除“d:\test\拖入文件夹\
这个其实打开文档查找、替换为空就可以完成,只是如果能用批处理一步到位当然更好!感谢您的回复!

TOP

  1. @echo off
  2. if "%~1"=="" echo,请拖入文件夹到本文件上&pause&exit /b
  3. for %%i in (%*) do (
  4. for /f "delims=" %%j in ('"dir /a/s/b/on %%i"') do (
  5. echo %%~nxj
  6. ))>>名称.txt
  7. pause
复制代码
我试了没问题

TOP

/s要去掉,这是包含子目录并且输出是完整路径。
  1. dir/a-d/b/og "%~1">"%~dp0outfile.txt"
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

回复 2# xp3000


这个无效,还是带路径

TOP

改为dir /b/a-d/on %file%\* >%~dp0%outfile%

TOP

返回列表