从我上一个问题中,在C#Web服务中执行批处理文件 我已经检查了所有相关内容的许可,并发现: 批处理文件:权限=所有用户的完整控制 iis用户= myuser .. win32 \ cmd.exe:系统的权限,admin,myuser = read&Execute,读取" trustedinstaller"的权限(是什么?)=完全控制 Visual Studio在管理员模式下运行. 我在互联网上进行了一些研究,似乎我需要使用机器上的"本地政策"做点事.不幸的是,我正在使用Windows Vista Home Premium,这似乎我无法制定本地政策...我还尝试更改CMD.EXE的许可来"完全控制",但这只是不允许我这样做. 似乎我面临着一个"无法解决的"问题,所以我会解释我在做什么,以便有人可以让我知道该怎么做. 我已经使用BlackBerry Simulator开发了BlackBerry应用程序.它与我的Web服务在同一PC上.
以下是关于 batch-file 的编程技术问答
我搜索了该网站,但是我没有看到与我想要的完全匹配的东西.我创建了一个使用我创建的Web服务的独立应用程序.为了运行我使用的客户端: C:/scriptsdirecotry> "run-client.bat" param1 param2 param3 param4 我将如何在python或f#中对此进行编码.看来它应该很简单,但是我还没有看到任何与我想要的相匹配的东西. 解决方案 python相似. import os os.system("run-client.bat param1 param2") 如果您需要异步行为或重定向的标准流. from subprocess import * p = Popen(['run-client.bat', param1, param2], stdout=PIPE, stderr=PIPE) output, errors = p.communicate() p.wait() # wait for process to
我有一个用于安装Windows的批处理文件.它为您提供了一系列菜单,可以导航到达最终的WIM图像编号.然后,它使用imagex将图像应用于指定的驱动器字母.我想使菜单动态化,因此它仅显示基于WIM文件中的条目.我目前有一个WIM文件,它具有从Vista到Server 2012的所有版本的Windows.我想剥离一些图像,因此更简化了,但我不想重建安装程序.我想要一些帮助 我想到的一件事,但我不知道该如何实现是它读取图像名称并在其尊敬的地方为其提供菜单. 如何使菜单动态? 有关其他任何提示或提示,请转到 https://github.com/elliot-labs/wininstaller 这是当前的安装批处理文件: :start @echo off cls cd /d %~dp0 rem Sets up the working directory. goto Menu :Menu cls set selection= cls ech
我正在从可启动的UFD启动winpe 2,我需要检测驱动器字母,以便告诉Imagex在哪里可以找到WIM.但是,根据我想象的机器,有不同的安装驱动器. 我需要一种始终将UFD安装在P:或其他内容的方法.是否可以检测启动机器的驱动器的字母,或者有其他方法将我的WIM文件的位置传递到可从startnet.cmd访问的可变的位置? 这是在Technet上遇到相同问题的其他人. 解决方案 此vbscript将显示每个可移动驱动器的消息(字母:描述),可以轻松修改以搜索特定驱动器并返回字母. strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where MediaType = 11") F
我正在从可启动的UFD启动winpe 2,我需要检测驱动器字母,以便告诉Imagex在哪里可以找到WIM.但是,根据我想象的机器,有不同的安装驱动器. 我需要一种始终将UFD安装在P:或其他内容的方法.是否可以检测启动机器的驱动器的字母,或者有其他方法将我的WIM文件的位置传递到可从startnet.cmd访问的可变的位置? 这是在Technet上遇到相同问题的其他人. 解决方案 此vbscript将显示每个可移动驱动器的消息(字母:描述),可以轻松修改以搜索特定驱动器并返回字母. strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where MediaType = 11") F
我们有一个多服务器系统我们需要在客户端网站上安装.我想整理一个可以: 的脚本 关闭远程机器上的服务 在几台远程机器上卸载软件 安装.msi文件归档几台远程计算机 我在 psexec 和 wmic 做点2和#3. 似乎必须有一种更简单的方法,而不必诉诸 powershell . 解决方案 首先,请参阅此线程,以获取 wsh远程:那么,也许您可以尝试使用 vbscript库,例如 vbsedit (我不想提出软件建议,但是我认为允许它是因为我没有附属,并且想建议它解决问题): 这是一个远程安装软件的脚本: ' Install Software on a Remote Computer Const wbemImpersonationLevelDelegate = 4 Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objConnection = objwbemL
我有一个连续的集成服务器(Jenkins),该服务器构建我的代码(检查编译错误)并运行测试,然后将文件部署到远程服务器(不是战争文件,而是实际文件结构)这是一个jenkins插件,该插件使我可以通过samba传输文件,它会每晚进行. 现在,我需要做的是在远程服务器上运行ANT命令.之后,我需要在远程服务器上启动应用程序服务器,该应用程序服务器是通过从命令行运行.bat文件开始的. 我很难实现这一目标,我知道Jenkins能够运行批处理命令,但是我该如何使它们在服务器的上下文中而不是构建服务器的上下文? 的上下文? 解决方案 如果在Windows上的Jenkins,远程 *nix,使用plink.exe(本质上是命令行PuTTy) 如果jenkins在窗户上,远程在窗户上,请使用/a> 如果jenkins在 *nix上,远程 *nix,请使用ssh 如果jenkins在 *nix上,遥控器在Windows上,(更新2015-01)Ansible ht
我正在使用MS-Deploy进行Web部署. 下面的命令我正在使用此 msdeploy -verb:sync -source:contentPath="${p:resource/work.dir}${p:component.name}\%BinariesMode%%DirectoryOffset%" -dest:contentPath=%1,ComputerName=localhost -enableLink:AppPoolExtension -enableRule:Donotdeleterule -skip:objectName=filePath,absolutePath="\\Web\.config$" 它不仅跳过根文件夹的Web配置,还跳过View文件夹Web.config的Web配置. 我如何克服这个问题. 我不想使用Web配置的完整路径. 预先感谢. 解决方案 您可以尝试负面的主张: absolutePath="(?
我想创建一个可以列出远程PC上的所有应用程序的网页,然后我可以选择要卸载哪个应用程序.我应该从哪里开始?有什么建议么? 现在我只使用 psexec.exe -cd \ computername" path \ msizap.exe" tw {guid for删除程序} 卸载,但它只能从[程序和功能]中删除该条目,该软件仍在PC上. 解决方案 wmic /node:computername /user:adminuser /password:password /output:"path\to\index.html" product list /format:HTABLE 将生成一个不错的HTML页面,显示已安装的应用程序. wmic /node:computername /user:adminuser /password:password product where name="name of program" call uninstall 将致电程序的卸
这个问题与停止服务停止是完成吗?,但我想停止网站.我目前在脚本中有appcmd stop sites "siteName",但是批处理文件只是发出停止命令并继续.我希望批处理文件等到停止站点后继续之前.我正在运行Windows Server 2008. 解决方案 我无法弄清楚如何使用批处理文件使其工作.像这样的事情可能有效(但这可能对您有用,对某些人不起作用): :LoopWhileNotStopped for /f "delims=" %x in ('appcmd list site "siteName"') do set siteInfo="%x" IF NOT %siteInfo:~-16% == "state:Stopped)" GOTO :LoopWhileNotStopped 但是我不知道如何修改set siteInfo="%x"命令,以便它适用于 appcmd 命令的输出.问题似乎是 appcmd 输出包括双引号,并且在执行变量扩展时干扰了命令
我的问题是ping不会告诉我网站是上下的.我需要知道该网站是上升还是向上.如果不启动,请重新启动脚本.如果有人能帮助我,那真是太神奇了. 我唯一能想到的是抓住网站的内容并查看该网站是否启动. 我想用apatche tomcat在服务器上运行此操作. @echo off :first PING -n 5 google.com | FIND "TTL" > nul IF %errorlevel% == 0 ( echo Website is up. goto :first ) ELSE ( echo Website is down. Restarting service goto :second echo restart echo ping ) :: This calls the second loop :second :: This will stop the service net stop TapiSrv ping -n 10 127.0.0.1
我有一堆托管WCF服务的控制台主机应用程序.我将.bat文件称为杀死任何运行的主机实例的预构建步骤,以免我遇到WCF频道注册错误(每次构建之前,每次手动杀死控制台主机是皇家痛苦). 我创建的.bat文件包含以下内容. taskkill /T /F /FI "imagename eq Host.vshost.exe" taskkill /T /F /FI "imagename eq Host.exe" exit /B 0 这杀死了这两个过程.我可以在Taskmanager中看到Host.exe消失了,host.vshost.exe有一个新的PID,但控制台窗口仍在启动. 看来cmd.exe是托管控制台的实际过程,因此我将.bat文件更改为 . taskkill /T /F /FI "imagename eq cmd.exe" 但这杀死了所有cmd.exe Windows. 如何调整此问题,以便我可以仅针对特定的控制台应用程序的CMD窗口,或者我应该使用其他命令
我正在使用 @echo off set dbUser=root set dbPassword=root set backupDir="D:\MySQLDumps\dbs\" set mysqldump="C:\wamp\bin\mysql\mysql5.6.17\bin\mysqldump.exe" set mysqlDataDir="C:\wamp\bin\mysql\mysql5.6.17\data" set zip="C:\Program Files\7-Zip\7z.exe" :: get date for /F "tokens=2-4 delims=/ " %%i in ('date /t') do ( set yy=%%i set mon=%%j set dd=%%k ) :: get time for /F "tokens=5-8 delims=:. " %%i in ('echo.^| time ^| find "current" ') do ( set hh=%%i s
我决定进行基于文字的冒险,我意识到我对制作一场不太了解.但是,我知道我想使用批处理文件制作,只是因为我认为使用和共享更容易.我现在没有很多问题,但是我敢肯定,随着时间的流逝,我会提出更多的问题(如果我决定这很有趣),但是现在我有两个问题: 您如何使线路看起来好像是有人打字? 您如何使行等待x秒,然后再进入下一个过程(您知道"戏剧性效果") edit 我忘了放置我需要帮助的脚本(应该看起来像矩阵中的"唤醒neo"屏幕,但我无法将间隔小于2或隐藏下面的ping文本). echo h PING 127.0.0.1 -n 2 cls echo he PING 127.0.0.1 -n 2 cls echo hel PING 127.0.0.1 -n 2 cls echo hell PING 127.0.0.1 -n 2 cls echo hello PING 1
如何在批处理中检查Explorer窗口是否打开? 我需要使用选定的文件进行目录的屏幕截图,但仅在打开窗口后.窗口标题始终相同. 示例: REM Opening folder with a file selected START /W EXPLORER /SELECT,\\10.10.10.10\C$\ThisFolder\FileToHighlight.txt REM Unreliably waiting for window to open TIMEOUT /T 3 /NOBREAK >NUL REM Taking screenshot of window with a third-party app START .\Bin\screenshot-cmd.exe -wt "ThisFolder" -o .\Screenshots\%var%.png 解决方案 提供了与打开的文件夹相同的其他窗口,您可以使用任务清单: @echo off rem DON'T
我正在尝试启动固定数量的并发批处理进程,这些过程具有相似的文件名,所有这些都在同一目录中: TestMe1.bat TestMe2.bat TestMe3.bat 所有批次都应同时开始,所有批次都应在批次继续之前完成,例如baster.bat: echo Starting batches ( start "task1" cmd /C "TestMe1.bat" start "task2" cmd /C "TestMe2.bat" start "task3" cmd /C "TestMe3.bat" ) | pause echo All batches have stopped and we can safely continue 我正在尝试找到一种方法来启动与testme*.bat匹配的目录中的所有批次,这样我就不必每次都制作一个新的master.bat文件.这样的东西,但是,您知道,工作: echo Starting batches ( for /f "
我正在使用网络管理工具将更新应用于软件,并且我遇到了一个问题,如果用户已经使用了要更新的程序,则会按照您的期望失败. 我一直在尝试整理一个批处理脚本,该脚本将检测该程序是否正在运行,如果是脚本,则将等待等到用户关闭程序并应用MSI更新. 我几乎搜寻过Google,但只能真正找到以前的脚本,这些脚本在继续之前先杀死该程序,而我不希望这样做,因为用户可能会丢失工作. 希望有人可以提供帮助! 解决方案 @echo off start "" notepad.exe :loop (tasklist | find /i "notepad.exe" && ( ping -n 2 localhost & goto loop)) >nul echo Notepad closed 这只是启动notepad.exe(运行程序),然后等到关闭.根据您的需要进行适应 其他解决方案 `tasklist |find "programname"` 会告诉
我似乎无法弄清楚. 我正在创建一个实时网站并在线部署 批处理文件: START cmd /K "runas /user:administrator & cd C:\users\MyName\dropbox\!!GIT_HUB_REPOS_ALL\tangycode.github.io & hexo generate & hexo serve --draft" START /wait "" http://localhost:4000/ 事物正在运行命令hexo generate & hexo serve --draft大约需要5-10秒,时间变化.理想情况下,我想等待发生这种情况,然后再访问 http://localhost:4000 此Windows批处理命令的某些原因刚刚自动打开Localhost:4000 解决方案 我会使用/b保持相同的过程,/等待tot等到第一个命令完成.除非有更多命令要遵循,否则您不需要/等待第二行.如果这不起作用,请尝试
我正在执行一个程序,需要启动CMD,并且在那里启动了一个批处理文件.问题是我正在使用MyProcess.WaithForexit();,我认为它不会等到批处理文件处理完成.它只是等到CMD关闭.到目前为止,我的代码: System.Diagnostics.ProcessStartInfo ProcStartInfo = new System.Diagnostics.ProcessStartInfo("cmd"); ProcStartInfo.RedirectStandardOutput = true; ProcStartInfo.UseShellExecute = false; ProcStartInfo.CreateNoWindow = false; ProcStartInfo.RedirectStandardError = true; System.Diagnostics.Process MyProcess = new Syste