如何通过将文件夹拖放到文件中来在文件夹中执行批处理文件

时间:2018-11-08 11:19:34

标签: batch-file

我有一个小的批处理文件,它执行几行简单的代码。

当我将其放在文件夹中并执行它时,它可以很好地工作。

但是文件应位于其上方,并且可以通过将文件夹放到文件上来执行。

当我当前将文件夹放到其上时,它只是执行代码,就像双击它一样。但是,它的行为就像文件位于文件夹中一样。

@echo off

for %%a in (*.*) do @echo %%~na >> filenames.txt
)

pause

我该怎么做?

我不想将其拖放到文件上,而是仅将其应用于每个文件夹。

我想从文件夹内的所有文件名生成文件。

然后将其与从另一个文件夹创建的另一个文件进行比较。

@echo off
echo new additions > test3.txt
findstr /vixg:shots.txt shots2.txt >> test3.txt
echo removed >> test3.txt
findstr /vixg:shots2.txt shots.txt >> test3.txt

我认为我无法通过将两个文件夹拖放到文件上来自动进行比较?

1 个答案:

答案 0 :(得分:1)

我不是100%知道您想要什么,但是我假设您想将shots.txt中的folder1shots2.txt中的folder2进行匹配。在这种情况下,类似的事情应该起作用:

@echo off
echo new additions > test3.txt
if exist "%1\shots.txt" (findstr /vixg:"%1\shots.txt" "%2\shots2.txt" >> test3.txt)
if exist "%2\shots.txt" (findstr /vixg:"%2\shots.txt" "%1\shots2.txt" >> test3.txt)
echo removed >> test3.txt
if exist "%1\shots2.txt" (findstr /vixg:"%1\shots2.txt" "%2\shots.txt" >> test3.txt)
if exist "%2\shots.txt" (findstr /vixg:"%2\shots2.txt" "%1\shots.txt" >> test3.txt)

然后您可以选择2个包含文件的文件夹,并将它们都放入批处理文件中。