Board logo

标题: [其他] 路径文件夹有()批处理怎么删除? [打印本页]

作者: yunyan100    时间: 2018-8-3 21:21     标题: 路径文件夹有()批处理怎么删除?

请教下各位,一个变量%pa%得到路径文件夹,未知,
想如:
  1. F:\Downloads\ADC(WSDSDSDDSDSDS)DSSD\12345(678914587878)78
复制代码
想改成文件夹不能(),就从变量最后文件夹到前F)删除,谢谢
  1. F:\Downloads\ADCWSDSDSDDSDSDSDSSD\1234567891458787878
复制代码

作者: Batcher    时间: 2018-8-3 21:33

  1. @echo off
  2. set "str=F:\Downloads\ADC(WSDSDSDDSDSDS)DSSD\12345(678914587878)78"
  3. set "str=%str:(=%"
  4. set "str=%str:)=%"
  5. echo %str%
复制代码
字符串替换可以使用set命令,参考教程:
http://bbs.bathome.net/thread-31727-1-1.html
作者: yunyan100    时间: 2018-8-3 21:44

回复 2# Batcher
把文件夹改呢,?那个只是变量,要改文件夹
作者: Batcher    时间: 2018-8-3 21:47

重命名文件夹可以使用 ren 命令,你试试:
http://bbs.bathome.net/thread-3318-1-1.html
作者: yunyan100    时间: 2018-8-3 21:48

本帖最后由 yunyan100 于 2018-8-3 21:50 编辑

回复 3# yunyan100

我用
  1. set "pay=%pa:(=%"
  2. set "pay=%pay:)=%"
  3. for %%a in ("%pay%") do set "pax=%%~nxa"
  4. ren "%pa%" "%pax%"&set "pa=%pay%"
复制代码
只改改路径,它上在同删除()
作者: Batcher    时间: 2018-8-3 22:08

回复 5# yunyan100


先取值,后替换。
  1. @echo off
  2. set "str=F:\Downloads\ADC(WSDSDSDDSDSDS)DSSD\12345(678914587878)78"
  3. for %%a in ("%str%") do set folder1=%%~nxa&&set str2=%%~dpa
  4. for %%a in ("%str%\..") do set folder2=%%~nxa
  5. set "folder1=%folder1:(=%"
  6. set "folder1=%folder1:)=%"
  7. ren "%str%" "%folder1%"
  8. set "folder2=%folder2:(=%"
  9. set "folder2=%folder2:)=%"
  10. ren "%str2%" "%folder2%"
复制代码

作者: yunyan100    时间: 2018-8-3 22:53

回复 6# Batcher

感谢你帮忙,%pa%\..这里搞定
  1. for %%a in ("%pa%") do set "pax=%%~nxa"
  2. set "pax=%pax:(=%"
  3. set "pax=%pax:)=%"
  4. ren "%pa%" "%pax%"
  5. for %%a in ("%pa%\..") do set pay=%%~nxa
  6. set "pay=%pay:(=%"
  7. set "pay=%pay:)=%"
  8. ren "%pa%\.." "%pay%"
复制代码

作者: yunyan100    时间: 2018-8-5 21:08

本帖最后由 yunyan100 于 2018-8-5 21:10 编辑
回复  yunyan100


先取值,后替换。
Batcher 发表于 2018-8-3 22:08
  1. set "pax=%pa:(=%"
  2. set "pax=%pax:)=%"
  3. for %%a in ("%pa%") do set "pay=%%~nxa"&set "pac=%pa%"&call :gchkk
  4. for %%a in ("%pa%\..") do set "pay=%%~nxa"&set "pac=%pa%\.."&call :gchkk
  5. for %%a in ("%pa%\..\..") do set "pay=%%~nxa"&set "pac=%pa%\..\.."&call :gchkk
  6. for %%a in ("%pa%\..\..\..") do set "pay=%%~nxa"&set "pac=%pa%\..\..\.."&call :gchkk
  7. set "pa=%pax%"&goto :gchk
  8. :gchkk
  9. set "pay=%pay:(=%"
  10. set "pay=%pay:)=%""
  11. ren "%pac%" "%pay%"
  12. goto :eof
  13. :gchk
复制代码
管理员好,这是改好点,设定向上删除(),
F:\11\11\11\11

但变量未知,
F:\11\11\11\11\11\11
可能j是
F:\11\11\11\11\11\1\111\14
怎么不是要是多个for能适合?




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