SETLOCAL ENABLEDELAYEDEXPANSION
set "s=DIR D:\MyFolder /S /Q ^|FIND /i "Owner" ^|findstr /m /i "\.mkv$""
for /f "Tokens=5,6*" %%a in ('%s%') do (
SET _endbit=%%aa:*STRING=%
CALL SET _result=%%aa:%_endbit%=%%
>>%tmp%\list.txt echo %_result% %%b %%c
)
wscript "C:\my.vbs"
我列出了所有者拥有的文件,并且从MyFolder扩展了mkv。我想删除特定字符/单词后的所有内容。我写了那段代码。但似乎没有用。
首先,是否可以这样做?如果是这样我的代码有什么问题?
答案 0 :(得分:0)
你提出了我要在你的另一个问题上发布的相同解决方案 - 但我认为你错过了一些东西。结尾STRING=%
的行在结尾处缺少另一个%
,而行%%aa:%_endbit%=%%
,我不确定它是否可以直接处理来自for
的变量循环,你需要先将它存储在另一个变量中,你可能也需要使用!
个字符进行一些扩展。
这里有我似乎有用的东西,就像在包含三个文件的文件夹中进行测试一样,使用E0
作为截止字符串删除文件名的末尾:
SETLOCAL ENABLEDELAYEDEXPANSION
@echo off
for %%f in (*.mkv) do (
set FULLNAME=%%f
set ENDTEXT=!FULLNAME:*E0=!
call set TRIMMEDNAME=%%FULLNAME:!ENDTEXT!=%%
echo !TRIMMEDNAME!
)