他们没多大帮助;刚刚重申我已经知道的事情。
这有效:
@echo on
set var=APPENDTEXT
for /f "delims=" %%a in ('dir *.* /b /a-d') do ren "%%a" "%%~na%var%%%~xa"
pause
然后我尝试改进它有点像
@echo on
set var=APPENDTEXT
for /f "delims=" %%a in ('dir *.* /b /a-d | findstr /v /i "\.bat$" ') do ren "%%a" "%%~na%var%%%~xa"
pause
因此我最终不会重命名批处理文件本身。 但随后一切都搞砸了。
我已经尝试了几个approaches for escaping,没有一个像我想要的那样工作。
附加信息:
从我收集到的内容中,当它本身在其他内容中时,逃避“内部发现是一个问题。我 试图用“”和/“与^”逃避无效。
我在做什么 这些方法出了什么问题?
- ('dir 。 / b / a-d | findstr / v / i“”。bat $“”')
- ('dir 。 / b / a-d | findstr / v / i \“。bat $ \”')
- ('dir 。 / b / a-d | findstr / v / i ^“。bat $ ^”')
醇>逃避它的正确方法是什么? *
简单地说,
当我在文件夹中运行this.bat文件时,我想要里面的所有文件 它用APPENDTEXT重命名(蝙蝠文件本身除外)
例如:
a.dat - > aAPPENDTEXT.dat
pleasework.txt - > pleaseworkAPPENDTEXT.txt
答案 0 :(得分:2)
您已正确转义findstr
声明,但管道|
符号仍需要转义。
| findstr
→^| findstr
< / p>
@echo on
set var=APPENDTEXT
for /f "delims=" %%a in ('dir *.* /b /a-d ^| findstr /v /i "\.bat$" ') do ren "%%a" "%%~na%var%%%~xa"
pause