根据findstr移动目录内容

时间:2017-06-25 03:53:35

标签: windows powershell batch-file cmd

使用Windows 10,我想递归浏览我的电影文件夹并移动任何具有类型纪录片的电影写在其关联的nfo文件中。我的目录结构是:

D:\Movie1
  -Movie1.ext
  -Movie.nfo
  -Extrafanart\
D:\Movie2
  -Movie2.ext
  -Movie.nfo
  -Extrafanart\

所以,我想搜索位于每个目录中的“movie.nfo”。如果它有纪录片类型,那么我想将整个目录移动到一个新位置。以下我能够开始工作,但我只能移动nfo文件,而不是目录的内容。我一直试图解决这个问题,但我无法弄清楚:

for /F "tokens=*" %%I in ('findstr /i /s /m "<genre>Documentary</genre>" "D:\*.nfo"') do move "%%I" "E:\Documentaries\"

-EDIT-

所以我试图使用powershell并且我能够实现相同的功能,只能移动nfo,仍然无法移动nfo的目录和内容:

get-childitem F:\Downloads\Movies\ -filter Movie.nfo -recurse | select-string -list -pattern "<genre>Documentary</genre>" | move -dest E:\Documentaries\

1 个答案:

答案 0 :(得分:3)

这是我的解决方案版本:

from tkinter import*
from tkinter import messagebox as tkMessageBox


mgui=Tk()

def confirm():
      tkMessageBox.showinfo("Info","A confirmation has been sent to " + mye.get())
      #mye.get() returns contents of mye

email=StringVar()
e=str(email.get())

label4=Label(mgui,text="Please enter your email address", fg="black").grid(row=0,column=1,sticky=W)
button3=Button(mgui,text="Confirm",command=confirm).grid(row=1,column=1)

mye=Entry(mgui,textvariable=email)
mye.grid(row=6,column=1) #Grid the entry on another line

mgui.mainloop()

你可以像这样抑制@ ECHO off PUSHD %~dp0 CLS CD Movies FOR /D /r %%G IN ("*") DO ( findstr /C:"<genre>Documentary</genre>" "%%~G\*.nfo" >nul && ( ECHO "%%~G" is a Documentary! MOVE "%%~G" C:\Documentaries ) || ( ECHO "%%~G" is NOT a Documentary! ) ) CD .. POPD 命令的输出:

MOVE