使用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\
答案 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