Articles of batch file

批量DOS复制文件的最后一行限制65 536个字符

我有一个沉重的XML文件1Go有以下结构: <?xml version='1.0' encoding='windows-1252'?> <ext:BookingExtraction> <Booking><Code>2016Z00258</Code><Advertiser><Code>00123</Code<Name>LOUIS VUITTON</Name></Advertiser></Booking> <Booking><Code>2016Z00259</Code><Advertiser><Code>00124</Code<Name>Adidas</Name></Advertiser></Booking> </ext:BookingExtraction> 由于结构非常简单,因此我的目标是将XML文件的最后150行复制到新文件中,并在第一行中添加开始标记以形成格式良好的XML。 该algorithm工作正常,但有超过65 536个字符的行被分成几行。 我读了DOS限制每行字符数为65 536.这就是为什么在这个65 536个字符之后添加一个回车符。 结果是最后的XML没有正确的形成,因为在行的中间input了马车。 例如: <ext:BookingExtraction> <Booking><Code>2016Z00258</Code><Advertiser><Code>00123</Code><Name>LOUIS VUIT TON</Name></Advertiser></Booking> </ext:BookingExtraction> 我试图删除字符进入,但它不起作用。 你有什么想法我怎么能解决这个问题? `@echo off setLocal EnableDelayedExpansion ::Get XML file for /r %%a in (extractedBookings_BookingWithoutUnitsContent_PRD_*.xml) do ( ::echo "%%~dpa" and full path is "%%~nxa" set fileName="%%~nxa" ) ::Get the 150 last line of the […]

使用getRuntime().exe(cmd)更改registry项的值不会更改registry值,即使操作已成功结束

我试图从我的Java应用程序更改registry值。 我使用这个命令: LoudnessEqualizationToggle.execCmdNoReturn("reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\MMDevices\\Audio\\Render\\"+guid+"\\FxProperties\"" + " /f /v \"{E0A941A0-88A2-4df5-8D6B-DD20BB06E8FB},4\" /t REG_DWORD /d \""+((activateLEOnKey) ? 1 : 0)+"\""); 凡guid是{d348b8e8-3118-4a9c-9b43-422647b555ca} activateLEOnKey是布尔值 execCmdNoReturn函数: public static final void execCmdNoReturn(String cmd) { try { Scanner s = new Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A"); System.out.println("Command:"+cmd); System.out.println("Printing executed data"); while (s.hasNext()) { System.out.println(s.next()); } } catch (IOException ex) { Logger.getLogger(LoudnessEqualizationToggle.class.getName()).log(Level.SEVERE, null, ex); } } 一切正常。 […]

UUID被存储在文件中

我正在尝试获取系统的UUID并将其存储在一个文件中。 使用命令wmic csproduct get UUID我得到的输出文件为(UUID一些空格然后值), ie UUID 4C4C4544-0031-5910-8048-B1C04F565331 。 但我需要在我的输出文件中的值( 4C4C4544-0031-5910-8048-B1C04F565331 )。

windows批处理循环没有完成

试图让这个batch file循环遍历一个列表( list.txt ),并使用xml.exe从这个文件中报告一个数字: http : xml.exe 文件: @echo off SET USER_NAME=registereduser SET PASSWORD=secret SET LIST=list.txt SETLOCAL EnableDelayedExpansion EnableExtensions net use * /del /yes > null FOR /F %%A in ('TYPE "%LIST%"') do ( NET USE * \\%%A\c$ /user:%USER_NAME% %PASSWORD% > null SET DATA=\\%%A\c$\directory here\file.xml ) SET A_NUM= FOR /F %%I IN ('bin\xml sel -t […]

windows批处理命令用于循环设置环境variables

我试图find一种方法来dynamic构build包含我的应用程序的WEB-INF / lib文件夹下的JAR文件列表的环境variables。 这是我迄今为止所做的,但是每次都会覆盖自己,所以当你到达循环的结尾时,你只需要将variables中的循环的最后一个文件设置在variables中。 SETLOCAL ENABLEDELAYEDEXPANSION for %%f IN (WEB-INF/lib/*.jar) DO ( SET JAR_LIST=%JAR_LIST%;%%f ) ECHO JAR_LIST — %JAR_LIST% 所以这产生… C:\ apache \ Tomcat6.0 \ webapps \ myapp>(SET JAR_LIST = .; xsltcbrazil.jar) C:\ apache \ Tomcat6.0 \ webapps \ myapp>(SET JAR_LIST = .; xsltcejb.jar) C:\ apache \ Tomcat6.0 \ webapps \ myapp>(SET JAR_LIST = .; […]

循环通过文件保存到variables

我现在有下面的bat文件工作(它允许文本添加到文件的每一行的末尾) – 请参阅: bat文件:使用if,for和一个variables @echo off setLocal EnableDelayedExpansion IF EXIST "%FileToModify1%" ( for /f "tokens=* delims= " %%a in (%FileToModify1%) do ( echo %%a Note: certain conditions apply >> "%SaveFile1%" ) ) 但是,我想将每行保存到一个variables(包括新的行符号),然后在variables的末尾回显variables。 由于文件中有几行文件,每行保存到一个文件的效率并不高。 我试图用googlesearch,但答案不适合我的情况… 基本上我需要的语法连接和保存到一个variables(累积像在C#中的“+ =”),并使用新的行…

“…”是什么原因不被识别为内部或外部命令,可操作程序或batch file?

我有一个在命令行中完美工作的单行代码片段,但是当我将它作为批处理脚本的一部分运行时会失败并引发错误。 下面的命令按预期行为,删除文件夹中的所有空子文件夹。 for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do rd "%d" 然而,当把这样的batch file… FOR /f "delims=" %%d in ('dir /s /b /ad ^| sort /r') do rd "%%d" 它会抛出标准错误: Sort is not recognised as an internal or external command… 我一直在做最后一个小时左右的试验,有没有逃脱pipe道,改变选项的顺序,查找dir和dir的文件等,但我仍然无法弄清楚是什么去这里 batch file的其余部分,只有几行,工作正常,这是唯一的行失败。 谁能帮忙? 在此先感谢,我真的很感激。

如何检查服务是否正在通过batch file运行,并启动它,如果它没有运行?

我想写一个batch file,执行以下操作: 检查服务是否正在运行 如果正在运行,请退出批处理 如果没有运行,请启动服务 我search到的代码样本到目前为止没有工作,所以我决定不发布它们。 开始一项服务是由: net start "SERVICENAME" 如何检查服务是否正在运行,以及如何在batch file中创buildif语句? 我有点困惑。 我必须通过networking开始的论点是什么? 服务名称或其显示名称?

从批处理脚本执行WshShell命令

我有一个简单的问题: 从Windows批处理(.bat)脚本执行单个WshShell命令的最佳方法是什么? (希望它不是用VB代码创build一个新文件)

如何使用Windows批量增加文件夹名称?

我有一个批处理脚本,它创build一个名为New_Folder的文件夹以及其中的一些子目录和文件。 目前,如果我需要创build多个New_Folders,我必须重命名由该批创build的每个New_Folder,然后才能再次运行并创build一个新的文件夹。 我想要做的是批量检查,看看New_Folder是否已经存在,如果是的话,增加New_Folder一个数字。 所以我会有New_Folder,New_Folder1,New_Folder2等等。 我怎么去做这个? 我见过的用于在批处理脚本中增加事物的解决scheme似乎并不适用于我的情况,除了我为自己的代码复制/粘贴之外,我不知道有关批处理脚本的任何内容。