2016-04-21 6 views
1

Ich versuche, diesen Python-Befehl über Eingabeaufforderung auszuführen, die wie folgt lautet:Datei umbenennen in json zu csv Umwandlung in cmd

python "C:\Users\Bhavik\Desktop\Plaid Conversions\json_to_csv.py" accounts "C:\Users\Bhavik\Desktop\New folder (2)\file.json" "C:\Users\Bhavik\Desktop\New folder (2)\file.csv" 

wo

  • C:\Users\Bhavik\Desktop\Plaid Conversions\json_to_csv.py ist, wo die Python-Datei befindet
  • accounts - ist der Wurzelknoten, wo es Aufzeichnungen zu lesen beginnt
  • C: \ Benutzer Bhavik \ Desktop \ Neuer Ordner \ (2) \ file.json - Ort der jSON-Datei
  • C: \ Benutzer \ Bhavik \ Desktop \ Neuer Ordner (2) \ file.csv - Zielpfad von csv

ich durch die Schaffung eine Batch-Datei, diesen Prozess zu automatisieren versuchen, wo es den Namen Datei liest für sich selbst und benennt die CSV-Datei mit dem entsprechenden Dateinamen umbenannt. Hier

ist der Code, den ich versuche:

C: 
:loop 
cd c:/Windows/system32 
set dir1=C:\Users\Bhavik\Desktop\PC 

for /r %X IN ("%dir1%\*.json") DO ( 
     python "C:\Users\Bhavik\Desktop\Plaid Conversions\json_to_csv.py" accounts "%%~XI" "C:\Users\Bhavik\Desktop\PC\test.csv" 
     var name= $(echo %nxX | cut -f 1 -d '.') 
     rename C:\Users\Bhavik\Desktop\PC\test.csv name.csv 
     ) 

goto loop 

Hier Ich versuche, das Verzeichnis zu setzen und die es lesen Sie die JSON-Datei-Namen und verwenden Sie in der Python-Befehl in dem JSON-Datei Ziel muss sein unter der Voraussetzung. Aber ich habe einige Probleme damit.

  1. %% X war zu dieser Zeit unerwartet.
  2. Datei "C: \ Benutzer \ Bhavik \ Desktop \ Plaid Conversions \ json_to_csv.py", Linie 89, in
    fp = open (json_file_path, 'r')
    FileNotFoundError: [Errno 2] Datei oder Verzeichnis: '%% ~ XI'

  3. 'var' wird nicht als interner oder externer Befehl erkannt, ausführbare Programm- oder Stapeldatei.

Hallo Jungs,
ich auf dem Code und erreicht das folgende gearbeitet haben:
C:
: loop
cd c:/Windows/system32
Satz dir1 = C: \ Benutzer \ Bhavik \ Desktop \ PC2

für% X IN ("% dir1% *. json") DO (
set "filename1 =% ~ nX"
echo% filename1%
Python "C: \ Benutzer \ Bhavik \ Desktop \ Plaid Conversions \ json_to_csv.py" Konten "% X" "C: \ Benutzer \ Bhavik \ Desktop \ PC2 \ test.csv"
benennen Sie "C: \ Users \ Bhavik \ Desktop \ PC2 \ test.csv“ "% filename1% .csv")

goto loop

Aber das Problem, das ich nun vor bin, wenn ich die Dateinamen habe die Einrichtung zeigt es die erste Datei in json der Ordner, aber der Wert, den es beim Echo zeigt, ist die letzte JSON-Datei und so wird sie umbenannt. Ich nehme an, dass das ist, weil es den gesamten Ordner analysiert und deshalb die letzte Datei jedes Mal wiederholt wird.

Wie kann ich es machen, eine Datei gleichzeitig zu lesen und wiederzugeben und sie umzubenennen? Irgendwelche Vorschläge?

+0

1. Sie müssen die '%' Zeichen in 'for' Variablen in Batch-Dateien ('%% X' anstatt'% X') zu verdoppeln. 2. 'var name = $ (...)' ist keine Stapeldateisyntax. 3. Meine telepathischen Fähigkeiten sind begrenzt, daher ist es ziemlich schwer für mich zu sagen, was in Ihrem Python-Code falsch ist, da Sie es nicht teilen ... – aschipfl

Antwort

0

Sorry Leute,

Ich dachte nicht durch. Hier ist, was ich getan habe, um es arbeiten:

C:
: loop
cd c:/Windows/system32
Satz dir1 = C: \ Benutzer \ Bhavik \ Desktop \ PC2
setlocal enabledelayedexpansion
für% X IN ("% dir1% *. json") DO (
python "C: \ Benutzer \ Bhavik \ Desktop \ Plaid Conversions \ json_to_csv.py Konten"% X "" C: \ Benutzer \ Bhavik \ Desktop \ PC2 \ test.csv "
benenne" C: \ Benutzer \ Bhavik \ Desktop \ PC2 \ test.csv ""% ~ nX.csv ")

Goto Schleife
Danke