Articles of batch file

如果在Windows批处理/ then / else语句

在一个shell脚本中,我有以下代码: if echo Mr.32 ; then echo Success else echo Failed exit fi 什么是Windowsbatch file的等效语法?

在批处理脚本中实现“哪个”命令

我试图制作一个类似于which脚本的脚本。 所以我想检查这个命令是内部的还是外部的,或者两者兼而有之。 我试图执行程序,但是当程序(例如.exe)不正确我的程序退出时出现错误,所以我试图打电话给这个程序的help 。 但是现在,如果我尝试检查示例echo并在我当前的目录中有echo.exe我得到它是外部命令,但不是内部。 所以我的问题是如何做到这一点。 如何检查这个程序是内部的还是外部的。 谢谢。 这是我的代码: @echo off setlocal enabledelayedexpansion if "%1"=="" goto help :start if not "%1"=="" ( shift if "%1"=="/?" goto help goto :start ) set arg=%* for %%a in ("%pathext:;=" "%") do ( echo %arg%|findstr /E /I %%a >nul rem If file was given with extension if not ERRORLEVEL […]

从Windows批处理脚本中的文件读取值

我试图从文件中读取一个值,并在后续的命令中使用它。 我有一个名为AppServer.pid的文件,其中包含我的应用程序服务器的进程ID(只是数字,它不是一个属性文件或类似的东西)。 应用程序服务器挂起,所以我想要取这个值,并将其传递给kill命令。 所以我的脚本会是这样的 SET VALUE_FROM_FILE=AppServer.pid # or something taskkill /pid %VALUE_FROM_FILE% /f 有没有一个方便的方法来做到这一点在Windows脚本?

批处理脚本查找挂载设备的驱动器号

我正在尝试编写批处理脚本来查找特定的挂载设备。 我在Windows 7中。 我知道该设备将有文件夹驱动器:\习惯所以我想看看所有possabilitiesfind一个设备与这条path 这是我到目前为止 @echo off setLocal Enabledelayedexpansion for %%d in (cdefghijklmnopqrstuvw xyz) do ( if exist %%d:\custom ( ECHO Device Found : %%d ) ) 这不工作,它认为它存在每个驱动器号..所以我看到“设备find”每个单个驱动器号。 这是为什么? 我是否在谈论这个错误? 如何find根目录上具有“自定义”文件夹的驱动器号? 谢谢, 斯蒂芬妮

使用Windowsbatch file从FTP服务器下载今天的文件

我正尝试将XML文件从FTP位置复制到应用程序服务器 – 但不是所有文件。 新文件在ftp位置每隔半小时存档一次。 我只需要传输基于时间戳和date的新文件。 我正在使用下面的2个文件从FTP位置复制所有文件。 batch file: ftp -i -s:D:\ftp_commands.txt -n <host name> 文本文件(ftp_commands.txt): user <username> <password> cd <source path> lcd <destination path> mget * bye 任何人都可以请帮我复制基于时间戳或date的文件?

批处理脚本调用可执行文件,如果挂起则退出

因此,我需要编写一个批处理脚本来启动一个可执行文件,并在可执行文件完成后立即退出脚本(所以不需要ip ping等待脚本),但是如果可执行文件仍在运行,会在30分钟后自动终止该脚本并退出脚本挂起,没有回应等) 这是我迄今为止。 find语句正确地输出匹配的进程数,但是我的问题是ERRORLEVEL总是返回0,无论是否有正在运行的匹配的可执行文件。 我对批处理脚本相当陌生,所以很可能我忽略了一些非常简单的事情。 @echo off start calc.exe REM loop 600 times, each loop being 3 seconds (30 minutes total) FOR /L %%A IN (1,1,600) DO ( REM find the running executable tasklist | find /I /C "calc.exe" > nul echo %ERRORLEVEL% Rem exit the script if no executable is found (ie it has […]

如何安全地回应文字string“%I”?

如何以安全的方式回显string%I ,而不pipeecho命令行是否放在for %I循环中? 例如,在命令提示符( cmd )中: >>> rem // `echo` is outside of `for` scope, so this works: >>> echo %I %I >>> rem // `echo` is inside of `for` scope, so `%I` is resolved: >>> for %I in (.) do @echo %I . >>> rem // escaping does not help, `%I` is still resolved: […]

Qt5:使用QProcess :: startDetached调用.bat文件在System32中找不到程序

我有一个小button的Qt GUI程序,启动一个.bat文件。 调用.bat的重要部分是这样的: void MainWindow::on_pushButton_clicked() { int r = QMessageBox::warning(this, tr("Shutdown System"), tr("Do you want to close the program and the system?"), QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape); if (r == QMessageBox::Yes){ QProcess::startDetached("cmd /C shutdown_all.bat"); } } 我打算打电话PSShutdown ,位于C:\Windows\System32\psshutdown.exe ,当然在PATH 。 我把它放在.bat文件中用于testing目的: cd C:\Windows\System32 psshutdown PAUSE 当单独调用.bat文件时,似乎find了有关它的程序和打印信息,但是当我使用该button调用程序时,找不到psshutdown.exe 捕获结果: 用Qt程序调用.bat: 双击调用.bat(预期结果): 在向.bat添加echo %PATH%时,path也似乎在两个版本中均打印成功。 任何想法可能是错的? 这已经在两个不同的计算机上用Qt […]

运行cmd命令工作,但从batch file运行不

我尝试使用for循环将文件移动到子文件夹创build脚本。 一开始,我使用CMD然后将命令复制到.bat文件并运行。 结果是什么都没有发生。 为什么在CMD上的相同的命令工作,但从文件不运行? 这是我的命令。 @echo off setlocal enableDelayedExpansion SET FOL=J:\test SET ENDNUM=2 for /l %x in (1, 1, %ENDNUM%) do ( md "%FOL%/0%x/subfolder" move /Y "%FOL%\0%x\*" "%FOL%\0%x\subfolder" )

批处理脚本告诉我什么时候是最后一次访问文件

我有一个文件夹中的销售订单列表。 我想要一个批处理脚本,可以输出到一个txt文件,当所有的文件最后访问,但不一定修改。