Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用批处理文件从多个csv文件中删除特殊字符_Excel_Batch File_Csv - Fatal编程技术网

Excel 使用批处理文件从多个csv文件中删除特殊字符

Excel 使用批处理文件从多个csv文件中删除特殊字符,excel,batch-file,csv,Excel,Batch File,Csv,我想使用批处理文件删除csv文件中的所有特殊字符。我的csv文件只有一列关键字可以在google中输入 比如说 1.电子商务 2.墨尔本中央商务区? 3.3墨尔本牙医 墨尔本最好的牙医 有时我也可以使用阿拉伯/中文字符等等 在这里,当我将这些文件添加到GoogleAdwords关键字规划器时,它向我显示了一个错误,在忽略错误时,我得到了错误的关键字点击数,为了避免错误,我需要从csv文件中删除所有特殊字符 我有数百个csv文件,希望将更新的(没有特殊字符)文件保存到现有文件中 我试过了 @ech

我想使用批处理文件删除csv文件中的所有特殊字符。我的csv文件只有一列关键字可以在google中输入

比如说 1.电子商务 2.墨尔本中央商务区? 3.3墨尔本牙医 墨尔本最好的牙医

有时我也可以使用阿拉伯/中文字符等等

在这里,当我将这些文件添加到GoogleAdwords关键字规划器时,它向我显示了一个错误,在忽略错误时,我得到了错误的关键字点击数,为了避免错误,我需要从csv文件中删除所有特殊字符

我有数百个csv文件,希望将更新的(没有特殊字符)文件保存到现有文件中

我试过了

@echo off
set source_folder=C:\Users\Username\Documents\iMacros\Datasources\a
set target_folder=C:\Users\Username\Documents\iMacros\Datasources\keyfords-csv-file
if not exist %target_folder% mkdir %target_folder%

for /f %%A in ('dir /b %source_folder%\*.csv') do (
    for /f "skip=1 tokens=1,2* delims=," %%B in (%source_folder%\%%A) do (
    echo %%B>>%target_folder%\%%A
    )
)

timeout /t 20
但最终从csv文件中删除了所有记录

有什么办法可以让我

1.仅接受来自A-Z、A-Z和0-9的标准字符

2.或者删除可以在该字符串中放入特殊字符的所有字符串。喜欢 string1=“?%!@$^&*”

3.或者我可以在csv文件中提到只接受标准英文字符吗 有没有办法通过批处理文件或任何框架来实现这一点


谢谢

我认为这在Powershell中要干净得多

$sourceFolder = "C:\Users\Username\Documents\iMacros\Datasources\a"
$targetFolder = "C:\Users\Username\Documents\iMacros\Datasources\keyfords-csv-file"
MkDir $targetFolder -ErrorAction Ignore

$fileList = Dir $sourceFolder -Filter *.csv 

ForEach($file in $fileList)
{
    $file | Get-Content | %{$_ -replace '[^\w\s,\"\.]',''} | Set-Content -Path "$targetFolder\$file"
}
我从源文件夹中取出每个文件,获取内容,替换任何不需要的字符,然后将其保存到另一个文件中。我在中间使用了一个小正则表达式[[^ \w,s],[\] [/COD],用替换命令。胡萝卜>代码> ^ < /代码>是不匹配的操作符。因此,任何与单词字符<代码> \W,空格字符<代码> > <代码>,昏迷>代码>,<代码>,双引号>代码> \ <代码>,或句号<代码> \<代码>


有人可能会找到一个更好的正则表达式来满足你的需求,但我想你明白了

从技术上讲,您可以拥有一系列:

set variable=%variable:"=%
set variable=%variable:(=%
set variable=%variable:)=%
set variable=%variable:&=%
set variable=%variable:%=%
等等。我知道写这些特殊的人物会让人很烦恼

看到字母表中的字母比“特殊字符”要少,可以对文件/文件夹名进行查找,如果a-z中的字母为真,则写入并移动到下一个字符


_Arescet

你能定义“特殊字符”或“普通字符”吗?我猜他说的是标准的批量有毒字符-括号、感叹号、符号、管道、插入符号、问号和星号。我想将这些csv文件上传到google关键字规划器。它显示了一个错误,即“关键字不能包含非标准字符,如:第1行:!@%,*!!?????关键字不能包含非标准字符,如:第905行:!@%,*:Ø不确定如何进行这项任务最好用更高级的语言来解决,而不是批处理。你能用批处理来发布答案吗?用户@Penny正在使用批处理文件寻求帮助。也许您可以使用
for
循环
for/f%%p in(^=^(^)^&%%)do set variable=%variable:%%p=%