手动创建编写bat文件来操作mysql,如何处理换行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手动创建编写bat文件来操作mysql,如何处理换行相关的知识,希望对你有一定的参考价值。

参考技术A 你试试下面的方法行吗,不要删除中间的空行。
@echo
off
setlocal
enabledelayedexpansion
set
s=create
table
a(id
int(10));^
create
table
b(id
int
(10))
mysql
-uroot
-pabc
mydatabase
--execute="!s!"

Perl正则表达式匹配多行文件与匹配变量如何处理换行

大家好,我是Perl初学者;现在碰到一问题,如下:
use strict;
my $values ;
open(OUTFILE,"file.txt") or die("Can't find file.txt:$!") ;
while(defined($values= <OUTFILE>))
# print $values ;
if($values =~ /.*User Name:(.*);(.*)/ms)
print $1;
print $2;

我的file.txt内容为:
Logon Failure:
User Name:lixin;
Domain:BEIM-SERVER;
Reason:Unknown user name or bad password!
问题:按照我的程序匹配之后,本应$1得到的是lixin,$2得到的是后面所有的内容。
但此时$2只得到个换行,后面两行内容并未得到。

而:
use strict;
$_ = "Logon Failure:
User Name:lixin;
Domain:BEIM-SERVER;
Reason:Unknown user name or bad password" ;
if(/.*User Name:(.*);(.*)/ms)
print $1;
print $2;
这样$2却又能得到内容。
请问大家这是什么原因呢? 该怎么解决呢?万分万分感谢!
用三楼的方法,加上$/ = undef; 就可以了
谢谢大家。

$values= <OUTFILE>
这样这个变量只读取了一行啊,$/ 中保存这输入行记录分隔符(它的默认分隔符是\n)。因此,每当菱形运算符用于读取数据时,它将一直读取数据,直到它发现与$/一致的字符。所以,如果我们将$/设为 undef ,菱形运算符将读取整个文件并将它们存储在标量中。

要想让perl“吞吃文件”,可以改成这样:

use strict;
my $values ;
open(OUTFILE,"file.txt") or die("Can't find file.txt:$!") ;
$/ = undef; # 此行注掉后,$values 仅读入Logon Failure:
while(defined($values= <OUTFILE>))
# print $values ;
if($values =~ /.*User Name:(.*);(.*)/ms)
print $1;
print $2;

参考资料:http://www.diybl.com/course/4_webprogram/cgi/perl/200862/120049.html#

参考技术A 我觉得循环里面应该还有个$values=<OUTFILE>
因为 <OUTFILE>每执行一次,仅仅读取一行内容,循环第二次得到第二行内容,应该是这样我觉得
参考技术B 去这里问......
http://bbs3.chinaunix.net/forumdisplay.php?fid=25

参考资料:http://bbs3.chinaunix.net/forumdisplay.php?fid=25

以上是关于手动创建编写bat文件来操作mysql,如何处理换行的主要内容,如果未能解决你的问题,请参考以下文章

VB调用SHELL,参数路径有空格如何处理?

VB调用SHELL,参数路径有空格如何处理?

如何使用 C# 在文件观察器中捕获剪切和粘贴操作

.NET Core 依赖注入 - 如何处理手动创建的实例?

Mysql如何处理包含多个项目的单行

如何处理 bash 脚本读取的 CSV 文件中的逗号