草庐IT

当搜索字符串由变量给出时,Windows 批处理字符串替换不起作用

我删除了一些代码,这些代码应该删除名称不以keep值开头的文件。我通过将文件名放在tmpL1和tmpL2中,同时用空值替换keep的值来实现这一点。如果tmpL1和tmpL2不同,我将保留该文件,否则它会被删除。setlocalenabledelayedexpansionsetkeep=[FileIwanttokeep]for/F%%LIN('dir/b*')do(settmpL1=%%LsettmpL2=!tmpL1:%keep%=!if!tmpL1!==!tmpL2!(echo.[REMOVE])else(echo.[KEEP]))这工作正常。但是,当我将此代码放入更大的脚本中时,

windows - 为什么不需要 `call` 从管道中涉及的被调用批处理脚本返回?

假设有一个批处理文件(调用者)执行另一个批处理文件(被调用者),需要使用call命令,以便在被调用者执行完成后返回给调用者。这是一个例子:caller.bat:echoCallinganotherscript...callcallee.batechoReturnedfromcallee...callee.bat(在同一位置):echoBeingcalledfromcaller...输出将是这样的(省略命令回显),表明执行按预期返回:Callinganotherscript...Beingcalledfromcaller...Returnedfromcallee...如果call命令在调

windows - 咕噜声执行停止批处理脚本

我正在使用cordova和yeoman+angularjs进行开发。我采用了如下文件夹结构(Windows上dir命令的输出):C:\code\cordova\pg-droid-app>dirVolumeindriveCisOSDiskVolumeSerialNumberis404D-C81BDirectoryofC:\code\cordova\pg-droid-app01/01/201503:46PM.01/01/201503:46PM..01/01/201503:10PMpgdroid01/01/201503:50PMpgdroid-app-frontend01/01/201503

windows - Windows批处理脚本以解析CSV文件并输出文本文件

我在另一页(HelpinwritingabatchscripttoparseCSVfileandoutputatextfile)上看到了响应-出色的代码BTW:@ECHOOFFIF"%~1"==""GOTO:EOFSET"filename=%~1"SETfcount=0SETlinenum=0FOR/F"usebackqtokens=1-10delims=,"%%aIN("%filename%")DO^CALL:process"%%a""%%b""%%c""%%d""%%e""%%f""%%g""%%h""%%i""%%j"GOTO:EOF:trimSET"tmp=%~1":triml

windows - 批处理 : Open a specific file in a specific program?

当记事本是.txt文件的默认程序时,我如何告诉Windows在写字板中打开C:\test\test.txt? 最佳答案 接受的答案对我不起作用。我不确定这是因为我试图运行的程序,还是因为路径中有空格(即使我用引号引起来),还是其他原因。无论如何,我能够通过在start命令后添加一个空字符串来做到这一点。例如:start"""C:\MyPrograms\myprogram.exe""C:\MyFiles\myfile.txt" 关于windows-批处理:Openaspecificfile

适用于 Windows XP 和 2003 的 Windows 批处理选择命令

有没有一种方法可以通过适用于XP和Windows2003服务器的Windows批处理脚本提示用户输入(即:是/否)?似乎某些命令(即:选择)仅适用于一种操作系统,不适用于其他操作系统。 最佳答案 使用SET命令与/P开关。 关于适用于WindowsXP和2003的Windows批处理选择命令,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/566944/

windows - 如何使用批处理脚本对目录中的每个文件执行多项操作

这是这个问题的直接延伸:Howtodosomethingtoeachfileinadirectorywithabatchscript从上面我学到了如何对文件夹中的每个文件执行命令。如何为每个文件执行多个命令?我想先用lame压缩文件,然后MOVE原文件到不同的目录这是我目前所拥有的:FOR/rcutAndPendingCompression%%fIN(*.*)DOlame%%fcompressed\%%~nf-mm-b16--vbr-new-V9--scale2.5 最佳答案 做到了FOR/rcutAndPendingCompres

windows - "Droplet"批处理脚本 - 包含符号的文件名

我正在尝试创建一个可以将其他文件拖放到其中的批处理文件。具体来说,我正在使用ffmpeg编辑手持录音机制作的音频文件。问题是在使用带符号(&)的文件名时。即使在引用输入时,&之后的任何内容都会被删除,但只有当文件被放到它上面时;如果在命令行上输入文件名,则脚本可以正常工作。在cmd窗口关闭之前,我短暂地看到了文件名的其余部分,并显示一条错误消息,指出它未被识别为有效命令。这是我的脚本:remChangetodriveanddirectoryofinputfile%~d1cd%~p1remffmpeg:mixtoonechannel,doublethevolume%HOMEDRIVE%%

windows - 如何使用 Windows 批处理脚本将 NULL ASCII 字符 (nul) 存储在变量中?

关注帖子HowcanIwriteanullASCIIcharacter(nul)toafilewithaWindowsbatchscript?确实有一些方法可以使用批处理脚本将ASCIINULL字符(nul)写入文件。但是,我找不到将NULL字符存储到变量的方法。假设文件null.nil包含单个NULL字符,将其重定向到set/P似乎不起作用,变量显示为空:for/F似乎也不起作用,因为它似乎忽略了它遇到的每个NULL字符。依赖于同一个文件null.nil,以下结果为空变量:for/F%%Sin('type"null.nil"')dosetNULL=%%SsetNULL将set语法更改

windows - "fuser -k <folder>"的 Windows 批处理等价物是什么?

我有一个Unixshell脚本,它会杀死任何正在访问文件夹的进程:fuser-k..\logs\*是否有与此等效的Windows批处理脚本?我知道TASKKILL,但我不确定它是否能满足我的需要。有谁知道Windowsshell是否可行? 最佳答案 不能使用内置工具(没有什么可以枚举句柄),但您可以使用SysinternalsHandletool获取在文件上具有打开句柄的PID列表。然后,您可以使用FOR/F解析输出并使用TASKKILL结束进程。例子:for/f"skip=4tokens=3"%iin('handle..\logs