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

[特效代码] [已解决]求助:批处理光标回退

本帖最后由 meiszp 于 2023-6-12 08:40 编辑

光标显示的输入位置在语句后,想回退到扩展名前。

set /p file=将abc.txt更改为:  .txt
  
显示效果        将abc.txt更改为:.txt ( 光标位置)

想要的效果     将abc.txt更改为:( 光标位置,在此输入).txt
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# meiszp
  1. set /p file = 将 abc.txt 更改为:   .txt
复制代码

TOP

回复 1# meiszp
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p file=将abc.txt更改为:.txt
  4. echo 将abc.txt更改为:%file%
  5. echo.
  6. set "filename=%file:~0,-4%"
  7. set "extension=%file:~-4%"
  8. echo 将abc.txt更改为:%filename% (光标位置,在此输入)%extension%
复制代码

TOP

回复 2# hfxiang
谢谢!是我想要的效果,但输入较多文字会删除后面的.txt。

TOP

回复 3# keshun
谢谢!不是我想要的效果。

TOP

set /p只会获取输入,整个“将abc.txt更改为:  .txt”都是提示,不会成为变量的值。

TOP

本帖最后由 czjt1234 于 2023-6-8 15:37 编辑
  1. @echo off
  2. set /p file=将abc.txt更名为:
  3. if /i "%file:~-4%" neq ".txt" set file=%file%.txt
  4. echo %file%
  5. pause
复制代码
不管人家的输入是否带有 .txt 都可以,比提醒人家不要输入 .txt 要好

QQ 20147578

TOP

本帖最后由 keshun 于 2023-6-8 16:22 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p "file=将abc.txt更改为:.txt"
  4. echo 将abc.txt更改为:%file%
  5. echo.
  6. set "filename=%file:~0,-4%"
  7. set "extension=%file:~-4%"
  8. set /p "inputText=将abc.txt更改为:%filename% (光标位置,在此输入)"
  9. set "outputText="
  10. for %%n in (!inputText!) do (
  11.   set "outputText=!outputText!%%n "
  12.   echo %extension% !outputText:~0,-1!|more /p
  13.   echo \b\b!outputText:~0,-1!|more /p>nul
  14. )
复制代码
回复 5# meiszp
1

评分人数

TOP

回复 7# czjt1234
非常完美!谢谢1

TOP

回复 8# keshun
谢谢再次回复!

TOP

返回列表