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


ren "!strPDF!" "%%~ni.pdf" 改成 ren "!strPDF:~,10!" "%%~ni.pdf"
再来个我最爱的:
  1. @echo off
  2. (for %%a in (*.jpg) do (
  3.     set "name=%%~na"
  4.     setlocal enabledelayedexpansion
  5.     ren *.pdf "!name:~,10!._pdf"
  6.     endlocal
  7. )) 2>nul
  8. ren *._pdf *.pdf
复制代码

TOP

回复 13# kmustwxw


    哦是的,混乱了

TOP

回复 15# yiwuyun


    *.pdf 匹配到的第一个更名成功后,其他文件都会改名失败

TOP

本帖最后由 CrLf 于 2014-11-26 22:59 编辑

回复 18# amwfjhh


    这样可以兼容文件名含 ! 的情况,做个对比实验就懂了:
  1. @echo off
  2. (for /f "delims=" %%a in (%~s0) do (
  3.    set str=%%a
  4.    setlocal enabledelayedexpansion
  5.    echo !str!
  6.    endlocal
  7. ))>test1.txt
  8. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (%~s0) do (
  3.    set str=%%a
  4.    echo !str!
  5. ))>test2.txt
  6. pause
复制代码

TOP

回复 20# amwfjhh


    这跟瘟7有啥关系

TOP

回复 23# amwfjhh


    卧槽,壕,求包养

TOP

回复 25# amwfjhh


    我tm上次摸的苹果还是红富士

TOP

本帖最后由 CrLf 于 2014-11-26 23:52 编辑

回复 28# amwfjhh


    是的,变量延迟发生在解析语法之后、执行命令前夕,引用 %%a 的时候会发生变量延迟,而执行 set /p 取得输入之前变量延迟已经发生过了
    set /p 有个缺点是最多读取 1024 字节,超出就被截断,这个相当郁闷

TOP

回复 30# amwfjhh


    好吧,现在我也是这样。曾经是忠实纯批+vbs/js派,因为这组合最通用
    后来接触的东西多了渐渐觉得 shell 只是 shell,不要硬生生当脚本用,搞得很累,效果还未必好
    不过感觉单就楼主要求而言,貌似还是纯批最方便

TOP

返回列表