在Perl上使用MySQL和一个新手是相当新的,但我试图破解别人的脚本来帮助我.我从这里得到了剧本.它到目前为止看起来很棒,但它失败了,因为表有一些外键检查正在进行.我可以通过phpmyadmin尝试逐个删除它们,但这需要永远,这是我第三次不得不这样做:(我的查询是,可以修改此脚本包括:
`SET FOREIGN_KEY_CHECKS = 0;
Run Code Online (Sandbox Code Playgroud)
在它运行drop table命令之前?我试图通过脚本,但找不到脚本的确定命令部分(可能是由于无知/缺乏理解).任何帮助非常感谢.
#!/usr/bin/perl
use strict;
use DBI;
my $hostname = '';
my $database = '';
my $username = '';
my $password = '';
my $dbh = DBI->connect("dbi:mysql:${database}:$hostname",
$username, $password) or die "Error: $DBI::errstr\n";
my $sth = $dbh->prepare("SHOW TABLES");
$sth->execute or die "SQL Error: $DBI::errstr\n";
my $i = 0;
my @all_tables = ();
while(my $table = $sth->fetchrow_array)
{
$i++;
print "table $i: $table\n";
push @all_tables, $table;
}
my $total_table_count = $i;
print "Enter string …Run Code Online (Sandbox Code Playgroud) 我正在努力成功创建一个打印机的脚本时遇到很大困难.到目前为止,我设法成功创建了打印机端口,但创建打印机时总是出错.
从中获取信息的CSV文件如下所示:
PrinterName,PrinterPort,IPAddress,Location,Comment,PrintDriver,
Testprint1,Testport1,10.10.10.10,IT_Test,Test_1,HP LaserJet 4200 PCL 5e,
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是这样的:
Exception calling "Put" with "0" argument(s): "Generic failure "
At C:\myversion.ps1:53 char:19
+ $objNewPrinter.Put <<<< ()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Run Code Online (Sandbox Code Playgroud)
我使用的代码是这样的:
trap { $error[0].Exception | get-member } $objNewPrinter.Put()
Write-Host ("`tCreating " + $strPrinterName.Count + " Printer's`t")
$objPrint = [WMICLASS]"\\timvista\ROOT\cimv2:Win32_Printer"
$objPrint.psbase.scope.options.EnablePrivileges = $true
## Loop through and create each printer
For($i=0; $i -lt $PrinterName.count; $i++)
{
$objNewPrinter = $objPrint.createInstance()
$objNewPrinter.DeviceID = $PrinterName[$i] ## This is …Run Code Online (Sandbox Code Playgroud) 我们正在尝试整理用户主目录并通过将所有模板移动到用户驱动器(U :)上的新目录来加速Office 2007的性能.在我的初始测试期间,我可以使下面的脚本工作正常,虽然它有明显的问题,只有我的用户名工作.有没有办法让它采取当前登录用户?之前,这将由%username%和互联网的简短扫描处理:
$[Environment]::UserName
Run Code Online (Sandbox Code Playgroud)
应该管用.但是我似乎遇到了错误.有没有更好的方法来实现当前登录用户名到文件路径?
if (!(Test-Path -path '\\SERVER\PATH\TO FILES\$[Environment]::UserName\Normal\'))
{
New-Item '\\SERVER\PATH\TO FILES\$[Environment]::UserName\Normal\' -type directory
##Move-Item \\SERVER\PATH\TO FILES\$env:username\Normal.dot \\\SERVER\PATH\TO FILES\$env:username\Normal\
## Move-Item \\SERVER\PATH\TO FILES\$env:username\*.dotm \\SERVER\PATH\TO FILES\%username%\Normal\
}
else
{
"No work to do"
}
Run Code Online (Sandbox Code Playgroud)