Пакетный файл, удаляя двойную кавычку, но оставляя пустой.txt
Моя цель состоит в том, чтобы удалить двойные кавычки и отправить ресурс.txt файла в виде основной почты через blat, я видел много вопросов по этому поводу (удаление двойных кавычек).. но я не могу понять, где я делаю неправильно. Вот мой код
set "now=%date:~4%"
for /f %%i in ('FORFILES /D %now% /m *.csv /c "cmd /c echo @fname"')
do @set MyVariable=%%~i > C:\temp\count.txt
CD C:\temp\blat3217\full
blat C:\temp\count.txt -p user -s "Incoming_File_Alert" -to mymail@mail.com
РЕДАКТИРОВАТЬ:
Это дает выходной бланк.
РЕДАКТИРОВАТЬ 2:
если я переключу строку № 2 с этим FORFILES /D %now% /m *.csv /c "cmd /c echo @fname" > C:\temp\count.txt
Вывод такой
"407232_341600" "TW39369763_341610" "1726_341592" "407316_341601" "16001_341597" "100001317_341590" "407367_341602" "DHB11838_341593" "407439_341606" "407556_341604" "2373_341595" "ALL1020-461_341614" "407382_341605" "3598_341613" "PO051334_341589" "407537_341607" "407222_341598" "TW39369964_341611" "407403_341608"
2 ответа
Вы можете попробовать этот пакетный файл:
@echo off
set "SourcePath=C:\Users\user1\Documents\Work\warehouse\"
set "now="
set "Ext=csv"
Call :GetCurrentDate
set "outputfile=C:\temp\count.txt"
If exist "%outputfile%" Del "%outputfile%"
CD /D "%SourcePath%"
@for /f "delims=" %%i in ('FORFILES /D %now% /m *.%Ext%') do (
echo %%~ni >> "%outputfile%"
)
If exist "%outputfile%" start "" "%outputfile%" & exit
::********************************************************************************
:GetCurrentDate
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set now=%DD%/%MM%/%YYYY%
exit /b
::********************************************************************************
Благодаря Squashman, моя проблема решена с его предложением.. выглядело так, если кому-то интересно
CD C:\Users\user1\Documents\Work\warehouse
set "now=%date:~4%"
for /f "delims=" %%i in ('FORFILES /D %now% /m *.csv')do >> C:\temp\count.txt echo %%~ni
CD C:\temp\blat3217\full
blat C:\temp\count.txt -p user -s "Warehouse_Incoming_File_Alert" -to mymail@mymail.com
РЕДАКТИРОВАТЬ 1:
Опечатка.
РЕДАКТИРОВАТЬ 2:
Выше дублирование, если мы не удаляем предыдущий существующий файл.txt
здесь добавление синтаксиса удалить предыдущий файл, спасибо ответ Hackoo
CD C:\Users\user1\Documents\Work\warehouse
set "now=%date:~4%"
set "outputfile= C:\temp\count.txt"
If exist %outputfile% del %outputfile%
for /f "delims=" %%i in ('FORFILES /D %now% /m *.csv') do >> %outputfile% echo %%~ni
CD C:\temp\blat3217\full
blat C:\temp\count.txt -p user -s "Warehouse_Incoming_File_Alert" -to mymail@mymail.com