Articles of batch file

了解(set)说明符的CMD.EXE FOR行为

我在Windows 7环境中执行CMD.EXEbatch file中有以下命令: FOR %%f IN ("C:\TEMP\FILE.TXT" "C:\TEMP\FILE2.TXT") DO ( ECHO %%f ) C:\ TEMP \ FILE.TXT 不存在 C:\ TEMP \ FILE2.TXT 确实存在 这会产生以下输出: "C:\TEMP\FILE.TXT" "C:\TEMP\FILE2.TXT" 但是,我发现如果我改变FOR命令来包含一个通配符,如? 或*在文件名中,我得到我期望的结果,这只是C:\ TEMP \ FILE2.TXT的回声 IE: FOR %%f IN ("C:\TEMP\FILE.TXT?" "C:\TEMP\FILE2.TXT?") DO ( ECHO %%f ) 产生: C:\TEMP\file2.txt FOR命令的文档声明: FOR %variable IN (set) DO command [command-parameters] %variable Specifies a […]

用换行符和回声在batch file中换行。 (^&回声。)

所以我今天才知道可以通过下面的命令设置一个换行符: set nl=^&echo. 例如: set nl=^&echo. echo Hello%nl%world 产量 Hello world 但为什么这个工作? ^&的意义是什么?

用cygwin中的参数调用分号文件

我需要从CYGWIN中调用一个batch file,但是其中一个参数是一个包含分号的类似于path的string。 通常在Windows命令行中,可以用引号括起这个参数(以后需要修改)。 但是这种方法在cygwin中并没有起作用 示例批次(回显前3个参数) echo %1 echo %2 echo %3 Windows cmd调用 file.bat "a;b" c 输出继电器 "a;b" c empty Cygwin电话 ./file.bat "a;b" c 产量 a b c

运行命令时如何防止batch file(.bat)closuresterminal?

在Windows 7机器上,如果我在terminal中手动运行一个像这样的PHPUnit Selenium命令: phpunit –verbose –log-junit _selenium_tests\results\home.xml _selenium_tests\frontend\home.php 它产生了一个浏览器,并运行testing就好了。 然后在屏幕上输出以下内容: Time: 10 seconds, Memory: 3.50Mb OK (1 test, 3 assertions) terminal保持打开。 现在,如果我复制并粘贴在一个空的文件中的确切的命令,并保存为test.bat并点击它,它也运行testing。 我可以看到浏览器打开,所有的testing运行。 唯一的问题就是closuresterminal提示符之后。 所以我看不到上面的输出。 一个更大的问题是,因为它closures了terminal,如果我添加了更多的命令后,其他testing之后,他们不运行。 我试着添加: pause 在蝙蝠文件结束但没有运气,它仍然closures。 任何想法如何防止这一点,并能够运行一个接一个的命令而没有terminalclosures?

Linux的bash脚本循环

我有1.txt 2.txt和script.php 1.txt: a b c d 2.txt www rrr ttt yyy 我希望bash文件在Linux下执行这个命令: ./script.php -na -j www>>n_j.txt ./script.php -na -j rrr>>n_j.txt ./script.php -na -j ttt>>n_j.txt ./script.php -na -j yyy>>n_j.txt ./script.php -nb -j www>>n_j.txt ./script.php -nb -j rrr>>n_j.txt ./script.php -nb -j ttt>>n_j.txt . . 我有一个蝙蝠代码与wondows cmd工作..我想要一个代码,它可以使用Linux命令行 @ECHO OFF FOR /F "tokens=1 delims= " %%I IN (1.txt) […]

顶部命令第一次迭代总是返回相同的结果

当运行top -b -n 1时,该命令总是返回相同的CPU值。 考虑连续5次以下的testing: [user@server ~]$ top -b -n 5 -d.2 | grep "Cpu(s)" Cpu(s): 18.5%us, 10.0%sy, 0.0%ni, 67.0%id, 4.2%wa, 0.0%hi, 0.2%si, 0.1%st Cpu(s): 39.8%us, 27.7%sy, 0.0%ni, 31.3%id, 0.0%wa, 0.0%hi, 1.2%si, 0.0%st Cpu(s): 39.0%us, 35.4%sy, 0.0%ni, 23.2%id, 0.0%wa, 0.0%hi, 1.2%si, 1.2%st Cpu(s): 41.2%us, 34.1%sy, 0.0%ni, 15.3%id, 1.2%wa, 0.0%hi, 2.4%si, 5.9%st Cpu(s): 59.0%us, 30.1%sy, 0.0%ni, […]

为什么在命令行上使用'set var = text'后没有输出string'echo%var%'?

我使用set命令在Windows 8.1上的CMD中设置了一个variables,并试图回显它。 这里是一个例子: C:\Users\Logan>set var = text C:\Users\Logan>set var var = text C:\Users\Logan>echo %var% %var% C:\Users\Logan> 那么有没有办法强制命令提示符回显variables,而不是原始文本?

使用Windows批处理脚本保护FTP

我目前有不同的服务器上的批处理脚本,将csv文件传输到不同位置的FTP服务器。 我的脚本看起来类似于这样的: echo user ftp_user> ftpcmd.dat echo password>> ftpcmd.dat echo put c:\directory\%1-export-%date%.csv>> ftpcmd.dat echo quit>> ftpcmd.dat ftp -n -s:ftpcmd.dat ftp.MyFTPSite.com del ftpcmd.dat 如果我想要一个安全的传输,我的脚本将如何更新? 谢谢。

如何通过在Windows中使用批次replace子string来重命名文件

我想通过使用Windowsbatch file将文件名称重命名为“how-to – rename -file.jpg”为“how-to reuse -file.jpg” 即我只想replace文件名中的一个或两个单词。

在.BATch文件中将一个小的PS脚本转换成一个长行

我从这个问题的答案中得到了这个PowerShell代码; 它显示PS代码运行的cmd.exe窗口的位置/尺寸: $WindowFunction,$RectangleStruct = Add-Type -MemberDefinition @' [DllImport("user32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect); [StructLayout(LayoutKind.Sequential)] public struct RECT { public int Left; public int Top; public int Right; public int Bottom; } '@ -Name "type$([guid]::NewGuid() -replace '-')" -PassThru $MyWindowHandle = (Get-Process -Id (Get-WmiObject Win32_Process -Filter "ProcessId=$PID").ParentProcessId).MainWindowHandle $WindowRect […]