Articles of batch file

batch file从数据库转储数据并dynamic命名文件名

我有一个从我的数据库(Windows 2008 R2)转储数据的批处理过程,我想dynamic地命名我的文件包含星期几。 有可能做一个简单的.bat文件? 如果是的话如何?

调用AppCmd时,PsExec会间歇性地挂起

我们有一个主要由batch filepipe理的自动部署过程。 该过程的第一步就是停止IIS AppPool,以便可以安全地复制已更新的文件。 为此,我们把PsExec称为: PsExec.exe -accepteula %WEB_SERVER_MACHINE_NAME% cmd /c %%systemroot%%\system32\inetsrv\AppCmd.exe stop apppool /apppool.name:"%APP_POOL_NAME%" 2>&1 环境variables(这些不是实际值,仅用于说明): WEB_SERVER_MACHINE_NAME=\\WEBSERVER01 APP_POOL_NAME=APP01 整个部署过程通常只需要几分钟的时间。 然而,似乎有时似乎是随机的,这个过程卡在这一步,似乎无限期地等待。 如果在此过程中检查Web服务器,则AppPool不会停止,手动停止AppPool将不起作用。 有6个不同的网站需要部署,这可能发生在任何一个网站上。 我也尝试禁用自动启动像这样: PsExec.exe -accepteula %WEB_SERVER_MACHINE_NAME% cmd /c %%systemroot%%\system32\inetsrv\AppCmd.exe set apppool /apppool.name:"%APP_POOL_NAME%" /autoStart:false 2>&1 有时候,有时候这个步骤似乎会停滞不前。 所以,这似乎是PsExec而不是AppCmd 。 我也尝试指定连接超时到PsExec以及在cmd调用结束时链接出口,如下所示: PsExec.exe -accepteula -n 60 %WEB_SERVER_MACHINE_NAME% cmd /c %%systemroot%%\system32\inetsrv\AppCmd.exe stop apppool /apppool.name:"%APP_POOL_NAME%" ^& exit 0 2>&1 有没有人遇到过这个问题? 什么可能导致这个PsExec调用间歇性失速?

当没有相同dn的现有帐户时,dsadd从batch file运行失败,并显示“指定帐户已存在”

我使用以下命令(保存为batch file,在cmd中运行,从此问题进行修改)以编程方式从包含名字,姓氏,用户名和密码的txt文件创build数千个testing用户: FOR /F "tokens=1,2,3,4 delims," %%i in (UserList.txt) do (dsadd user "cn=%%j %%i,ou=2013,ou=My50kOU,dc=mydomain,dc=com" -samid %%k -pwd "%%l" -upn %%[email protected] -fn "%%j" -ln "%%i" -display "%%j %%i" -disabled no -mustchpwd no) UserList.txt的示例内容 Claverie,Eugenio,Eugenio.Claverie,UX8y30B2TFN%Y?Ig[78Z Baglio,Carl,Carl.Baglio,i=*fqdRyK]#cab/i5j%U Wilda,Irina,Irina.Wilda,{***f)GwK#K3Rd!iE}%D Shadowen,Gale,Gale.Shadowen,xLxP}zUdCF4rpzUkB#uS 但是,对于第一个用户之后的每个用户,我都会收到以下错误消息: dsadd failed:cn=Carl Baglio,ou=My50kOU,dc=mydomain,dc=com:The specified account already exists. 即使列表中没有单个重复的用户也是如此。 查看AD用户的MMCpipe理单元中的OU,我看到只有第一个用户已经创build,并且OU中没有其他用户。 当我尝试直接运行它(将%%i更改为%i并使用2>>Errors.txt将错误路由到一个txt文件)时,该命令将起作用。 命令直接在CMD中运行: FOR /F "tokens=1,2,3,4 delims," %i in (UserList.txt) […]

使用Windows CMD或简单的.TXT重命名文件以添加修改为文件名的date

我试图重命名一大批文件,将文件资源pipe理器中的“修改date”列中的date合并到每个YYYYMMDD格式的文件名中。 我能够使用以下步骤从所有文件的所需文件夹生成报告: 点击提示和技巧文件夹 按住Shift键并右键单击提示和技巧文件夹 点击“在这里打开命令窗口” 键入dir>filename.txt 点击Enter 打开提示和技巧文件夹,并find您创build的文件名的文本文件 然后,我将报告作为分隔文本文件拖到Excel中,然后操纵内容,现在我在一列中有“最后修改”date,另一列中有文件名: 修改date | 文件名 1/9/2009 | ArcGIS_TT_Projections_Transformations.doc 2/18/2014 | ArcGIS_TT_Re-Projection_WMAS.docx 1/9/2009 | ArcGIS_TT_Set_Selectable_Layers.doc 1/9/2009 | ArcGIS_TT_Spatial_Join.doc 4/21/2010 | ArcGIS_TT_View_CLU_History_Layer.doc 我只使用如下的重命名脚本已经成功: @echo off setlocal enableDelayedExpansion for %%F in ("ArcGIS_TT_Projections_Transformations*.txt") do ( set "name=%%F" ren "!name!" "!name:ArcGIS_TT_Projections_Transformations=ArcGIS_TT_Projections_Transformations_20090109!" ) pause 但我试图避免重复61个文件的过程。 有没有人有一个Windows CMD的提示或一个简单的.txt的build议,我可以用来更自动地拉入date修改信息到文件名? 谢谢你的帮助!

