这个batch file释放从TEST到LIVE的构build。 我想在此文件中添加一个检查约束,以确保在特定文件夹中有一个accomanying发行版文档。 "C:\Program Files\Windows Resource Kits\Tools\robocopy.exe" "\\testserver\testapp$" "\\liveserver\liveapp$" *.* /E /XA:H /PURGE /XO /XD ".svn" /NDL /NC /NS /NP del "\\liveserver\liveapp$\web.config" ren "\\liveserver\liveapp$\web.live.config" web.config 所以我有几个关于如何实现这个问题… \\testserver\testapp$文件夹中有一个version.txt文件,此文件的唯一内容是内部版本号(例如,45 – 对于内部版本45)如何读取version.txt文件的内容到batch file中的variables? 如何使用第1部分中的variables\\fileserver\myapp\releasedocs\ {build}.doc检查文件\\fileserver\myapp\releasedocs\ {build}.doc存在?
我需要制作一个脚本,可以将一行文本写入batch file所在目录中的文本文件。
有没有一个Windows命令行命令,我可以用它来获取当前工作目录的完整path? 另外,如何将此path存储在batch file中使用的variables中?
在我继续之前,请注意,这是一个相当长的关于Windows命令提示符的infosec通知,因为我发现了一个可能被使用简单的batch file利用的bug。 这个bug在2000以后的所有Windows版本中都很普遍,在64位和32位机器上都能正常运行,而且这是一个batch fileparsing错误,它不需要额外的软件来安装( cmd.exe是Windows的缺省部分)并且可以由任何具有任何级别的特权的用户启动(假设他们可以运行cmd.exe并因此parsingbatch file)。 在这个总结中包含了错误发生的地方(用代码stream来分析原因)。 这不是一个RCE级的bug(不是我已经能够find的),只是一个DoStypes,并且需要用户运行它(或者把它作为启动项),但是考虑到它的简单性和Windows系统无处不在,我觉得值得再看一下。 请注意,如果您运行任何这些启用batch file的bug并导致系统崩溃(任务pipe理器并在运行失控脚本的情况下终止PID),则我不承担任何责任。 tldr :只有这行^ nul<^的batch file会导致大量的内存泄漏,而只有这一行的batch file会导致命令提示符因“无限recursion”而崩溃。 这些行为可能导致在任何Windows系统(Win2k +)上发生有趣的批量“黑客攻击”,原因是cmd.exebatch file处理中存在逻辑错误(请参阅下面的汇编和伪C代码以获取更多信息)。 背景 在回答关于超级用户( 链接 )的问题时,我遇到了一个有趣的exception情况:命令解释器如何parsingbatch file。 如果脱字符( ^ )是该文件的最后一个字符,则可能会发生内存泄漏/ cmd.exe崩溃。 脱字符必须是文件的最后一个字符,不能跟着\n (换行字符),尽pipe\r (回车符)是正确的,因为在脱字符被parsing之前它已被删除; 没有任何东西可以跟踪它,因为它会导致parsing器正常进行(因为^\r\t会变成“ ^\t因此\t被“忽略”)。 关于回车字符的最后一个注意事项,这个错误仍然发生,这实际上使它更有趣一些,因为它在大多数文本编辑器中“伪造”了一个换行符,而在记事本中,你可能会被愚弄到认为最后有一个换行符'技术上'这是一个回车或'旧的Mac'新线)。 在做了一些快速的调查之后,我发现文件末尾的^可能会导致内存泄漏或者可能导致命令提示符崩溃(更具体地说是command.com或cmd.exe程序),我还发现特定的batch file及其序列)可以导致一些非常有趣的行为。 进一步的调查使我向其他人提出类似的问题。 一个Stack Overflow问题,用户在ss64.com上发现了一个内存泄漏和一个留言板话题,这个话题logging了EOF插入符其他有趣的行为 。 堆栈溢出问题有助于确认暂停,这是一个无限循环types的情况,但没有试图潜水比这更深。 ss64.org主题大多讨论了各种使命令提示符崩溃的方法,但未能解释它是什么样的崩溃或原因。 这当然会让我质疑发生了什么,为什么(可以被利用)。 答案是混合的,修复很简单(至less从我正在检查的程序集看起来是“简单的”)。 我发现可以产生内存泄漏的batch file技巧的几种组合,多快或多慢取决于batch file中的内容(而不是多less插入符号,但pipe道顺序和有趣的行长度[稍后])并且无论崩溃或内存泄漏,parsing器代码在单个线程中处于紧密的循环中,因此CPU使用率显着增加(单核CPU或推送到单个关联,平均产生98%以上的CPU使用率)。 崩溃 要使命令提示符崩溃非常简单,没有换行符的batch file只包含以下字符^&^ (或^|^ ),将导致批处理命令提示符崩溃,错误代码为0xC00000FD ,这是由于无限recursion导致的堆栈/帧溢出。 这证实了'无限循环'的情况,但没有完全解释内存泄漏(或为什么因为无限的recursion而崩溃)。 在这个意义上,我开始研究一些最简单的产生内存泄漏的方法。 事实certificate,一个2字节的batch […]
在我的Java应用程序中,我想运行一个batch file,它调用“ scons -Q implicit-deps-changed build\file_load_type export\file_load_type ” 看来,我甚至不能让我的batch file执行。 我没有想法。 这是我在Java中所拥有的: Runtime. getRuntime(). exec("build.bat", null, new File(".")); 以前,我有一个Python Sconscript文件,我想运行,但由于没有工作,我决定我会通过batch file调用脚本,但该方法尚未成功。
我想创build一个.bat文件,所以我可以点击它,以便它可以运行: svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/ServiceModelSamples/service 有人可以帮助我的.bat文件的结构?
在Unix中,我们可以像这样在一行中放入多个命令: $ date ; ls -l ; date 我在Windows中尝试过类似的东西: > echo %TIME% ; dir ; echo %TIME 但它打印时间并不执行命令dir 。 我怎样才能做到这一点?
具有WAIT选项的START命令如何? START /wait notepad.exe START /wait notepad.exe …与使用CALL命令有什么不同? CALL notepad.exe CALL notepad.exe 有没有这样一种情况,一个人可能会有不同的performance,另一个则依赖于正在执行的事情?
如何让Windows批处理脚本等待几秒钟? sleep和wait似乎没有工作(无法识别的命令)。
我知道我已经回答了一个类似的问题( 在Windows启动时在后台运行batch file ),但这次我需要启动批处理: 从另一批次, 没有显示任何控制台窗口, 将所有参数传递给不可见的批处理。 第一批在控制台窗口中执行。 不过,我不希望第二批(以asynchronous方式第一批启动)也显示一个控制台窗口。 我已经想出了一个VBScript脚本,并将脚本作为其他人参考的答案 ,但如果您有其他想法/解决scheme,请随时投稿。 注意:Windows命令处理器的控制台窗口被很多人命名为不正确的DOS窗口。 谢谢大家的答案。 从我的理解,如果我需要asynchronous调用一个脚本运行在一个不可见的模式: 从控制台窗口中的第二个脚本start /b就足够了。 从Windows, 没有触发第二个窗口 ,我的解决scheme仍然有效。