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

[文本处理] [已解决]批处理如何把文件名横向排列并用分隔符隔开?

本帖最后由 ahgogo 于 2015-7-5 11:42 编辑

我想实现文件夹里的文件名横向排列并用字符分隔开,不知道怎样实现,求大神帮助!

只会用DIR命令列出文件名
dir *.* /b> 1.txt

1.jpg
2.jpg
3.jpg
4.jpg
...
//------------------------------

我想输出的1.txt里是这样的  1.jpg|2.jpg|3.jpg|4.jpg|...

  1. @(for /f "delims=" %%a in ('dir /a-d /b^|findstr /iv "bat$"') do @set /p=%%a^|)<nul>"1.txt"
复制代码
1

评分人数

TOP

回复 2# pcl_test

非常感谢,很好用,

TOP

追问:如果在文件名前面加上路径该怎么写呢
如果图片都放在pic文件夹里(C:\Users\Administrator\Desktop\test\images\pic)
我想取出 images\pic 文件夹路径放到图片前面
images/pic/1.jpg|images/pic/2.jpg

TOP

使用第三方命令 hash
  1. hash /printf:"%s|"
复制代码

TOP

怎样加到这个批处理中呢,我不会用这个

@(for /f "delims=" %%a in ('dir /a-d /b^|findstr /iv "bat$"') do @set /p=%%a^|)<nul>"1.txt"

TOP

回复 4# ahgogo


  然而你并没有说清楚路径的截取规则,从上一级目录到图片当前目录吗?

TOP

获取相对路径的技巧:
  1. @(for /f "delims=" %%a in ('findstr /s /m .* *^|findstr /iv "bat$"') do @set /p=%%a^|)<nul>"1.txt"
复制代码

TOP

@pcl_test 是从上一级目录到图片当前目录,可能我描述的不是很好理解

为什么我运行bat的时候输出了1.txt,打开后什么都没有呢,是我电脑配置的问题吗,java环境也配置好的!

TOP

本帖最后由 pcl_test 于 2015-7-5 15:38 编辑
  1. @set @n=0; /* & echo off
  2. for /f "delims=" %%a in ('echo;%~dp0^|cscript -nologo -e:jscript "%~0"') do set "fpath=%%a"
  3. (for %%b in (*.jpg *.bmp *.gif *.png *.jpeg) do set /p=%fpath%%%b^|)<nul>"1.txt"
  4. echo;完成
  5. ping -n 2 0 >nul&exit & rem */
  6. var str = "";
  7. var Arr = new Array();
  8. var Arr = WScript.StdIn.ReadLine().split("\\");
  9. if (Arr.length<3) {
  10.     str = Arr[1];
  11. }else if (Arr.length==3){
  12.     str = Arr[1]+"\\"+Arr.pop();
  13. }else{
  14.     str = Arr[Arr.length-3]+"\\"+Arr[Arr.length-2]+"\\"+Arr.pop();
  15. }
  16. WScript.Echo(str);
复制代码
1

评分人数

TOP

  1. @echo off
  2. (for %%a in (*) do (
  3. for /f "delims=| tokens=1,2" %%b in ("%%~dpa\..|%%a\..") do (
  4. set /p "=%%~nxb\%%~nxc\%%~nxa|"<nul
  5. )
  6. )) >"1.txt"
复制代码
1

评分人数

TOP

感谢楼上各位的热心帮助,问题已解决,@pcl_test 命令执行后输出还是空的。@tmplinshi版主的方案可以,已采用,谢谢你们!

TOP

回复 12# ahgogo

因为你的目录结构不对,已修改,能适应不同层次的目录结构

TOP

8 楼代码有什么问题吗?
findstr /s /m .* * 取得的就是相对路径

TOP

我也不知道,运行后输出的是空的,但是我换了台电脑是可以的,估计是电脑的问题吧

TOP

返回列表