如何循环虽然子文件夹来检查文件夹是否为空 – 批处理脚本?

我想做的事: 写一个批处理脚本来完成以下循环,尽pipe所有的dir都以“01 – ”开始…检查“Pictures”文件夹是否为空。 跳过rest文件夹如果“图片”文件夹为空,则为空“图片”文件夹的打印path。 输出示例: MainFolder / 01-Folder3 / Pictures是空的 我的文件夹结构: 第一个lvl …我的“MainFolder”第二个lvl里面的所有东西…所有的文件夹都以数字开头:01,02,03等等…第三个lvl …有一个名为“Pictures”的文件夹…在这里每隔三分钟就是一个例子: |>MainFolder |—>01-Folder1 |——->Pictures |———–>pic.png |———–>SubPicFolder |——->RandomFolder1 |——->RandomFolder2 |—>01-Folder2 |——->Pictures |———–>SubPicFolder |——->RandomFolder1 |—>01-Folder3 |——->Pictures |——->RandomFolder1 |—>02-Folder1 |——->Pictures |——->RandomFolder1 |——->RandomFolder1 我试过了吗? @echo off for /d /r %%A in ("Pictur*") do ( dir /a /b "%%~fA" 2>nul | findstr "^" >nul || echo […]

如何创build一个文件发送到蓝牙设备的Windowsbatch file?

我总是发送一个文件到设备。 设备始终是相同的,文件具有相同的path和名称。 我如何写一个batch file来做到这一点?

如何在运行batch file时禁用Ctrl-C / Ctrl-S

默认情况下,当用户按下Ctrl-C时可以终止batch file,按Ctrl-S可以暂停batch file。 有没有办法来禁用这个? MS-DOS BREAK命令明显用于执行此操作,但现在在Windows中将其忽略。 我需要在WinNT 4.0和Win2K中有效的东西。

批量文件创build远程重新启动服务

需要创buildbatch file来远程重启某些服务,并以pipe理员模式远程重启iis。 帮助将不胜感激 谢谢krish

使用systeminfo获取操作系统名称

我需要find使用batch file运行的Windows的味道,这个batch file可以运行在从Windows NT到Windows 7的任何东西上。我正在使用基于此页面的方法,并做了一些小改动。 Systeminfo给出了正在运行的Windows的味道。 是否有任何可以返回的权威名单? 如果是的话,我会在哪里find这个列表? 我的意图是做这样的事情: winVer=Unknown rem NT doesn't have systeminfo ver | find "Windows NT" > nul if %errorlevel%==0 set winVer=WinNT if exist %SystemRoot%\system32\systeminfo.exe ( for /f "delims=: tokens=2" %%v in ('sysinfo ^| find "OS Name"') do ( set verStr=%%v ) echo %verStr% | find "Windows XP" > nul if […]

打开IIS 7pipe理器的快捷方式,以便默认显示“站点”视图(状态)?

login到Windows Server 2008 R2(x64)的桌面后,我想快速检查网站是否在线。 我希望只需要单击或双击(或者更好的是,无需点击)就能够完成此操作,而不必导航IISpipe理器的树形结构。 我可以做一个IISpipe理器的快捷方式,并把它放在我的桌面上,但我怎么强制它打开到SERVERNAME /网站视图,而不是多次点击到达那里? 如果无法完成,有没有其他的方法可以让我为每个站点放置一个“在线/离线”指示器(最好在系统托盘或桌面上)? 如果我不得不求助于这个看似简单的function的编程,我怎么能得到一个特定的IIS网站的状态(开始或停止),以显示在我的自定义程序? 我需要阅读哪些API,文件或registry项才能获取此状态信息? 更新 我发现了一个使用appcmd.exe IIS工具的.bat文件的其他人。 在阅读有关appcmd.exe实用程序的MSDN文档后,经过一些试验和错误之后,我可以拼凑出以下的.bat文件,很好地完成了这项工作。 手头的任务就是简单地从桌面上点击两次或更less的网站(或多个网站)。 @echo off :Status Set STATUS1=MAINTENANCE FOR /F "tokens=*" %%A IN ('%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite1.com /text:state ^| FIND "Started"') DO SET STATUS1=STARTED Set STATUS2=MAINTENANCE FOR /F "tokens=*" %%A IN ('%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite2.com /text:state ^| FIND "Started"') DO SET STATUS2=STARTED echo […]