好吧我的问题很简单我想创建一个批处理文件或shell脚本,当文件保存到文档文件夹时它将启动,以便它可以将文件排序到指定的子文件夹。任何人都能指出我正确的方向吗?
我宁愿不必安装单独的程序,并希望将其作为一个批处理。
机器注释:OS = Windows 7专业版
提前致谢!
编辑:此代码非常适合我需要的内容:
@echo off
:A
CD "desktop\file moving test"
tree
move /Y 1*.* 1*
move /Y 2*.* 2*
move /Y 3*.* 3*
goto A
感谢所有回答的人。
答案 0 :(得分:2)
您只需要一个循环并timeout
(Vista及更高版本)或ping
延迟5分钟,然后重复循环。
@echo off
:loop
if exist *.txt (
copy "*.txt" "d:\wherever"
)
timeout 300
goto :loop
答案 1 :(得分:1)
您可以创建批处理文件,用于将文件保存在文件夹中,然后运行所需的进程,或者将其设置为Windows进程,并每隔n运行一次,以进行检入差异。如果找到差异,则运行您的逻辑。类似下面的内容,并将其与之前的计数进行比较。我会将其作为计划任务运行,运行批处理文件。
@echo off
for /f %%A in ('dir ^| find "File(s)"') do set cnt=%%A
echo File count = %cnt%
答案 2 :(得分:1)
要监视Documents文件夹中的文件更改,您可以从之前使用batch-file
命令创建的计划任务中调用此SCHTASK
:
@Echo OFF
REM By Elektro H@cker
PUSHD "%USERPROFILE%\Documents"
:: Recycle past session logs
Del /Q "%TEMP%\FileList.tmp","%TEMP%\FileListNew.tmp"
:Monitor_Loop
If Exist "%TEMP%\FileList.tmp" (
Dir /B /A-D > "%TEMP%\FileListNew.tmp"
Echo N | Comp "%TEMP%\FileList.tmp" "%TEMP%\FileListNew.tmp" 1>NUL 2>&1 || (
Echo File changes found on directory.
Call :FileOp
)
MOVE /Y "%TEMP%\FileListNew.tmp" "%TEMP%\FileList.tmp" 1>NUL
) ELSE (
Dir /B /A-D > "%TEMP%\FileList.tmp"
)
REM Ping -n 5 LOCALHOST 1>NUL
Timeout /T 5 1>NUL & REM Avoid Ping while you are in Windows 7/8.
GOTO :Monitor_Loop
:FileOp
For %%# in ("*") Do (Echo "%%~#")
GOTO:EOF
PS:只需使用:FileOp
程序中的新文件添加您需要执行的操作。
您可能希望使用此VBScript
文件来运行隐藏的任务/批处理:
' Run Hidden Process
' By Elektro H@cker
Process = """" & WScript.Arguments(0) & """"
Arguments = null
For X = 1 to WScript.Arguments.Count - 1
Arguments = Arguments & " " & _
"""" & WScript.Arguments(X) & """"
Next
WScript.CreateObject("WScript.Shell").Run _
Process & " " & Arguments, 0, False
Wscript.Quit