Articles of batch file

在一个batch file里面,我怎么知道一个进程是否正在运行?

我想编写一个batch file,检查一个进程是否正在运行,如果是,则执行一个操作,如果没有则执行另一个操作。 我知道我可以使用任务列表来列出所有正在运行的进程,但有没有一种更简单的方法来直接检查特定的进程? 这似乎应该工作,但它不: tasklist /fi "imagename eq firefox.exe" /hn | MyTask IF %MyTask%=="" GOTO DO_NOTHING 'do something here :DO_NOTHING 使用atzz提供的解决scheme,这是一个完整的工作演示: 编辑:简化,并修改在WinXP和Vista下工作 echo off set process_1="firefox.exe" set process_2="iexplore.exe" set ignore_result=INFO: for /f "usebackq" %%A in (`tasklist /nh /fi "imagename eq %process_1%"`) do if not %%A==%ignore_result% Exit for /f "usebackq" %%B in (`tasklist /nh /fi "imagename […]

Windows批处理脚本只保留N个最新的文件夹在一个目录中

我有一个目录,我将MySQL数据库备份到当前date的文件夹中。 现在,在30或60天后,我只想保留该备份目录中的n个最新文件夹,并删除剩余的文件夹,每个文件夹中都有gzip文件夹。 为了备份MySQL的数据库我使用adityasatrio的批处理脚本和创build与当前date的文件夹也sorting感谢这个答案 。 但是,为了这个例子,只保留最新的3个文件夹并删除备份目录中的所有其他文件夹似乎是一个难题。 这是我所尝试过的。 :: deletes all files and folders in the backupDir :: for /f "skip=3 delims=" %%a in ('dir "%backupDir%\" /b /o-d') do echo del "%backupDir%\%%a" :: deletes only files in backupDir :: for /f "skip=3 delims=" %%a in ('dir "%backupDir%\" /b /a-d') do echo del "%backupDir%\%%a" :: deletes all files […]

使用命令提示符batch file来移动并自动重命名重复文件

所以,这就是我所拥有的:我创build了一个小batch file,将pingtesting的结果logging到文本文件中。 我想要做的是运行batch file,并将结果日志自动移动到桌面上的特定文件夹。 然后,如果目标文件名存在,则相应地自动重命名。 意思是,如果File1存在,则创buildFile2,File3,等等等等。 以下是我到目前为止: @echo off color A title Ping Test :A echo. cls ping google.com -n 4 > C:\Users\%username%\Desktop\pingresults.txt cls :Question echo. echo You can find the results in C:\Users\%username%\Desktop\pingresults.txt echo Would you like to run this test again? (Y/N) Set /p Choice= if %choice% equ y goto :A if %choice% […]

分配date和时间输出文件

我正在ffmpeg屏幕捕获工作,我不想开始logging,所以我需要给输出的video文件一个名字是不同的,每次我开始logging我确实发现这个问题非常接近我所需要的,所以我结束了这个命令在一个batch file: @echo off For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b) For /f "tokens=1-2 delims=/" %%a in ('time /t') do (set mytime=%%a%%b) cd /d E:\ffmpeg\bin ffmpeg -f dshow -i video="screen-capture-recorder" -c:v libx264 -r 10 -crf 37 -pix_fmt yuv420p E:\%mydate%_%mytime%.flv 现在我在ffmpeg cmd中得到一个错误:[NULL @ 0270d2c01]无法find合适的输出格式'E:-04-2014_02:35' E:-04-2014_02:35无效的参数 我知道这是因为mytime的特殊字符,但我不知道如何改变它。

如何通过.bat文件从任务计划程序运行R脚本

我是一个新手,除了R的编码以外,我已经查了很多类似的post,但由于我不熟悉许多术语,所以他们不够详细。 我有一个简单的R脚本保存在C:驱动器上。 我希望它现在可以从一个.bat文件运行,稍后我将在任务计划程序中使用该文件,以便每天在运行时自动运行。 我看到很多post指向这个链接 。 链接提到的工作目录,但从来没有再提及任何事情。 Windows命令如何知道.R脚本的文件夹,如果它似乎从来没有被input? 现在我已经改变了工作目录: cd C:\Program Files\R\R-3.0.1\bin\x64 我不知道从哪里去。 编辑:我正在运行Windows 7

Windows批处理,只select用户variables

在环境variables中,我对用户variables和系统variables都有一个PATHvariables。 在批处理脚本中,为了使用新的给定path附加用户PATHvariables,我需要select当前值。 不幸的是,%PATH%返回用户variables和系统variables的组合。 当然,我只想为用户variables添加一个新的自定义path值。 用系统path来增强它也没有意义。 这就是为什么我有两个variables。 提前致谢。 编辑:在文档中find以下语句: %PATH%variables被设置为一个系统和用户variables,这两个值被合并为当前login用户的path…. 例: 用户variables: PATH value: c:\dev 系统variables PATH value: c:\Program Files 我想要做的是添加到用户variables的值:c:\ tmp,这样最后PATH将具有值:c:\ dev; c:\ tmp 但是,如果打开一个cmd窗口: echo %PATH% c:\Program Files;c:\dev 所以setx会做到以下几点 setx path "%path%;c:\tmp" 打开新的cmd echo %PATH% c:\Program Files;c:\dev;c:\tmp 这是错误的,因为我只需要c:\ dev; c:\ tmp 我希望这次我更清楚。

在Windows批处理中回覆UTF-8字符

我可以使用echo生成一个UTF-8文本文件吗? 例如,如果我想生成一个包含字符“è”的文件 echo "abcd ę" > out.txt (该batch file使用UTF-8编码) 结果是一个ANSI编码的文件,“é”字符被转换成“ê”。 我怎样才能说服“回声”生成一个UTF-8文件? 如果这是不可能的,那么我可以在创build文本文件后更改它的编码吗? gnuwin32软件包中是否有任何工具可以帮助我更改编码? 谢谢

从batch file发送电子邮件的最佳方式是什么?

我有一个夜间批量作业,可以告诉它是否失败。 我希望它给我发一封电子邮件,可能会附带一个附件。 如何从Windows批处理(.bat)文件发送电子邮件?

如何在Windows批处理脚本中将%USERNAME%的值转换为小写?

我使用dot bat脚本来自动化一些源码控制软件的function,但是考虑到我们的svn回收站是放在一个* NIX盒子里,所以我正面临着这两个世界之间永恒的案例问题。 是否有任何cmd.exe函数将Windows系统variables%USERNAME%的值转换为小写? 非常感谢!

在已经运行的batch file上设置进程优先级

我如何改变一个已经运行的拥有者的优先权我现在我可以用它来启动拥有: START /HIGH notepad.exe但是我如何改变它已经运行的记事本。 谢谢,如果任何人可以帮助这一点。