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

[文件操作] 批处理如何把文件名改为文件夹名?

文件夹的名字是这样的:FL6B-727-I-2600-001-R1.1-LOOP DIAGRAM-626-LT-1626
中间有个空格 ,

我用下面命令试着echo这个文件夹下的一个pdf文件,但是出不来,pdf的名字是001.pdf
请问这是怎么回事,谢谢

我用的命令是下面这个
  1. for /f  %%i in ('dir /b /s /a-d *.pdf') do (echo  %%i)
复制代码
%%i加引号不加引号都出不来,
可是我在cmd命令下用dir /b /s /a-d  这个命令就可以输出,请问这是怎么回事呀,

谢谢

findstr 是读取文本中特定行的命令,缺少指定文本文件。

TOP

回复 22# qixiaobin0715


    为什么第一个不可以执行,第二个可以能执行,我感觉效果一样呢
  1. 代码1
  2. @echo on
  3. echo 按任意键开始计算~
  4. pause>nul
  5. PATH=%PATH%;"C:\Program Files (x86)\GEO-SLOPE\GeoStudio 9\Bin"
  6. for /f "delims=" %%i in ('dir /b /s /ad ') do (
  7. findstr "%%~fi\SLOPE&3W Analysis" || echo "%%~fi\%%~nxi.xml"
  8. )
  9. echo 计算完成
  10. echo 按任意键退出
  11. pause>nul
  12. ------------------------------------------------
  13. 代码2
  14. @echo off
  15. echo 按任意键开始计算~
  16. pause>nul
  17. PATH="C:\Program Files (x86)\GEO-SLOPE\GeoStudio 9\Bin";%PATH%
  18. for /f "delims=" %%i in ('dir /b /s /ad ') do (
  19.   if not exist "%%~fi\SLOPE&3W Analysis" (
  20.     if exist "%%~fi\%%~nxi.xml" (
  21.       echo "%%~fi\%%~nxi.xml"
  22.     )
  23.   )
  24. )
  25. echo 计算完成
  26. echo 按任意键退出
  27. pause>nul
复制代码

TOP

回复 22# qixiaobin0715


    我先用前面加个路径解决一下吧,

TOP

回复 19# swanseabrian
请完整的说明你要达到的目的。

TOP

你想要的结果是什么?

TOP

回复 18# Batcher


    这个dpi不是就可以的吗

TOP

回复 17# qixiaobin0715


    可是我需要上级的路径 呀

TOP

回复 16# swanseabrian


参考for命令教程第7页,有个 .. 获取上级文件夹的例子:
http://bbs.bathome.net/thread-31727-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

是这样的。

TOP

回复 14# qixiaobin0715


    %%~dpi.
这个我打印出来,为什么只是路径加上点呢,而不是上级目录 ,
难道只有在循环中用一下吗?
C:\Users\Administrator\Desktop\bat\抗日战争\新建文件夹\
"C:\Users\Administrator\Desktop\bat\抗日战争\新建文件夹\.."
C:\Users\Administrator\Desktop\bat\抗日战争\新建文件夹\new_2.txt
C:\Users\Administrator\Desktop\bat\抗日战争\新建文件夹\
"C:\Users\Administrator\Desktop\bat\抗日战争\新建文件夹\.."
最后一个是我打印出来的结果 ,我加了两个点,就echo出两个点,这是啥情况

TOP

回复 13# Batcher


    好的,谢谢

TOP

回复 12# swanseabrian
当然可以。但是这样就要开变量延迟;嵌套for语句可直接用,不要带参数;%%~nj——%%~nxj。这样效率要高一些。
1

评分人数

TOP

回复 4# swanseabrian


推荐阅读:批处理for命令教程
http://bbs.bathome.net/thread-31727-1-1.html

批处理for命令从入门到精通以及配套练习题
http://bbs.bathome.net/thread-2189-1-1.html
http://bbs.bathome.net/thread-2336-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. for /f  "delims="  %%i in ('dir /b /s /a-d *.pdf') do (set "fn=%%~dpi"
  2. for /f "delims=" %%j in ("!fn:~,-1!") do  ren "%%i" "%%~nj%%~xi")
复制代码
回复 6# qixiaobin0715

跟我这fn,-1的作用不一样吗?

TOP

返回列表