对不起,如果它似乎是一个非常基本的问题,但我不能比较两个文件大小,其中一个文件正在连续写在批处理脚本,它不超越,如果语句,只是卡在那里,没有做任何事情出来。 :START copy C:\Users\Admin\ping.txt C:\Users\Admin\ping.partial set file="C:\Users\Admin\ping.txt" set parfile="C:\Users\Admin\ping.partial" ping -n 5 127.0.0.1 > nul FOR %%A IN (%file%) DO set size=%%~zA FOR %%B IN (%parfile%) DO set parsize=%%~zB echo %size% echo %parsize% if %size% EQU %parsize% ( ECHO file is complete > C:\Users\Admin\status.log ping -n 5 127.0.0.1 > nul ) else ( echo incomplete […]
我有几个不同的进程,我希望他们都login到同一个文件。 这些进程在Windows 7系统上运行。 有些是python脚本,其他的是cmdbatch file。 在Unix下,你只需让每个人以附加模式打开文件并写下来。 只要每个进程在单个消息中writeless于PIPE_BUF字节,则每个write调用将被保证不与其他任何其他进行交错。 有没有办法在Windows下做到这一点? 天真的类Unix方法失败,因为Windows不喜欢多个进程默认情况下一次打开文件。
有没有方法在窗口中,我们可以执行批处理脚本没有* .bat扩展?
我必须从我的Java程序打开一个.exe文件。 所以我试着下面的代码第一。 Process process = runtime.exec("c:\\program files\\test\\test.exe"); 但是我得到了一些错误。 然后我发现exe文件必须从c:\ program files / test /这个位置启动,只有这样它才会打开而不会出错。 所以我决定编写一个.bat文件并执行,以便它能够切换到该位置并执行.exe文件。 以下是我的代码: BufferedWriter fileOut; String itsFileLocation = "c:\\program files\\test\\" System.out.println(itsFileLocation); try { fileOut = new BufferedWriter(new FileWriter("C:\\test.bat")); fileOut.write("cd\\"+"\n"); fileOut.write("cd "+ itsFileLocation +"\n"); fileOut.write("test.exe"+"\n"); fileOut.write("exit"+"\n"); fileOut.close(); // Close the output stream after all output is done. } catch (IOException e1) { e1.printStackTrace(); […]
我可以像这样在一个batch file中声明一个列表或数组: set list = "ABCD" 然后我需要把它们写到一个文件中,之间的空格: A B CD
我需要使用REG QUERY命令来查看一个键的值,并使用此命令将结果设置为一个variables: FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "KeyName" /v ValueName') DO SET Variable=%%B 但如果钥匙不存在,我得到一个错误在控制台中显示。 我需要隐藏这个错误! 我尝试了在命令之后放置一个2> nul来停止stderr,但是如果我只调用这个命令, REG QUERY "KeyName" /v ValueName 2>nul 如果我把它放到这样的FOR命令中: FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "KeyName" /v ValueName') DO SET Variable=%%B 2>nul 显示错误。 那么有谁知道如何隐藏错误? 或者也许另一个命令也看到一个密钥是否存在? 谢谢 PS:我正在使用Windows XP
我正在Windows CMD.EXE环境中工作,并希望更改stdout以匹配stderr这样我就可以将错误消息pipe道到其他程序,而无需中间文件。 我知道2>&1表示法,但是将stdout和stderr成一个stream。 我在想的是这样的: program.exe 2>&1 | find " " 但是,结合stdout和stderr就像: program.exe | find " " 2>&1 我意识到我可以做… program 2>file type file | find " " del file 但是这并不具有程序的灵活性和强大function program | find " "符号的种类。 这样做要求program在输出可以被处理之前已经完成了输出。
有一个Windows命令来转换文件的行尾? 我们有一个test.bat ,我们需要运行来启动我们的服务器。 我们使用Perforce,我们需要在工作空间中有unix行结尾。 出于某种原因,我们不允许在工作区中将行结束符更改为Windows。 但是,服务器在Windows上运行。 每次我必须运行bat文件,我用Notepad ++打开它,然后select编辑→EOL转换→Windows。 有没有办法让这个自动化,以便我们不需要每次使用Perforce同步时手动更改行尾? 提前致谢。
如何在batch file(或从Windows命令行)中跳过&符号,以便使用start命令在URL中使用&符号打开网页? 双引号在start不起作用; 这会启动一个新的命令行窗口。 更新1 :Wael Dalloul的解决scheme工作。 另外,如果在URL中有URL编码的字符(例如空格被编码为%20),并且它在batch file中,那么'%'必须被编码为'%%'。 在这个例子中情况并非如此。 例如,从命令行( CMD.EXE ): start http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8 会导致 http://www.google.com/search?client=opera 在默认浏览器中打开,并在命令行窗口中显示这些错误: 'rls' is not recognized as an internal or external command, operable program or batch file. 'q' is not recognized as an internal or external command, operable program or batch file. 'sourceid' is not recognized as an internal […]
假设我有一个string“AAA BBB CCC DDD EEE FFF”。 我怎样才能拆分string和检索batch file中的第n个子string? 在C#中的等效将是 "AAA BBB CCC DDD EEE FFF".Split()[n]