我的批处理脚本中有一个动态变量,我需要稍后在脚本中使用或打印它,例如
set txt1=hello world
echo %txt1%
set /a num=1
echo %txt%%num%
在本示例的第二行中,结果将是"hello world",但在最后一行中将是1,如何使用动态变量使最后一行打印"hello world“
我有一大组文本文件,它们的基本模式是
Files 1 Header
1. Data
2. Data
3. Data
我希望运行一批,它将读取它,并删除第一行和三个字符的其余行和输出如下。
Data
Data
Data
尝试构建一个循环来抓取每一行,然后将其输入%line:~3%,但它并不例外,我不知道如何删除文本文件的第一行。
任何帮助都将不胜感激。
为了更容易测试,我有以下简单的批处理文件"bld.cmd“脚本,它首先编译东西,然后启动服务器。问题是"npm run build“(第1行)永远不会返回,所以我必须添加start "start”前缀来打开第二个窗口,并在6秒后继续运行build。
start npm run build
ping 127.0.0.1 -n 6 > nul
npm run dev
我的问题是,当我使用CTRL+C关闭正在运行的服务器时,如何才能使第1行(第1个窗口)消失,或者可以选择如何调整此脚本,以便不需要在另一个窗口中启动第1行。
{ "main":
我在命令提示符窗口中运行以下批处理脚本,以转到特定的文件夹。
@echo off
SETLOCAL
set ispyfolder=true
if not "%~1"=="py" if not "%~1"=="pyfolder" set ispyfolder=false
if "%ispyfolder%"=="true" (
C:
cd C:\Users\ankagraw\AppData\Local\Continuum
)
当SETLOCAL在那里(第二行)时,此代码不起作用。当前目
我在一个文件夹中有多个文本文件。我想打印与文件名模式*.Config匹配的文件夹中每个文件的最后一行,并将这些行重定向到一个新的文本文件中。
下面的脚本适用于一个文本文件。但目前,我对多个文本文件执行 for 循环,%lastline%打印的值总是相同的。
@echo off & setlocal EnableDelayedExpansion
for /f %%i in ('dir /b *.Config') do (
for /r "delims==" %%a in (%%i) do (
set lastline=%%a
我正在寻找一个windows软件,它可以大容量删除文本文件中特定行之后的行。
例如,一个文件包含5行。我想删除第三行之后的行。见:
Line 1
Line 2
Line 3
xxxxxx
xxxxxx1
在这里,我希望保留前3行(第1行、第2行、第3行),删除剩下的2行(xxxxxx、xxxxxx1)并自动保存该文本文件。我想对多个文本文件这样做。想要删除文件夹中每个文本文件中的第3行之后的每一行。
有windows软件吗?
目前,我正在尝试创建一个批处理文件来禁用我的teredo客户端的一些设置,它最终修复了我的Xbox应用程序的一个错误。当我运行当前的批处理文件时,它只输入第一个命令,不会继续执行。我不太熟悉批处理文件,我想知道是否有人可以帮助我。
我尝试为每一行创建多个批处理文件,然后在一个通用文件中调用所有这些批处理文件,但似乎都只是运行第一个命令。
这就是我所拥有的:
@echo off
netsh &
int teredo &
set state disabled &
int ipv6 &
set teredo client
从本质上讲,我希望弹出命令提示符,并为每一
我正在使用一个java文件来生成一个报告。它位于我的本地硬盘上。当我使用cmd prompt调用它时,它会产生输出。我想用php文件运行这个java文件。
cmd中的行是
D:\>cd class
D:\>class> java Reportgeneration username password id date
这些代码行用于执行java文件,如何在php脚本中执行此代码?
我注意到在一个windows批处理文件中,即使您运行了一个%~,也会得到错误
For valid formats type CALL /? or FOR /?
The syntax of the command is incorrect.
为什么注释行没有被忽略?
@ ECHO OFF
REM Blah blah blah
REM %~ this will cause an error
REM %%~ Double the fun, no error
我正在学习批处理脚本,并复制了如何检查空的示例:
@echo off
SET a=
SET b=Hello
if [%a%]==[] echo "String A is empty"
if [%b%]==[] echo "String B is empty "
但我会犯这样的错误:
D:\Projects\Temp\BatchLearning>Script.bat
]==[] was unexpected at this time.
出什么问题了?为什么这个在指南里。过去起作用了吗?来自的例子。
UPD:
我在第二行、第三行和第五行的末尾删除了一些
我已经在Vim8.1和Neovim (nvr 2.1.10)中尝试了这一点,并使用和不使用我的~/.vimrc (后者检查vimrc条目是否具有因果关系-没有效果)。
给出这个例子
apple
banana
carrot
dates
我可以记录一个宏(@a)
yy
p
粘贴或粘贴(即复制)一行当我将(@a)宏应用于单个行,并在单个行上重复该宏(@@)时,它会复制该行。
但是,当我可视化地选择这些行并尝试应用宏时,尝试以下任何一个
:'<,>'norm @a ## :'<,>'norm @a on single line works
我将对一行进行多次分解,在每一步之后重新组合它,但是每个命令都向输出添加了一个新行。
基本上,以下是命令:
h
s#(^.*?)(\[\{.*$)#\1#p
g
s#(^.*?)(\[\{.*?\}\])(.*)$#echo \2 | jq --sort-keys --compact-output#ep
g
s#(^.*?\}\])(.*)$#\2#p
z
但是原始行在sed之后生成三行,因为每个/p都在内容之后添加了一个新行:我如何避免这种情况?输入中的一行将导致输出中的一行。
除了/p之外,我还尝试将s命令结果写入带有/w filename标志的文件,然后用r filename命令读取它,
我需要使用-t参数运行ping,并处理bat脚本中的每一行。我需要实时完成这个任务。
这段代码解释了我的问题。Commant 'ping -t 8.8.8.8‘没有输出任何for循环,所以没有任何输出到控制台。如果使用'ping -n 10 8.8.8.8‘,则在ping退出时同时打印所有行。
我怎样才能真正地把打印行变成for循环呢?
@echo off
Setlocal EnableDelayedExpansion
FOR /f "TOKENS=*" %%i in ('ping -t 8.8.8.8') do (
set LINE=%%i
if后面跟着bash中的then,但我不明白为什么不能在同一行中使用then,就像在下一行中必须使用if [...] then一样。这能消除代码中的一些歧义吗?或者巴什是这样设计的?其根本原因是什么?
我试图在同一行中编写if和then,但是它给出了下面的错误:
./test: line 6: syntax error near unexpected token \`fi'
./test: line 6: \`fi'
守则是:
#!/bin/bash
if [ $1 -gt 0 ] then
echo "$1 is positive"
fi
我正在尝试将200个表从我的数据库中删除,并将这些sql语句保存到1个.sql文件中,以便它们可以在数据库的每个副本上一次运行。
我想为每个表使用一个单独的drop语句,这样我就可以很容易地引用任何错误出现在哪一行。
我尝试以以下格式运行查询
DROP TABLE schema.tablename GO
DROP TABLE schema.tablename GO
DROP TABLE schema.tablename GO
当我执行查询时,我得到
Incorrect syntax near 'GO'.
每一行。
有什么正确的方法可以让我在无法删除的表上轻松地找到错误呢?