Articles of batch file

使用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文件,当所有的文件最后访问,但不一定修改。

文件重写:一行大于variables的最大大小。 解决方法?

我需要replace文件中的单行。 通常,这段代码工作正常: (关于这个块的实际细节并不是这个问题所必需的)。 for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %DATA%') do ( if %%a equ %TargetLine% ( echo !insert!>>%filepath%cc.tmp ) else ( if [%%b]==[] (echo.>>%filepath%cc.tmp) else (echo %%b>>%filepath%cc.tmp) ) ) 不幸的是,每一行都被赋值为%% a,与其他variables一样,最大长度只能保存8,192个字符(感谢dbenham对这个tidbid的使用,现在正在使用)。 那么当行数大于8,192个字符(在这种情况下为23,708)时,我有什么select? 在你问:不,它不能被分隔到一个新的行,它是一个10K的JSON数组编码在Base64,然后写入一个ByteArray。 我假设要走的路是使用正则expression式,这是正确的假设,还是有另一种解决方法? 谢谢。

批处理脚本中不能从%%值设置variables

基于这个答案,我试图将%%a和%%b值保存到variables,但它不起作用: @ECHO OFF SETLOCAL set "path_of_folder=C:\folderA\folderB" if exist "%path_of_folder%" ( echo Path exists. for /f "skip=5 tokens=1,2,4 delims= " %%a in ( 'dir /ad /tc "%path_of_folder%\."') do IF "%%c"=="." ( set "dt=%%a" echo Created on: %%a, %%b set "vara=%%a" set "varb=%%b" echo %vara%, %varb% REM substring set day=%vara:~0,2% ) ) else ( echo Path does […]

如何使用batfch文件login到路由器,然后向路由器发送命令

我试图写一个batch file来打开一个telnet会话,连接到路由器,input用户名和密码,最后发送一个命令到路由器,我有两个不同的路由器,我正在试图与此。 其中之一是一个NETGEAR我可以成功地在路由器上解锁telnet(它是默认locking,一旦解锁,重新启动后恢复)打开telnet会话,并连接到router.to解锁telnet我有一个程序telnetenable.exe它存储在C:/ echo off echo c:/telnetenable.exe ipaddress username password telnet ipaddress 但不能发送一个命令到路由器一次,在这一点上,我有一个开放的连接到路由器,可以手动inputcmd adslctl configure –snr x,但我想把它合并到batch file。 在第二个路由器Speedstream 4200 Telnet没有被locking,我可以打开Telnet会话并连接到路由器,但不能input用户名或密码后,我想能够发送一个CMD。 echo off telnet ipaddress 让我尽可能的用户名请求。 任何人都可以帮助我解决这些问题。 非常感谢。

运行时最小化batch file和Firefox

我试图创build一个batch file,将由Windows任务调度程序计划。这里是我的代码 start /min test.bat "C:\Program Files\Mozilla Firefox\firefox.exe" -tray TASKKILL /F /IM cmd.exe 然而,在task scheduller中运行这个错误会导致一个无法运行的错误,这是不合理的。我的目标是运行firefox,最小化cmd。 使用这个代码与任务调度程序的作品 "C:\Program Files\Mozilla Firefox\firefox.exe" -tray TASKKILL /F /IM cmd.exe 好,但是Firefox和cmd不是最小化的。我做错了什么?是不是有一个周长呢?