保存新文档时要启动的批处理文件

时间:2013-10-18 01:50:07

标签: windows file batch-file automation file-monitoring

好吧我的问题很简单我想创建一个批处理文件或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 

感谢所有回答的人。

3 个答案:

答案 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