我有一个小的批处理文件,它执行几行简单的代码。
当我将其放在文件夹中并执行它时,它可以很好地工作。
但是文件应位于其上方,并且可以通过将文件夹放到文件上来执行。
当我当前将文件夹放到其上时,它只是执行代码,就像双击它一样。但是,它的行为就像文件位于文件夹中一样。
@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
我认为我无法通过将两个文件夹拖放到文件上来自动进行比较?
答案 0 :(得分:1)
我不是100%知道您想要什么,但是我假设您想将shots.txt
中的folder1
与shots2.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个包含文件的文件夹,并将它们都放入批处理文件中。