Board logo

标题: [特效代码] [已解决]求助:批处理光标回退 [打印本页]

作者: meiszp    时间: 2023-6-8 08:29     标题: [已解决]求助:批处理光标回退

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

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

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

想要的效果     将abc.txt更改为:( 光标位置,在此输入).txt
作者: hfxiang    时间: 2023-6-8 10:08

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

作者: keshun    时间: 2023-6-8 10:12

回复 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%
复制代码

作者: meiszp    时间: 2023-6-8 10:37

回复 2# hfxiang
谢谢!是我想要的效果,但输入较多文字会删除后面的.txt。
作者: meiszp    时间: 2023-6-8 10:40

回复 3# keshun
谢谢!不是我想要的效果。
作者: buyiyang    时间: 2023-6-8 11:36

set /p只会获取输入,整个“将abc.txt更改为:  .txt”都是提示,不会成为变量的值。
作者: czjt1234    时间: 2023-6-8 15:36

本帖最后由 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 要好
作者: keshun    时间: 2023-6-8 16:19

本帖最后由 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
作者: meiszp    时间: 2023-6-12 08:38

回复 7# czjt1234
非常完美!谢谢1
作者: meiszp    时间: 2023-6-12 08:39

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




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2