Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 通过将文件名拖动到bat文件中来删除文件名_Batch File_Find - Fatal编程技术网

Batch file 通过将文件名拖动到bat文件中来删除文件名

Batch file 通过将文件名拖动到bat文件中来删除文件名,batch-file,find,Batch File,Find,我想使用拖放功能从txt列表中删除一个文件名,但是我无法让代码正常工作 :delete setlocal enableDelayedExpansion set /p dnr=%1 find /v "!dnr!" document.txt > deleted.txt pause 这将从文本文件(假定名称和扩展名格式)中删除拖放到其中的文件。如果是完整路径格式,则将%%~nxa更改为%%a :delete setlocal enabledelayedexpansion for /f "tok

我想使用拖放功能从txt列表中删除一个文件名,但是我无法让代码正常工作

:delete
setlocal enableDelayedExpansion
set /p dnr=%1
find /v "!dnr!" document.txt > deleted.txt
pause

这将从文本文件(假定名称和扩展名格式)中删除拖放到其中的文件。如果是完整路径格式,则将
%%~nxa
更改为
%%a

:delete
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ("%1") do (
set dnr=%%~nxa
find /v "!dnr!" filenames.txt >deleted.txt 
)    
for /f "skip=2 tokens=* delims=" %%x in (deleted.txt) do echo %%x >>new.txt
del deleted.txt /f /q
ren new.txt deleted.txt

这可以很好地工作,但是删除的.txt文本文件有一个恼人的地方------C:\FILENAMES.txt在开始的时候,有什么方法可以抑制它或者消除它吗?我已经更新了我的答案来消除它。这只是额外的3行,如果他们有一个
find
开关,但不包括它,那就更好了!实际上是在你的另一篇关于堆栈溢出的帖子上