Articles of batch file

随机variables在windowsbatch file中的“for”循环中不变

我试图打印出一个随机数多次,但在我使用的循环,它不会重置variables。 这是我的代码。 @echo off for %%i in (*.txt) do ( set checker=%Random% echo %checker% echo %%i% >> backupF ) echo Complete 有5个文本文件,所以我想它打印5个不同的随机数,但它只打印5次相同的随机数。 任何帮助将不胜感激。 谢谢!

如何保持使用“延迟扩展本地”模式的Windows批处理脚本以外的variables值?

上下文 :我需要调用一个Windows批处理脚本,通过在其末尾添加另一个path' xxx '来更新我的PATH ,但是: 没有任何重复 (如果我添加“ xxx ”到像“ aaa;xxx;bbb ”这样的PATH ,我需要一个更新的PATH如“ aaa;bbb;xxx ”) 没有任何聚集 (我可以反复地调用脚本而不会以' aaa;bbb;xxx;xxx;xxx;… '结尾) 我曾经尝试过: 下面的function负责任何重复和做这项工作 :cleanAddPath — remove %~1 from PATH, add it at the end of PATH SETLOCAL ENABLEDELAYEDEXPANSION set PATH=!PATH:%~2=! set PATH=!PATH:;;=;! set PATH=%PATH%;%~2 set P=!P:;;=;! echo %PATH% echo ————- ENDLOCAL exit /b 但是,它需要延迟扩展本地模式 ,这意味着:在脚本的末尾(或者在函数cleanAddPath ), 已经为%PATH%设置的任何东西都被抛弃了 。 […]

如何在批处理(.bat)文件中创build名称为当前date的文件夹

我不太了解windows .bat文件的语法。 我的简单要求是在名称为当前date的特定位置创build一个文件夹。 我试图在谷歌search,但没有得到任何好的select。 有没有办法做到这一点?

批量file upload.txt到FTP

我为此设置了一个单独的FTP帐户。 这里是信息: FTP Username: ahk@proflightsimulatoreview.com FTP Server: ftp.proflightsimulatoreview.com FTP Server Port: 21 FTP Password: ahktest Text file i want to upload: C:\Users\Kyle\Desktop\ftptest\thetest.txt 请告诉我如何批量执行此操作。 我的理解是你使用FTP命令创build一个单独的txt文件,然后使用batch file来运行它。 那么我一定没有插入信息的权利,因为它没有工作。 所以我在这里给你的信息。 请告诉我如何上传文本文件。

通过Windows批处理从svn​​look获取日志消息

我尝试为我的svn仓库准备一个post-commit钩子。 因此,我需要使用命令svnlook log -r %REV% %REPOS%得到的最后一次提交的日志消息。 用适当的参数填充片段我得到以下多行日志消息: This is my transaction. 迄今为止,这工作得很好。 现在我把它放在一个.bat文件中: @ECHO OFF REM just for testing purpose… SET REPOS=C:\repo SET REV=40 FOR /F %%i in ('svnlook log -r %REV% %REPOS%') do SET VAR=%%i ECHO %VAR% 当我只执行最后一行transaction.的脚本transaction. 是呼应。 for循环是我认为的一个片段,它会将svnlook输出读入%var% 。 我的方法是获取日志消息在一个variables,我传递给另一个exe文件作为参数。 但它不会工作。 我不知道如何正确使用循环。 日志消息应该给另一个exe文件作为参数。 我将脚本修改为以下(@thx PA。) @ECHO OFF setlocal enabledelayedexpansion SET REPOS=C:\repo SET […]

如何批量传递多个参数?

在我的batch file中,我想将多个parameter passing给其他应用程序。 现在我做到了 app.exe %1 %2 它只能传递两个参数,但我想传递所有传递给批处理的参数(我宁愿不写%1%2%3%4 … ) 有没有什么神奇的方法来做到这一点?

Windows BATCH:如何禁用单个脚本的QuickEdit模式?

如果您希望直接从命令提示符快速高亮显示和复制文本,而不是将输出redirect到文件,QuickEdit模式可能很有用。 但是,它有它的缺点。 如果您正在运行批处理脚本,则在控制台中select文本将暂停脚本执行,直到文本被取消选中。 这可能是一个问题,如果脚本预计将继续没有停顿。 如何禁用某些BATCH脚本的QuickEdit模式?

Windows bat替代Bash内联命令

是否有任何Windows等效的语法来在bat脚本文件中的另一个命令内运行一个命令? 在Linux中,你可以简单地使用$(…)或“。

使用批处理脚本快速(呃)获取文件夹大小

请参阅下面的原始问题以进行一些不同的testing比较: 所以我到目前为止尝试了两种方法: 1.使用Windows命令行中“获取文件夹大小”中的代码遍历目录: @echo off set size=0 for /r %%x in (folder\*) do set /a size+=%%~zx echo %size% Bytes 保存一个 'dir %folder% /s /a' 放入一个文本文件,然后在底部读取大小 3.我现在正在尝试的最后一种方法是使用du(MS的磁盘工具工具 – https://technet.microsoft.com/en-us/sysinternals/bb896651.aspx )。 现在除了#3之外,这两种方式对于我所需要的(数以千计的文件)来说似乎太慢了。 所以问题是哪一个是最快的/应该是最快的,如果有其他快速(呃)的方式来获得大小的文件夹内容有100K +文件(有100个文件夹) 开始编辑: 下面是我做比较的非常hacky的方式(屠杀我的程序看到一些输出) 有一些小错误的一些部分,如选项3将失败,因为它试图处理一个大于32位限制的数字,我敢肯定还有一些问题,但我认为一般的时机是明显的,除非我真的搞砸了在我的逻辑上。 选项I:遍历目录,使用VB脚本读取“dir”的文本输出,并在最后查找大小+将其转换为MB(原本从其他地方得到它,我实际上失去了我得到它的地方从@ MC ND选项III:使用compact命令迭代 – 从@npocmaka选项IV:从@ user1016274 – 使用robocoby (还有更多的答案,但这些是我已经能够纳入) 这些是我得到的结果,而且它们之间的相关性非常一致,robocopy把它们吹走了 scheme一和scheme二通常很接近,scheme二稍好一些(对于两者都是1分10秒到2分10秒,不知道差异来自哪里)第三部分 – 16-17分钟第四部分 – 10-20秒 @echo OFF setlocal enabledelayedexpansion REM […]

在Windows CMD文件中,回显后面紧跟着一个斜杠?

当检查这个Windows批处理/ CMD文件(来自Chocolatey源的RefreshEnv.cmd )时,我碰到以下代码行: echo/@echo off >"%TEMP%\_env.cmd" 上面创build文件_env.cmd与内容“@echo off”。 斜杠在“echo /”中做了什么? 如果我省略了斜线,结果文件完全一样。 我在Windows 7上。